Itemwert spliten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
lenschith
Beiträge: 314
Registriert: 11. Dez 2020 22:36
Answers: 0

Re: Itemwert spliten

Beitrag von lenschith »

Sorry ich dachte im frontail zeig es mir das auch an.

Code: Alles auswählen

/opt/openhab/userdata/logs# cat openhab.log | grep -i snmpstring

2020-12-17 08:15:58.349 [INFO ] [se.smarthome.model.script.snmpstring] - String: Centigrade:48  Fahrenheit:118
2020-12-17 08:15:58.352 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (String): Centigrade:48        Fahrenheit:118
2020-12-17 08:18:58.593 [INFO ] [se.smarthome.model.script.snmpstring] - String: Centigrade:49  Fahrenheit:120
2020-12-17 08:18:58.597 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (String): Centigrade:49        Fahrenheit:120
2020-12-17 08:27:58.951 [INFO ] [se.smarthome.model.script.snmpstring] - String: Null
2020-12-17 08:27:58.955 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (String): Null
2020-12-17 08:28:58.677 [INFO ] [se.smarthome.model.script.snmpstring] - String: Centigrade:49  Fahrenheit:120
2020-12-17 08:28:58.682 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (String): Centigrade:49        Fahrenheit:120
2020-12-17 08:58:58.657 [INFO ] [se.smarthome.model.script.snmpstring] - String: Centigrade:50  Fahrenheit:122
2020-12-17 08:58:58.665 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (String): Centigrade:50        Fahrenheit:122
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Itemwert spliten

Beitrag von udo1toni »

Es könnte noch sein, dass man den Doppelpunkt escapen muss. Ich schau mir das nachher mal in Ruhe an...


Gesendet von iPad mit Tapatalk
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
lenschith
Beiträge: 314
Registriert: 11. Dez 2020 22:36
Answers: 0

Re: Itemwert spliten

Beitrag von lenschith »

Ich habe am WE noch etwas rumgespielt aber irgendwie bin ich nicht weiter gekommen. Hast du noch mal eine Idee?
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

Benutzeravatar
peter-pan
Beiträge: 2769
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Itemwert spliten

Beitrag von peter-pan »

Ich hatte dir doch weiter vorne beschrieben, wie ich das Testszenario aufgebaut habe und du hast auch das Item "Dummy_4" angelegt. Hast du auch einen Switch dafür in der Sitemap angelegt um diesen Schalter zu betätigen und damit die Rule auszulösen?

Code: Alles auswählen

Switch item=Dummy_4
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
lenschith
Beiträge: 314
Registriert: 11. Dez 2020 22:36
Answers: 0

Re: Itemwert spliten

Beitrag von lenschith »

Hatte ich gemacht. Habe das noch mal so nachgebaut. bekomme aber auch hier NULL.
Oder hab ich da was falsch gemacht?
Screenshot 2020-12-21 213037.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

Benutzeravatar
peter-pan
Beiträge: 2769
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Itemwert spliten

Beitrag von peter-pan »

..das muss doch irgendwie zu kriegen sein. Ich hab mir jetzt extra noch ein zweites Item angelegt (Wdmycloudtemperatur), allerdings ohne Channel, da ich das Binding nicht im Einsatz habe und befülle es mit einem String, der dann wieder weiter verarbeitet wird und das klappt ganz hervorragend.

Hier noch mal meine Test-Rule:

Code: Alles auswählen

rule "snmp String nach number"
when
    Item Dummy_4 changed to ON
then
    //  ----- nur für Testszenario ----
    val snmpString ="Centigrade:30   Fahrenheit:86"                 // Hilfsvariable, da kein Channel für Wdmycloudtemperatur
    Wdmycloudtemperatur.postUpdate(snmpString)                       // hier wird das String Item erzeugt, aus der Variablen
    logInfo("snmpstring","snmpString - str: {}",Wdmycloudtemperatur.state.toString)  // für das erzeugte Item wird ein Log ausgegeben
    // -----  Ende Testszenario
    val str = Wdmycloudtemperatur.state.toString                     // String-Item in einer Variablen zwischenspeichern
    logInfo("snmpstring","String - str: {}",str)                     // Log  str
    val str2 = transform("REGEX",".*:(.*) .*",str)                   // Filtern der Variablen mit REGEX und überführen in ein zweite Variable
    logInfo("snmpstring","Celsius (String str2): {}",str2)           // Log  str2
    val num = Float::parseFloat(str2)                                // Umwandlung in Fliesskommazahl
    logInfo("snmpstring","Celsius (Number - num): {}",num)           // Log der Fliesskommazahl
    WdmycloudtemperaturCelsius.postUpdate(num)                       // zurückschreiben des Wertes in ein neues Item
    logInfo("snmpstring","Celsius (Celsius): {}",WdmycloudtemperaturCelsius)   // Log des Wertes, des neuen Items

end
Die 3 Zeilen des Testszenarios brauchst du ja nicht, die kannst du auskommentieren.

Das muss dabei im Log rauskommen:

Code: Alles auswählen

2020-12-21 21:39:20.304 [INFO ] [se.smarthome.model.script.snmpstring] - String - str: Centigrade:30   Fahrenheit:86
2020-12-21 21:39:20.306 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (String str2): 30  
2020-12-21 21:39:20.308 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (Number - num): 30.0
2020-12-21 21:39:20.310 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (Celsius): WdmycloudtemperaturCelsius (Type=NumberItem, State=30.0, Label=System Temperatur Celsius, Category=null)
Stelle sicher, dass es die Regel (den Namen) nicht mehrfach gibt und auch keine andere Regel gleichzeitig auf die Items zugreift. REGEX-Transformation muss natürlich installiert sein (sonst fällt mir grad nichts mehr ein ;) )


Edit:
Grad ist mir doch noch was eingefallen: Du kannst auch mal probieren, den Channel in deinem Item "abzuhängen" und dann die Test-Regel komplett laufen zu lassen. :idea:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
lenschith
Beiträge: 314
Registriert: 11. Dez 2020 22:36
Answers: 0

Re: Itemwert spliten

Beitrag von lenschith »

Danke für die super Unterstützung. Ich habe den Channel aus kommentiert und deine rule angelegt. die alte habe ich gelöscht damit hier nichts mehr stört. Leider erfolglos.

Ich habe dann vor lauter Frust die RegEx Transformation einmal deinstalliert und neu installiert und siehe da, es läuft. :?

Vielen Dank für Euren Support und für Eure Geduld. Verstehe zwar nicht ganz was da los war aber jetzt klappt es.

Grüße Lenschi
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

Antworten