Hallo,
ich möchte mit einem notify eine Telegram message schicken - in meinem Fall abhängig von der gemessenen Außentemperatur meiner Heizung. Allerding müsste ich da auf if Bedingungen zurückgreifen, da das notify nur reagieren soll, wenn folgende Paramter erfüllt sind:
Außentemperatur unter 3°C
nur Wochentags
nur zwischen 1 Uhr und 5 Uhr
nur zwischen September und April
Hier mal mein Grundnotify:
define Standheizung notify Mythz:outside_temp:.* set Citylife500FHEM_Bot message Standheizung einschalten - Temperatur unter 3°C
Wie bekomme ich den Rest da nun rein?
my $hm = sprintf("%02d:%02d", $hour, $min)
if ($month >= 9 || $month <= 4 && $we = 0)
if ( $hm gt "01:00" && $hm lt "05:00")
if ($EVTPART1 < 3 )
Und stimmt das $EVTPART1 für die Temperatur?
Zitat von: Stonemuc am 23 Oktober 2018, 12:15:26
Hallo,
ich möchte mit einem notify eine Telegram message schicken - in meinem Fall abhängig von der gemessenen Außentemperatur meiner Heizung. Allerding müsste ich da auf if Bedingungen zurückgreifen, da das notify nur reagieren soll, wenn folgende Paramter erfüllt sind:
Außentemperatur unter 3°C
nur Wochentags
nur zwischen 1 Uhr und 5 Uhr
nur zwischen September und April
Hier mal mein Grundnotify:
define Standheizung notify Mythz:outside_temp:.* set Citylife500FHEM_Bot message Standheizung einschalten - Temperatur unter 3°C
Wie bekomme ich den Rest da nun rein?
my $hm = sprintf("%02d:%02d", $hour, $min)
if ($month >= 9 || $month <= 4 && $we = 0)
if ( $hm gt "01:00" && $hm lt "05:00")
if ($EVTPART1 < 3 )
Und stimmt das $EVTPART1 für die Temperatur?
Du triggerst auf die Aussentemperatur. So triggert Dein Notify ja ständig.
Ich würde im Temperatursensor ein userReadings setzen was ein Reading mit dem Wert "frost" schreibt wenn die Temp unter 3 Grad landet.
Auf frost triggert dann Dein Notify. Du willst nur zwischen 1 und 5 Uhr eine Nachricht bekommen, dann deaktiviere das Notify in der anderen Zeit disabledForInterval.
Du musst also nur noch den Monat abfragen
Also kann ich das so nicht lösen mit den if Bedingungen im Notify? Ich hab das so ähnlich im notify Wiki gelesen...
Mir ist nicht klar, wie ich überhaupt die if Bedingung im notify "einklammere" bzw. dann mehrere if Bedingungen...
Das mit dem reading frost ist eine gute Idee...
Zitat von: Stonemuc am 23 Oktober 2018, 13:02:45
Also kann ich das so nicht lösen mit den if Bedingungen im Notify? Ich hab das so ähnlich im notify Wiki gelesen...
Mir ist nicht klar, wie ich überhaupt die if Bedingung im notify "einklammere" bzw. dann mehrere if Bedingungen...
Das mit dem reading frost ist eine gute Idee...
Doch kannst Du. Äh aber nicht so wie Du es geschrieben hast.
my $hm = sprintf("%02d:%02d", $hour, $min);
if ($month >= 9 || $month <= 4 && $we = 0) {
if ( $hm gt "01:00" && $hm lt "05:00") {
if ($EVTPART1 < 3 ) {
alles past nachricht kann raus
}
}
}
So passt das besser. Meine Empfehlung wäre aber wirklich es so oder ähnlich zu machen wie ich oben geschrieben habe.
Hier kannst du auch (fast) alle Bedingungen mit && verketten, nur um or muss eine Klammer.
Vermutlich ist es EVTPART0, was du benötigt, oder sogar ReadingsNum().
Da auch ein userreading eine Art Auswertung erfordert, sehe ich keinen großen Vorteil, wenn man das vor schaltet.
(Hat jemand dazu mal Messergebnisse?)
Hm, soweit ich weiß hat das && die höhere Rangstufe gegenüber dem ||. Damit würde erst geprüft, ob der Monat < 4 und we == 0 oder der Monat > 9 ist. Somit würde bei Monat > 9 das Wochenende keine Rolle spielen. Siehe auch http://www.aip.de/groups/soe/local/handbuch/html/tecf.htm#a4 unter Rangfolge.
Gesendet von iPad mit Tapatalk
Deswegen stend da was von einer Klammer um or (= ||)...
Zitat von: Beta-User am 23 Oktober 2018, 14:49:14
Deswegen stend da was von einer Klammer um or (= ||)...
Du warst schneller und ich hatte Deinen Post nicht mitbekommen...
Gesendet von iPad mit Tapatalk
Zitat von: CoolTux am 23 Oktober 2018, 12:26:29
Du triggerst auf die Aussentemperatur. So triggert Dein Notify ja ständig.
Ich würde im Temperatursensor ein userReadings setzen was ein Reading mit dem Wert "frost" schreibt wenn die Temp unter 3 Grad landet.
Auf frost triggert dann Dein Notify. Du willst nur zwischen 1 und 5 Uhr eine Nachricht bekommen, dann deaktiviere das Notify in der anderen Zeit disabledForInterval.
Du musst also nur noch den Monat abfragen
würde ich das userReadings dann im Prinzip in die Wetterstation integrieren? also z.B.
attr Weatherman userReadings frost { return "frost" if (ReadingsTimestamp($name,wm_var_temperature) < 3) }
- ist das so richtig?