sorry, regel, cron
Verfasst: 9. Jun 2024 22:55
hier mal meine ganze regel in openhab die funktioniert(erstmal)
nun zu meiner frage
ich wollte den regenmesser jeden tag,der auch aktuelle ist,( und nur der) um null uhr auf null setzen
die werte der anderen tage sollen erhalten bleiben, bis der tag abricht( der wochentag) der auch auf null gesetzt wird
also wenn montag anbricht auf null, dann weiter zählen was an regen fällt
wenn dienstag anbricht, dann weiterzählen was an regen fällt.....
warummuss ich zwei verschiedene wege gehen um den wochentag, der gerade aktuell ist, um dem item-wochentag zu manipulieren
die regel läuft
1.
when
//Time cron "0/5 * * ? * MON-SUN *"
Time cron "0 0 0 ? * MON-SUN *"
then................
2.when
Item RegenM changed
then
val wochentag = now.getDayOfWeek.getValue()
val dezimalzahl = (Regenzaehler.state as Number + 0.0).doubleValue()..........
wie gesagt, warum funktioniert der zweite regelaufruf(wenn ich ihn umgebaut habe) nicht so wenn ich ihn in der ersten einfüge...
mir geht es nur um die auswahl und zuweisung des entsprechenden wochentages
das war jetzt sehr kompliziert auszudrücken, hoffentlich gehts gut, wie gesagt die regel funktioniert so, nur so, aber warum ???
danke schonmal im vorraus
Code: Alles auswählen
rule "zurück"
when
//Time cron "0/5 * * ? * MON-SUN *"
Time cron "0 0 0 ? * MON-SUN *"
then
val dayOfWeek = now.getDayOfWeek.getValue()
val dezimalzahl = 0.0
switch (dayOfWeek) {
case 1: Montag.postUpdate(dezimalzahl)
case 2: Dienstag.postUpdate(dezimalzahl)
case 3: Mittwoch.postUpdate(dezimalzahl)
case 4: Donnerstag.postUpdate(dezimalzahl)
case 5: Freitag.postUpdate(dezimalzahl)
case 6: Sonnabend.postUpdate(dezimalzahl)
case 7: Sonntag.postUpdate(dezimalzahl)
}
end
rule "setzen"
when
Item RegenM changed
then
val wochentag = now.getDayOfWeek.getValue()
val dezimalzahl = (Regenzaehler.state as Number + 0.0).doubleValue()
switch (wochentag) {
case 1: Montag.postUpdate(dezimalzahl)
case 2: Dienstag.postUpdate(dezimalzahl)
case 3: Mittwoch.postUpdate(dezimalzahl)
case 4: Donnerstag.postUpdate(dezimalzahl)
case 5: Freitag.postUpdate(dezimalzahl)
case 6: Sonnabend.postUpdate(dezimalzahl)
case 7: Sonntag.postUpdate(dezimalzahl)
}
end
ich wollte den regenmesser jeden tag,der auch aktuelle ist,( und nur der) um null uhr auf null setzen
die werte der anderen tage sollen erhalten bleiben, bis der tag abricht( der wochentag) der auch auf null gesetzt wird
also wenn montag anbricht auf null, dann weiter zählen was an regen fällt
wenn dienstag anbricht, dann weiterzählen was an regen fällt.....
warummuss ich zwei verschiedene wege gehen um den wochentag, der gerade aktuell ist, um dem item-wochentag zu manipulieren
die regel läuft
1.
when
//Time cron "0/5 * * ? * MON-SUN *"
Time cron "0 0 0 ? * MON-SUN *"
then................
2.when
Item RegenM changed
then
val wochentag = now.getDayOfWeek.getValue()
val dezimalzahl = (Regenzaehler.state as Number + 0.0).doubleValue()..........
wie gesagt, warum funktioniert der zweite regelaufruf(wenn ich ihn umgebaut habe) nicht so wenn ich ihn in der ersten einfüge...
mir geht es nur um die auswahl und zuweisung des entsprechenden wochentages
das war jetzt sehr kompliziert auszudrücken, hoffentlich gehts gut, wie gesagt die regel funktioniert so, nur so, aber warum ???
danke schonmal im vorraus