[VERSCHOBEN] mqttpublish Frage an Experten zum topic und payload

Begonnen von frankreed, 21 Oktober 2021, 18:38:34

Vorheriges Thema - Nächstes Thema

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:


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


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

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

ich habe ein device, das mit brav readings füllt.
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:
versteht wohl nur, wem das Stichwort MQTT_GENERIC_BRIDGE was sagt (oder worauf bezieht sich das...?) (=> Falscher Forumsbereich, bitte nach MQTT verschieben!)

Zitat

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

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files


Beta-User

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

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files