gespiegelte SD startet nicht

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

iTob
Beiträge: 41
Registriert: 8. Mär 2020 19:58
Answers: 0

Re: gespiegelte SD startet nicht

Beitrag 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?

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

Re: gespiegelte SD startet nicht

Beitrag 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.

Code: Alles auswählen

"DSL:|input.replace(' ','').replace(',','.')"
. 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...).
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

iTob
Beiträge: 41
Registriert: 8. Mär 2020 19:58
Answers: 0

Re: gespiegelte SD startet nicht

Beitrag 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...

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

Re: gespiegelte SD startet nicht

Beitrag von udo1toni »

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)

iTob
Beiträge: 41
Registriert: 8. Mär 2020 19:58
Answers: 0

Re: gespiegelte SD startet nicht

Beitrag 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?

iTob
Beiträge: 41
Registriert: 8. Mär 2020 19:58
Answers: 0

Re: gespiegelte SD startet nicht

Beitrag 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(' ','')"]}

Antworten