Hallo, die bestehende Temperaturwarnung für unseren Kühlschrank:
# Warnung Tiefkühlfach Links ################
# Dummy-Variable zur Limitation der Aktionen des notify (Telegram messages, etc.)
define TempVar_KuehlschrankZuWarm_Links dummy
attr TempVar_KuehlschrankZuWarm_Links room Automation
# Warnung
define nf_KuehlschrankZuWarm_Links notify Sensor_TH_Kuehlschrank_Links.* { \
if (ReadingsVal("Sensor_TH_Kuehlschrank_Links","temperature", "") > -14.5) {\
if ( Value("KuehlschrankZuWarm_Temp_Links") eq "nein" ) {\
fhem("set KuehlschrankZuWarm_Temp_Links ja");;\
fhem("define at_KuehlschrankZuWarm_Links at +00:10:00 set KuehlschrankZuWarm_Temp_Links nein");;\
fhem("set telegram message Kühlschrank (Tiefkühlfach) ist zu warm! ".ReadingsVal("Sensor_TH_Kuehlschrank_Links","temperature","")."°C!")\
} } }
attr nf_KuehlschrankZuWarm_Links room Automation
soll auf neu angeschaffte Lacrosse Sensoren (Sensor_TH_Kuehlschrank_Links) umgestellt werden. Bei diesen steckt die Temperatur allerdings nicht mehr in einem reading "temperature" wie in den alten HMS Sensoren (Siehe code oben), sondern in einem INTERNAL "STATE" das etwa so aussieht "T: -14.3 H: 70". Könnte mir jemand sagen wie vermutlich die Zeile:
if (ReadingsVal("Sensor_TH_Kuehlschrank_Links","temperature", "") > -14.5) {\
korrigiert werden müsste, um die Temperatur bei Lacrosse Sensoren abzufragen? Danke!
Splite dir doch die Temperatur heraus und leg ein Userreading mit temperature an!
LG
Marlen
Bitte einmal ein List vom Lacrosse Sensor machen und hier einstellen. Kann mir beim besten willen nicht vorstellen welcher Entwickler Informationen nur in Internals speichert. Zu mal man $hash->{STATE} nie direkt beschreiben soll
Anbei das List vom Sensor. Marlen, vielen Dank für deinen Hinweis, aber ich habe leider keine Ahnung wie ich das machen soll. Die Beispiele die ich für userreadings gefunden habe beinhalteten bisher nie das "splitten" was ich bräuchte...
Internals:
DEF 34
IODev hub_JeeLink
IODevMissing 1
IODevName myJeeLink
LASTInputDev hub_JeeLink
LaCrosse_lastRcv 2017-10-27 12:48:31
MSGCNT 565
NAME Sensor_TH_Kuehlschrank_Links
NR 201
STATE T: -18.2 H: 63
TYPE LaCrosse
addr 34
battery_new 0
corr1 0
corr2 0
hub_JeeLink_MSGCNT 565
hub_JeeLink_RAWMSG OK 9 52 1 3 50 63
hub_JeeLink_TIME 2017-10-27 12:48:31
previousH 63
previousT -18.1
sensorType 0=T(H)
READINGS:
2017-10-27 12:48:31 battery ok
2017-10-27 12:48:31 humidity 63
2017-10-27 12:48:05 state T: -18.2 H: 63
2017-10-27 12:48:31 temperature -18.2
Attributes:
IODev myJeeLink
room Sensoren
Wie wäre es denn mit dem Reading "temperature" !? :D
Kopf Tisch ;D
Oh, äh, ja das gibt es ja :-[ . Sorry, dann formuliere ich meine Frage um. Wieso funktioniert dann mein Code nicht? Sieht jemand einen offensichtlichen Fehler? Bis gestern (mit HMS Sensoren die auch ein reading "temperature" haben) lief alles problemlos. :o
Tut mir wirklich sehr leid! Der Fehler ist gefunden. Die dummy Variablen waren falsch benannt, diese wurden im notify code offenbar nicht von einem im Webinterface ausgeführten "rename" Befehl erfasst. Alles läuft nun. Danke und nochmal Sorry!!
Hauptsache es läuft
Zitat von: hme am 27 Oktober 2017, 13:06:35
...Danke und nochmal Sorry!!
Kein Problem.
Manchmal sieht man "den Wald vor Bäumen nicht" , obwohl man sich seinen Code zig mal kontrolliert hat. Da helfen ein paar zusätzliche Augen schnell weiter.
@coolTux
könntest du bitte den korrigierten, funktionieren Code hier nochmals nennen?
ich habe ein ähnliches Problem
danke
Thomas