Seite 3 von 3
Re: gespiegelte SD startet nicht
Verfasst: 21. Aug 2025 15:44
von iTob
Im openhab2 hat er Zahlen mit Komma und mit führendem Leerzeichen als Zahl eingelesen.
Kann ich den MQTT Wert gleich beim Einlesen transformieren? Oder muss ich in *.things und *.items den typ ändern und in rules dann von String in Zahl konvertieren? Dann hätte ich am Ende aber doch zwei verschiedene Items, damit der eine den Anderen nicht immer überschreibt.
Geht das auch einfacher?
Gibt es dazu eine zusammengefasste Anleitung oder muss ich alles einzeln im Internet zusammensuchen?
Re: gespiegelte SD startet nicht
Verfasst: 21. Aug 2025 20:40
von udo1toni
Ja, das geht über das transformationPattern, da kannst Du z.B. ein Script hinterlegen, welches beim Eintreffen eines Status diesen "umrechnet". In openHAB3 stehen hier alle installierten Scriptsprachen zur Verfügung.
Außerdem kannst Du jede der Scriptsprachen auch inline verwenden, falls es nur einer (sehr) kurzen Codesequenz bedarf, z.B.
. input ist der Status als String, replace sollte dann jedes Vorkommen in String a durch String b ersetzen, also zunächst alle Leerzeichen durch nichts und anschließend alle Kommata durch Punkte. Wenn ich mich richtig erinnere, geht diese Form (inline Code) aber erst mit OH4, bei älteren Versionen muss der Code als Miniscript gespeichert sein und das jeweilige Script angegeben werden, außerdem geht DSL-Code als Transformation Script vermutlich auch erst seit OH4 (aber vielleicht täusche ich mich da auch... ist schon ein Weilchen her...).
Re: gespiegelte SD startet nicht
Verfasst: 21. Aug 2025 21:43
von iTob
Dann sollte ich vielleicht gleich bis zu openHAB 5 durch-updaten und solche Script-Fehler erst dann beheben.
Mit dem Docker ist das ja kein Problem...
Re: gespiegelte SD startet nicht
Verfasst: 22. Aug 2025 00:10
von udo1toni
Ja, das wäre vermutlich sinnvoll, auch wenn es dann halt geballte Arbeit ist...
Re: gespiegelte SD startet nicht
Verfasst: 27. Aug 2025 17:46
von iTob
Hallo, irgendwie stehe ich hier auf dem Schlauch...
Das thing als number hatte unter openhab2 auch mit führendem leerzeichen funktioniert, unter Openhab3 und 4 bringt es einen Fehler:
Code: Alles auswählen
Type number:vlg "FBH Küche Vorlauf gesamt" [stateTopic="FBHK/VLG"]
Dann geht es weiter mit dem item:
Code: Alles auswählen
Number fbhk_mqtt_vlg "Vorlauf gesamt [%.1f °C]" <temperature> {channel="mqtt:topic:fbhk:vlg"}
Mit den Werten habe ich dann gerechnet bzw diese per influxdb.persist in die DB geschrieben:
Code: Alles auswählen
fbhk_mqtt_vlg : strategy = everyChange, every10Minutes
Kann ich gleich den eintreffenden Wert vom thing zum item von string zu number umwandeln? Wie schicke ich den Wert hier durch ein transform oder gleich inline?
Oder brauche ich eine rule für die Umrechnung? Und damit dann auch zwei verschiedene Variablen?
Re: gespiegelte SD startet nicht
Verfasst: 28. Aug 2025 12:53
von iTob
Ich habe mich dazu noch einmal belesen - Problem geklärt:
thing auf string geändert
item mit transformer script ergänzt:
Code: Alles auswählen
Number fbhk_mqtt_vlg "Vorlauf gesamt [%.1f °C]" <temperature> {channel="mqtt:topic:fbhk:vlg" [profile="transform:DSL", toItemScript="| input.replace(' ','')"]}