Hallo,
hätte eine Frage.
Will im notify ein dummy setzen. Klappt aber leider nicht.
Scheinbar falsch geklammert oder die Ebene falsch?
Kann mir jemand einen Tipp geben?
Danke VG T
defmode Max_Min_Value notifyMAX_HT_.* {fhem("set MAX_Temp_Dummy_Min {List::Util::min(ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188949_MAX_0270b9','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_09bd6f','temperature',''))}")}
Im dummy steht immer nur die Syntax und nicht der Wert.
Versuch's mal damit:
defmode Max_Min_Value notify MAX_HT_.* {my $minimal = List::Util::min(ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188949_MAX_0270b9','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_09bd6f','temperature',''));; fhem("set MAX_Temp_Dummy_Min $minimal")}
Im Zweifel ist es mit dem iterativen Vorgehen über die Variable einfacher, das zu testen. Du kannst den Teil mit der Ermittlung des Werts dann einfach in der Kommandzeile testen:
{List::Util::min(ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188949_MAX_0270b9','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_09bd6f','temperature',''))}
Zitat von: Beta-User am 20 Januar 2020, 16:46:08
Versuch's mal damit:
defmode Max_Min_Value notify MAX_HT_.* {my $minimal = List::Util::min(ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188949_MAX_0270b9','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_09bd6f','temperature',''));; fhem("set MAX_Temp_Dummy_Min $minimal")}
Im Zweifel ist es mit dem iterativen Vorgehen über die Variable einfacher, das zu testen. Du kannst den Teil mit der Ermittlung des Werts dann einfach in der Kommandzeile testen:
{List::Util::min(ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188949_MAX_0270b9','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_09bd6f','temperature',''))}
Hallo, danke
das mit der Kommandozeile hatte ich schon versuche und das klappt. in der Form:
{List::Util::min(ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_HT_JEQ0187040_MAX_025f8c','temperature',''),ReadingsVal('MAX_HT_JEQ0188949_MAX_0270b9','temperature',''),ReadingsVal('MAX_HT_JEQ0188720_MAX_026f74','temperature',''),ReadingsVal('MAX_09bd6f','temperature',''))}")}
Werde es später dann mal mit der Variablen probieren. VG T