Variable im json String [gelöst]

Begonnen von joschi2009, 14 März 2024, 16:29:48

Vorheriges Thema - Nächstes Thema

joschi2009

Hallo zusammen,
bräuchte mal Eure Hilfe.
Mit dem folgenden DOIF kann man in einem WLED-Device den an Postition "TEXT" eingefügten Text als Laufschrift anzeigen lassen.

define pylontech_DOIF DOIF ([Pylontec:"^powerIN:.*$"]) ({qx(curl -X POST "http://192.168.178.133/json/state" -d '{"seg":[{"n":"TEXT"}]}' -H "Content-Type: application/json")})
Jetzt würde ich gerne Readings eines Devices anstatt des Wortes TEXT übergeben, komme aber hier nicht weiter.
Versuche in der Form:

define pylontech_DOIF DOIF ([Pylontec:"^powerIN:.*$"]) ({qx(curl -X POST "http://192.168.178.133/json/state" -d '{"seg":[{"n":"ReadingsVal("Pylontech","powerIN","0")"}]}' -H "Content-Type: application/json")})
funktionieren leider nicht.

Kann mir hier jemand einen Tip geben?

betateilchen

Warum um alles in der Welt macht man sowas über den Umweg mit Betriebssystem und curl, anstatt die von FHEM für sowas bereitgestellten Funktionen in den HTTPutils zu verwenden? Damit geht das doch viel einfacher.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

joschi2009

Hallo betateilchen,

wenn ich wüsste wie...
meine eigene Suche hatte mich schon zu HTTPutils gebracht aber das schien mir irgendwie noch aussichtsloser :-(

joschi2009

Hab es hinbekommen, hatte kleinen Fehler in der Schreibweise.
so funktioniert es:
define pylontech_DOIF DOIF ([Pylontec:"^powerIN:.*$"]) ({qx(curl -X POST "http://192.168.178.133/json/state" -d '{"seg":[{"n":"[Pylontec:powerIN]"}]}' -H "Content-Type: application/json")})