Moin,
kleines Problem hier: Ich habe eine readingsGroup .*:[tT]emp.*
, die funktioniert einwandfrei für alle Werte. Dann sendet per selbstdefinierten Befehlen ein notify Temperaturwerte an einen MQTT Broker zur Anzeige auf einem entfernten Display.
Aber es funktioneren einige ReadingsVal nicht und liefern immer nur den gesetzten Wert 0, obwohl in der readingsGroup alle Werte einwandfrei zu sehen sind. Die Variable $bad steht als Platzhalter für weitere Werte.
Danke im Voraus. Schönen Restsonntag.
Die hier z.b. sind immer 0:
my $comp1 = ReadingsVal("Computer","temperature",0);;\
my $bad = ReadingsVal("Bad","temperature",0);;\
my $schlaf = ReadingsVal("NW-Dect200","temperature",0);;\
define c_mqttmsg cmdalias mqttmsgwork .* AS {qx(/usr/bin/mosquitto_pub -h 192.168.177.201 -t \"$EVTPART0\" -m \"$EVTPART1\")}
define c_mqttms2 cmdalias mqttmsghome .* AS {qx(/usr/bin/mosquitto_pub -h 127.0.0.1 -t \"$EVTPART0\" -m \"$EVTPART1\")}
define rg_fhemhome readingsGroup .*:[tT]emp.*
attr rg_fhemhome room fhemhome
define nt_fhemhome notify .*:[tT]emp.* {\
my $wohn2 = ReadingsVal("SensorN171","Temp",0);;\
my $comp1 = ReadingsVal("Computer","temperature",0);;\
my $comp2 = ReadingsVal("SensorN170","Temp",0);;\
my $bad = ReadingsVal("Bad","temperature",0);;\
my $schlaf = ReadingsVal("NW-Dect200","temperature",0);;\
my $cmd = 'mqttmsgwork fhem/temphome "'.$bad.'y'.$wohn2.'y'.$comp1.'y'.$comp2.'y'.$bad.'y'.$schlaf.'y'.$bad.'y'.$bad.'"';;\
my $cm2 = 'mqttmsghome fhem/temphome "'.$bad.'y'.$wohn2.'y'.$comp1.'y'.$comp2.'y'.$bad.'y'.$schlaf.'y'.$bad.'y'.$bad.'"';;\
print STDERR $cmd;;\
#fhem($cmd);;\
fhem($cm2);;\
}
attr nt_fhemhome room fhemhome
mqttmsgwork fhem/temphome "0y22.40y0y21.50y0y0y0y0"
readingsGroup hat keine eigenen readings. deshalb kann man ReadigsVal nicht verwenden.
du musst die werte aus den original devices holen.
Zitatdu musst die werte aus den original devices holen.
Danke. Aber wie? Die Werte sind doch irgendwo im FHEM gespeichert, wenn sie angezeigt werden können? Da muss man doch rankommen?
im original device. und nur da.
Danke, ist gelöst, manchmal sieht man den Wald blablabla... :-)
z.B $bad über das device MAX_12ec6f:
my $bad = ReadingsVal("MAX_12ec6f","temperature",0);
Zitat von: fhem@supergut am 24 März 2019, 12:18:16
Danke, ist gelöst, manchmal sieht man den Wald blablabla... :-)
Wäre schön, wenn du dann noch ein [gelösr] o.à. vor das Subject des ersten Posts schreibst :-)
Kurz, weil mobil
und Themen bitte nicht schließen (möglicherweise gibt es Folge-Fragen)