UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

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

Wissen, Planung & Diskussion zur MQTT Unterstützung im Timberwolf Server.
Stellt uns hier Eure MQTT Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
MSF
Reactions:
Beiträge: 5
Registriert: Mo Nov 18, 2019 9:43 pm
Hat sich bedankt: 34 Mal
Danksagung erhalten: 4 Mal

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

#1

Beitrag 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
950Q 234, VPN offen, Reboot erlaubt

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#2

Beitrag 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
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Ersteller
MSF
Reactions:
Beiträge: 5
Registriert: Mo Nov 18, 2019 9:43 pm
Hat sich bedankt: 34 Mal
Danksagung erhalten: 4 Mal

#3

Beitrag 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
950Q 234, VPN offen, Reboot erlaubt

ms20de
Elaborated Networks
Reactions:
Beiträge: 974
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 280 Mal
Danksagung erhalten: 498 Mal

#4

Beitrag 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
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#5

Beitrag von StefanW »

Ich habe es mal als Minor Bug gekennzeichnet, damit wir es nicht übersehen.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Antworten

Zurück zu „MQTT“