Autor Thema: [VERSCHOBEN] mqttpublish Frage an Experten zum topic und payload  (Gelesen 574 mal)

Offline frankreed

  • Full Member
  • ***
  • Beiträge: 142
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

« Letzte Änderung: 24 Oktober 2021, 13:58:27 von frankreed »

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16836
Antw:mqttpublish Frage an Experten zum topic und payload
« Antwort #1 am: 22 Oktober 2021, 10:07:50 »
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.
« Letzte Änderung: 22 Oktober 2021, 10:09:42 von Beta-User »
Server: HP-T620@Debian 11, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline frankreed

  • Full Member
  • ***
  • Beiträge: 142

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16836
Antw:mqttpublish Frage an Experten zum topic und payload
« Antwort #3 am: 26 Oktober 2021, 13:13:08 »
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-T620@Debian 11, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

 

decade-submarginal