[GELÖST] Readings via MQTT versenden

Begonnen von good_mike, 22 November 2020, 14:56:30

Vorheriges Thema - Nächstes Thema

good_mike

Hallo,

bin wieder mal am üben um den Inhalt von Variablen aus FHEM via MQTT nach NodeRed zu bekommen.

Da ich absoluter Newbi bin, verzeiht mir bitte schon mal die evtl. falsche Ausdrucksweise.

Ich habe schon mal folgendes hinbekommen um ein sich verändertes "Beispiel-"Reading zu generieren:
1.
Die Eingabe von
{ ReadingsVal("CPU_Daten", "uptime",0);; }
ergibt schon mal ein plausibles Ergebnis z.B. 1803221

2.
Die Eingabe von
set mosquitto publish /MQTT_CPU_TIME Test
führt zur Ausgabe des Wortes "Test" in MQTT.fx und dann auch in NodeRed

D.h. für mich, ich kann 1. ein Reading auslesen und 2. etwas per MQTT publishen was dann auch ankommt.

Wie schaffe ich es jetzt das der Inhalt des Reading aus 1. (z.B. 1803221) automatisch bei einer Veränderung per MQTT gesendet wird und ich diesen wieder in MQTT.fx sehe.

Hier fehlt mir noch irgendwie der Zusammenhang...

Vielen Dank schon mal für Eure Unterstützung eines "Neune"

Grüße

Michael

TomLee

Hallo,

mit einem notify auf das Reading !?

So in der Art:

define <notifyname> notify CPU_Daten:uptime:..* set mosquitto publish /MQTT_CPU_TIME [CPU_Daten:uptime]


Gruß

Thomas

good_mike

Super, Danke!

Funktioniert und ich habe wieder was gelernt.

Gruß


Michael

TomLee

Das hier eigentlich das falsche Forum, vlt. magst du den Thread noch nach MQTT verschieben. (das kannst du machen, unten links)




Hier noch die zwei mir bekannten Wege es mit Perl umzusetzen, set magic mag ja nicht jeder.

Für die DEF:

{ my $v= ReadingsVal("CPU_Daten", "uptime",0);fhem("set MQTT2_Server publish MQTT_CPU_TIME $v" )}

{fhem("set MQTT2_Server publish MQTT_CPU_TIME ". ReadingsVal("CPU_Daten", "uptime",0))}

good_mike

Danke auch für die 2 Lösungsmöglichkeit!
Ich hatte es in diesem Forum da es aus meiner Sicht wohl eine Anfängerfrage ist. Aber ich verschiebe es gerne nach MQTT. Vielleicht ist es da tatsächlich besser aufgehoben  :)