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?
gespiegelte SD startet nicht
- udo1toni
- Beiträge: 15337
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: gespiegelte SD startet nicht
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...).
Außerdem kannst Du jede der Scriptsprachen auch inline verwenden, falls es nur einer (sehr) kurzen Codesequenz bedarf, z.B.
Code: Alles auswählen
"DSL:|input.replace(' ','').replace(',','.')"
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)
-
- Beiträge: 41
- Registriert: 8. Mär 2020 19:58
Re: gespiegelte SD startet nicht
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...
Mit dem Docker ist das ja kein Problem...
- udo1toni
- Beiträge: 15337
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: gespiegelte SD startet nicht
Ja, das wäre vermutlich sinnvoll, auch wenn es dann halt geballte Arbeit ist...
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)
-
- Beiträge: 41
- Registriert: 8. Mär 2020 19:58
Re: gespiegelte SD startet nicht
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:
Dann geht es weiter mit dem item:
Mit den Werten habe ich dann gerechnet bzw diese per influxdb.persist in die DB geschrieben:
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?
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"]
Code: Alles auswählen
Number fbhk_mqtt_vlg "Vorlauf gesamt [%.1f °C]" <temperature> {channel="mqtt:topic:fbhk:vlg"}
Code: Alles auswählen
fbhk_mqtt_vlg : strategy = everyChange, every10Minutes
Oder brauche ich eine rule für die Umrechnung? Und damit dann auch zwei verschiedene Variablen?
-
- Beiträge: 41
- Registriert: 8. Mär 2020 19:58
Re: gespiegelte SD startet nicht
Ich habe mich dazu noch einmal belesen - Problem geklärt:
thing auf string geändert
item mit transformer script ergänzt:
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(' ','')"]}