MQTT String mit mehreren Variablen / Items

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
djd1983
Beiträge: 18
Registriert: 7. Dez 2023 09:38
Answers: 0

MQTT String mit mehreren Variablen / Items

Beitrag von djd1983 »

Hallo nochmal, vor einiger Zeit habe ich gefragt, wie man ein MQTT Datums-String im Rahmen einer Transformation extrahiert. Nun stehe ich vor der nächsten Hürde und muss einen String von mehreren Temperatursensoren auseinander dividieren. Der String zeigt sich im folgenden Format

S1;S2;S3;S4;S5;S6

S steht für die jewiligen Temperatursensoren, die in diesem String jeweils ihre eigenen Temperaturen anzeigen. Also als Beispiel

44.44;12.56;-;-;16.62;-;c8 50 04

Die letzte stelle scheint eine Hexadez ziffer für irgendeine Kennung zu sein. Also eher uninteressant für mich. Jetzt möchte ich diesen String zerlegen und jede einzelne Temperatur im Rahmen eines Items einzeln anlegen. Wie könnte man das machen?

Gruß

Harka
Beiträge: 308
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: MQTT String mit mehreren Variablen / Items

Beitrag von Harka »

Moin,
Du kannst den String innerhalb einer Rule mit DeineStringVariable.split(';') in ein Array umwandeln oder gleich am Eingang mittels der Incoming_Value_Transformations aufteilen.
JS:|(input).split(';')[0] ergibt dort 44.44
Für letzteres bei Configure_Channel auf Show_advanced klicken

djd1983
Beiträge: 18
Registriert: 7. Dez 2023 09:38
Answers: 0

Re: MQTT String mit mehreren Variablen / Items

Beitrag von djd1983 »

Harka hat geschrieben: 27. Jan 2024 20:57 JS:|(input).split(';')[0]
Sehr schön. Das hat funktioniert. Danke dafür. Zwar musste ich jetzt für jedes Item ein eigenen Channel erstellt aber ich denke damit kann ich leben. :D

Die Ziffer in der letzten eckigen Klammer habe ich dann gemäß der STelle in dem String durchnummeriert um die gewünschte Zahl zu bekommen.

Danke nochmal :)

Antworten