Seite 1 von 1

[TWS 950 V3.0 RC 5.1] Publish eines verschachtelten JSON

Verfasst: Mi Jul 20, 2022 8:09 pm
von MSF
Hallo zusammen,

ich habe eine Steckdose vom Typ netIO4all (ähnlich der, die im MQTT-Video ab Minute 1h 15m besprochen wurde) und würde diese gerne auch über MQTT bedienen wollen.

Das Auslesen der Statusinformationen (Status, aktuelle Leistung, Gesamtverbrauch) funktioniert alles reibungslos.

Was ich nicht hin bekomme ist die Änderung der Ausgänge über MQTT mit Hilfe des TWS.

Folgende Zeile habe ich über den MQTT Explorer mit Erfolg senden lassen:
Topic: devices/ID/messages/devicebound/
json: {"Operation":"SetOutputs","Outputs": [{"ID":4, "Action":4}]}

Kurz in meinen einfachen Worten ausgedrückt: "Der vierte Ausgang (ID=4) wird getoggelt (Action=4)." Um einen Ausgang zu ändern ist es immer nötig die entsprechende ID (1 bis 4) und die jeweilige Aktion (0 bis 6) mit zu übergeben.

Wie bekomme ich nun diese Verschachtelung der Daten in die Publish-Funktion bzw. wahrscheinlich besser in eine APP Level Topic hinterlegt?

Vielen Dank für eure Unterstützung!!

VG Martin

Re: [TWS 950 V3.0 RC 5.1] Publish eines verschachtelten JSON

Verfasst: Mi Jul 20, 2022 8:56 pm
von StefanW
Hi Martin,

Du legst einfach eine Transaktionsgruppe an und baust dort zwei Transaktionen ein, eines für ID und eines für Action.

Bei den Triggerbedingungen dann hinterlegen, dass die gesamte Gruppe ausgelöst werden soll bei Änderung an einem eingehenden Objekt.

Dann baut Dir der TWS das Json entsprechend zusammen, soweit Du die Struktur im Selektor richtig hinterlegst. Sollte im Video so beschrieben sein.


lg

Stefan

Re: [TWS 950 V3.0 RC 5.1] Publish eines verschachtelten JSON

Verfasst: Sa Jul 23, 2022 2:09 pm
von MSF
Hallo Stefan,

danke für deine Hinweise.

Kurze Zusammenfassung, was ich dafür erstellt habe:
1. Ich habe für die beispielhafte Schaltung eines Steckdosenausgangs ein separates App Level Topic erstellt.
2. Darin habe ich drei Publishs hinzugefügt
2a. Das erste Publish ist die Operation: SetOutputs. Diese habe ich mir über eine Logik Multiplexer (String) eingefügt. Die Logik wird einmal in der Stunde gesendet. Dieses Publish löst aber nicht die Gruppe aus, da sich ja am Ausgang nichts ändern soll.
2b. Das zweite Publish ist die ID: 4. Auch in diesem Fall habe ich mir über die Multiplexer Logik (diesmal integer) geholfen. Der Trigger sendet auch hier nur alle 60 Minuten. Auch dieser Publish löst nicht die gesamte Gruppe aus, da der App Level Topic nur für diesen Ausgang ist.
2c. Dies ist der eigentliche Publish, der die Änderung hervorrufen soll. Hier habe ich eine normale UND Logik verwendet, die das toggeln des Ausgangs bewirken soll. Sobald hier ein Eingang erfolgt wird die gesamte Gruppe gesendet. Dies passiert auch wunderbar und zeigt als Ergebnis die Zeile:
{"Operation": "SetOutputs", "Outputs": {"ID": 4, "Action": 4}}
im MQTT Explorer bzw. auch im TWS an.

Leider schaltet der Ausgang nicht wie gewünscht, da die Steckdosenleiste die folgende Zeile mit zwei zusätzlich [] Klammern erwartet:
{"Operation": "SetOutputs","Outputs": [{"ID": 4,"Action": 4}]}

Ich nehme an, dass dies wieder einer der besonderen Fälle ist. Kann ich irgendwie diese Klammern ergänzen?

Vielen Dank!

VG Martin

Re: [TWS 950 V3.0 RC 5.1] Publish eines verschachtelten JSON

Verfasst: Fr Jul 29, 2022 8:53 pm
von ms20de
Hallo Martin,

wir werden uns das Problem ansehen, aber der Experte ist gerade im Urlaub und es kann ein bisschen dauern.

Viele Grüße,
Matthias

Re: [TWS 950 V3.0 RC 5.1] Publish eines verschachtelten JSON

Verfasst: Sa Jul 30, 2022 8:31 am
von StefanW
Ich habe es mal als Minor Bug gekennzeichnet, damit wir es nicht übersehen.

lg

Stefan