Seite 1 von 1

MQTT String mit mehreren Variablen / Items

Verfasst: 27. Jan 2024 19:24
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ß

Re: MQTT String mit mehreren Variablen / Items

Verfasst: 27. Jan 2024 20:57
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

Re: MQTT String mit mehreren Variablen / Items

Verfasst: 27. Jan 2024 23:03
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 :)