Seite 3 von 3

Re: Hilfe bei REGEX Transformation eines MQTT Gerätes

Verfasst: 9. Jul 2020 20:10
von J-N-K
Wenn das Problem aber erst auftaucht, wenn zwei definiert sind, wie ist denn die Definition von dem zweiten?

Re: Hilfe bei REGEX Transformation eines MQTT Gerätes

Verfasst: 9. Jul 2020 20:59
von udo1toni
Das Problem kann eigentlich nicht in der beschriebenen Form auftreten :) aber ich muss zugeben, dass ich den Thread nur überflogen habe. Bilder sind mir zuwider, ich kann die Konfiguration daraus so schlecht lesen - Ich bin mit Text Konfiguration groß geworden, und das hat viele Vorteile, nicht nur Lesbarkeit...


Gesendet von iPad mit Tapatalk

Re: Hilfe bei REGEX Transformation eines MQTT Gerätes

Verfasst: 10. Jul 2020 00:17
von J-N-K
Meine Überlegung war: wenn ich auf R[0]:1 und R[0]:0 matche und im gleichen Topic R[1]:1 kommt, könnte das eventuell einen solchen Fehler produzieren (weil das eben nichts matched). Müsste mal mal ausprobieren.

Generell teile ich Deine Meinung: als JSON wäre das einfacher.

Re: Hilfe bei REGEX Transformation eines MQTT Gerätes

Verfasst: 10. Jul 2020 10:52
von peter-pan
udo1toni hat geschrieben: 9. Jul 2020 20:59 Bilder sind mir zuwider
Du hast natürlich Recht. Ich bevorzuge eigentlich auch deinen Konfigurationsstil, aber ich glaube J-N-K hat alles über PaperUI konfiguriert und da gibt's leider, abgesehen von JSON-DB, keine Text-Files und da möchte(kann) man (ich) nicht drin herum spielen

Hilfe bei REGEX Transformation eines MQTT Gerätes

Verfasst: 10. Jul 2020 11:07
von udo1toni
J-N-K hat geschrieben:Meine Überlegung war: wenn ich auf R[0]:1 und R[0]:0 matche und im gleichen Topic R[1]:1 kommt, könnte das eventuell einen solchen Fehler produzieren (weil das eben nichts matched).
Ja, das ist ein sehr guter Punkt!

Das mqtt Binding gibt dafür nichts her. Ausweg:
Du definierst zwei Channel, den einen für rein, den anderen für raus. Die beiden Channel verbindest Du mit zwei String Items.

Anschließend legst Du ungebundene Items für jeden Endpunkt (Relais, Temperatur, whatever, was halt über den Status rein kommen kann oder über den Command-Channel gesteuert wird) an. Nun brauchst Du noch zwei Rules. Die eine Rule triggert auf ein Update des rein-Channel-Items ;) , wertet den empfangenen String aus und setzt den Status des jeweils passenden Items.
Die andere Rule triggert auf eine Group, in der alle Items zusammengefasst sind, die einen Steuerbefehl an das Gerät senden dürfen. Dabei verwendest Du Member of GroupItem received command.
Nun muss die Rule aus dem triggeringItem.name und receivedCommand entscheiden, wie genau der zu sendende String lauten muss.

Dieser Weg ist natürlich unbequem, sollte aber ohne Fehlermeldungen funktionieren.

Es gibt noch eine weitere Möglichkeit: Du kannst eine incomming Transformation nutzen und dabei über ein Bool‘sches Verkettungs-Symbol mehrere Transformations koppeln. Das Zeichen sieht entfernt aus, wie ein auf dem Kopf stehendes U :) und ich finde es nicht auf der iPad-Tastatur...
Auch auf einem Windows-PC ist das Zeichen nicht gut erreichbar. :) Wenn Du in der offiziellen Doku nachschaust, sollte das Zeichen aber irgendwo (im Zusammenhang mit transformations) erscheinen, dann kannst Du es von dort in die Zwischenablage übernehmen... (ja, totale Glanzleistung der Entwickler, das so zu lösen...)


Gesendet von iPad mit Tapatalk