Regel die zwischen zwei Uhrzeiten nur greift
-
- Beiträge: 12
- Registriert: 23. Jun 2019 09:20
Regel die zwischen zwei Uhrzeiten nur greift
Hallo zusammen,
ich habe folgende Regel:
rule "AGAMEN_ALL_WATTAGE"
when
Item AGAMEN_ALL_WATTAGE changed to 0.0
then var Number zeitraum = now.getHourOfDay
if ((zeitraum >= 9.30) && (zeitraum <= 22.30)) {
sendMail("MEINEADRESSE", "Bartagamen Beleuchtungsproblem", "")
}
end
Wenn jetzt aber testweise das Licht schon um 22.25 Uhr ausgemacht wird greift diese Regel nicht, mag mir da eventuell mal jemand helfen?
Außerdem würde ich gerne wissen, wie man folgendes machen kann:
Der Wert fällt auf 0 oder aber unter bspw 100 Watt.
Vielen Dank
Gruß Schlingel
ich habe folgende Regel:
rule "AGAMEN_ALL_WATTAGE"
when
Item AGAMEN_ALL_WATTAGE changed to 0.0
then var Number zeitraum = now.getHourOfDay
if ((zeitraum >= 9.30) && (zeitraum <= 22.30)) {
sendMail("MEINEADRESSE", "Bartagamen Beleuchtungsproblem", "")
}
end
Wenn jetzt aber testweise das Licht schon um 22.25 Uhr ausgemacht wird greift diese Regel nicht, mag mir da eventuell mal jemand helfen?
Außerdem würde ich gerne wissen, wie man folgendes machen kann:
Der Wert fällt auf 0 oder aber unter bspw 100 Watt.
Vielen Dank
Gruß Schlingel
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Regel die zwischen zwei Uhrzeiten nur greift
Es geht mal damit los, dass .getHourOfDay einen Integer Wert zurück liefert, eben die aktuell angezeigte Stunde (auf einer Digitaluhr).
Grundsätzlich ist Dein Ansatz aber korrekt. So sollte es aussehen:
Ein Problem könnte der Wert 0.0 sein. Günstiger wäre vermutlich, mit
zu arbeiten (wobei 1 natürlich so hoch gewählt werden kann, wie klar ist, dass die Lampe ausgefallen ist).
Ein anderes Problem dabei ist dann natürlich, dass die Rule evtl. mehrfach triggert, so dass Du auch mehrfach eine Nachricht erhältst.
Grundsätzlich ist Dein Ansatz aber korrekt. So sollte es aussehen:
Code: Alles auswählen
rule "AGAMEN_ALL_WATTAGE"
when
Item AGAMEN_ALL_WATTAGE changed to 0.0
then
if (now.getMinuteOfDay >= 9*60+30 && now.getMinuteOfDay <= 22*60+30) {
sendMail("MEINEADRESSE", "Bartagamen Beleuchtungsproblem", "")
}
end
Code: Alles auswählen
when
Item AGAMEN_ALL_WATTAGE changed
then
if((AGAMEN_ALL_WATTAGE.state as Number) < 1)
Ein anderes Problem dabei ist dann natürlich, dass die Rule evtl. mehrfach triggert, so dass Du auch mehrfach eine Nachricht erhältst.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 12
- Registriert: 23. Jun 2019 09:20
Re: Regel die zwischen zwei Uhrzeiten nur greift
Hallo,udo1toni hat geschrieben:Es geht mal damit los, dass .getHourOfDay einen Integer Wert zurück liefert, eben die aktuell angezeigte Stunde (auf einer Digitaluhr).
Grundsätzlich ist Dein Ansatz aber korrekt. So sollte es aussehen:Ein Problem könnte der Wert 0.0 sein. Günstiger wäre vermutlich, mitCode: Alles auswählen
rule "AGAMEN_ALL_WATTAGE" when Item AGAMEN_ALL_WATTAGE changed to 0.0 then if (now.getMinuteOfDay >= 9*60+30 && now.getMinuteOfDay <= 22*60+30) { sendMail("MEINEADRESSE", "Bartagamen Beleuchtungsproblem", "") } end
zu arbeiten (wobei 1 natürlich so hoch gewählt werden kann, wie klar ist, dass die Lampe ausgefallen ist).Code: Alles auswählen
when Item AGAMEN_ALL_WATTAGE changed then if((AGAMEN_ALL_WATTAGE.state as Number) < 1)
Ein anderes Problem dabei ist dann natürlich, dass die Rule evtl. mehrfach triggert, so dass Du auch mehrfach eine Nachricht erhältst.
vielen Dank für die Antwort und die dazugehörigen Informationen! Wenn ich darauf prüfen lasse, ob sich der Status verändert habe ich innerhalb weniger Minuten das Postfach voll. Du wählst Minutes of the Day rechnest die Minuten für die gewünschte Uhrzeit aus und legst so ein von bis fest, habe ich das richtig verstanden? Dadurch, dass das Terrarium natürlich nicht aus einer Lampe besteht sondern aus mehreren kleinen besteht müsste ich ja dann quasi die kleinste Wattzahl nehmen und vom Gesamtverbrauch abziehen und alles was dann darunter ist triggered?! Und dann die 1 mit diesem Wert zu ersetzen? Ich versuche das jetzt mal so ins openhab2 einzupflegen und melde mich dann ggf. nochmal! Vielen Dank nochmal und einen schönen Abend!
€: Wie würde man denn die Prüfung der Uhrzeit und die Überprüfung des States <X zusammenbringen können?
Gesendet von meinem CLT-L29 mit Tapatalk
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Regel die zwischen zwei Uhrzeiten nur greift
Einfach mit && verknüpfen.
Um zu verhindern, dass Du mit Meldungen zugemüllt wirst, bietet es sich an, dass die Rule sich merkt, ob sie schon eine Nachricht verschickt hat.
Du kannst sogar dafür sorgen, dass Du z.B. stündlich eine neue Warnmeldung bekommst, indem Du mit einem Timer die Variable wieder zurück setzt.
Der letzte Teil der Rule setzt schon mal die Variable zurück, sobald die Leistung über 20 (Watt?) steigt, also offensichtlich das Problem beseitigt wurde.
Welche Werte Du konkret setzen musst, musst Du natürlich selbst wissen also wie gering darf die Leistung sein, ohne dass der Alarm los geht, wie hoch muss die Leistung sein, damit bei erneutem Einbruch (innerhalb des Zeitfensters) wieder Alarm gegeben wird.
Um zu verhindern, dass Du mit Meldungen zugemüllt wirst, bietet es sich an, dass die Rule sich merkt, ob sie schon eine Nachricht verschickt hat.
Code: Alles auswählen
var boolean bSent = false
rule "AGAMEN_ALL_WATTAGE"
when
Item AGAMEN_ALL_WATTAGE changed
then
if ((AGAMEN_ALL_WATTAGE.state as Number) < 1) && now.getMinuteOfDay >= 9*60+30 && now.getMinuteOfDay <= 22*60+30) {
if(!bSent) {
sendMail("MEINEADRESSE", "Bartagamen Beleuchtungsproblem", "")
bSent = true
}
} else if((AGAMEN_ALL_WATTAGE.state as Number)>= 20) { //
bSent = false
}
end
Der letzte Teil der Rule setzt schon mal die Variable zurück, sobald die Leistung über 20 (Watt?) steigt, also offensichtlich das Problem beseitigt wurde.
Welche Werte Du konkret setzen musst, musst Du natürlich selbst wissen also wie gering darf die Leistung sein, ohne dass der Alarm los geht, wie hoch muss die Leistung sein, damit bei erneutem Einbruch (innerhalb des Zeitfensters) wieder Alarm gegeben wird.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 12
- Registriert: 23. Jun 2019 09:20
Re: Regel die zwischen zwei Uhrzeiten nur greift
Erledigt
Zuletzt geändert von Schlingelrino am 26. Jun 2019 17:54, insgesamt 1-mal geändert.
-
- Beiträge: 12
- Registriert: 23. Jun 2019 09:20
Re: Regel die zwischen zwei Uhrzeiten nur greift
Die Anfrage darüber hat sich erledigt da hat ein Komma gefehlt.
Bei Zeiten die von einem Tag auf den anderen gehen bspw von 23 Uhr auf 1 Uhr. Wie geht denn das weil:
(now.getMinuteOfDay >= 23*60 && now.getMinuteOfDay <= 1*60)
Bspw nicht greift
Bei Zeiten die von einem Tag auf den anderen gehen bspw von 23 Uhr auf 1 Uhr. Wie geht denn das weil:
(now.getMinuteOfDay >= 23*60 && now.getMinuteOfDay <= 1*60)
Bspw nicht greift