FHEM - Hausautomations-Systeme > Unterstützende Dienste

[VERSCHOBEN] mqttpublish Frage an Experten zum topic und payload

(1/1)

frankreed:
Hallo,

ich habe ein device, das mit brav readings füllt.

wie müsste ich nun das Attribut mqttpublish formulieren, dass am Ende auf dem topic "sensor/cpu" folgende payload rauskommt:


--- Code: ---{
"used_space": 25,
"sys_clock_speed": 1500,
"data": {
"cpu_temp": 43.0,
"voltage": 0.8500,
"cpu_load": 1.25
},
"memory": "False",
"swap": "False"
}
--- Ende Code ---

Die im topic aufgeführten readings und Werte liegen ja vor.

Ich blicke nicht durch, wie ich das jetzt machen muss.

Danke im Voraus für die Hilfe

Beta-User:

--- Zitat von: frankreed am 21 Oktober 2021, 18:38:34 ---Hallo,

ich habe ein device, das mit brav readings füllt.

--- Ende Zitat ---
Aha. Und wo ist das? Kann man weglassen, aber

--- Zitat ---wie müsste ich nun das Attribut mqttpublish formulieren, dass am Ende auf dem topic "sensor/cpu" folgende payload rauskommt:

--- Ende Zitat ---
versteht wohl nur, wem das Stichwort MQTT_GENERIC_BRIDGE was sagt (oder worauf bezieht sich das...?) (=> Falscher Forumsbereich, bitte nach MQTT verschieben!)


--- Zitat ---
--- Code: ---{
   "used_space": 25,
   "sys_clock_speed": 1500,
   "data": {
      "cpu_temp": 43.0,
      "voltage": 0.8500,
      "cpu_load": 1.25
   },
   "memory": "False",
   "swap": "False"
}
--- Ende Code ---

--- Ende Zitat ---
Sowas kann man auf verschiedene Weise erzeugen, ein Beispiel für "toJSON" ist in der commandref enthalten (das letzte), allerdings müßtest du versuchen, ob es mit einem "gestuften Hash" klappt (Unterstruktur unter "data" anlegen), und ob die Gegenstelle "unsauberen JSON" schluckt (toJSON packt auch Zahlenwerte in Quotes).

Ansonsten kannst du auch eine "einfache concatenation" machen (Zeilenumbrüche weglassen).

Und zu guter Letzt: asl "auslösendes Reading" das aussuchen, das immer als letztes in deinem Ausgangsdevice aktualisiert wird (falls es kein bulk-update ist, was alles auf einmal aktualisiert, und da wären wir wieder bei: TYPE vom Ausgangsdevice...?).

Viel Erfolg.

frankreed:
Verschoben nach
https://forum.fhem.de/index.php/topic,123638.0.html

Beta-User:

--- Zitat von: frankreed am 24 Oktober 2021, 13:22:12 ---Verschoben nach
https://forum.fhem.de/index.php/topic,123638.0.html

--- Ende Zitat ---

Du hast nicht "verschoben", sondern einen neuen Thread augemacht... Zum "verschieben" gibt es unter dem ersten Beitrag einen extra "Knopf"...

Was die jetzt aufgeworfene Frage in dem anderen Thread angeht: Du kannst bequem eine myUtils-Routine basteln, die das entsprechend verpackt, und das dann als "expression" aufrufen.

Bei Interesse kannst du diesen Thread hier gerne (unter Änderung des Thread-Titels) nach "Perl für FHEM-User" verschieben, dann können wir das gemeinsam erruieren, wie man sowas macht ;) . Falls nicht: Bitte schließe dann diesen Thread (ausnahmsweise), da es ein (unzulässiger!) Doppelpost ist.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln