rule “Bewegungen zählen (inklusive ausser Haus)“
when
Item eyemove changed from 0 to 1
then
if (nog_tag.state == ON && eyemove.state == 1) {
sum = sum + 1;
eyemovegesamt.postUpdate(sum)
}
else
if (nog_tag.state == OFF && eyemove.state == 1) {
suma = suma + 1;
eyemovegesamta.postUpdate(suma)
pushover(”[openHAB - ALARM!] Bewegung ohne Präsenz registiert!”)
}
end
Where did you define sum and suma? Is eyemove of type number? Why do you double check state of eyemove? (rule trigger is only to trigger if changed from 0 to 1, so eyemove.state is 1)
I would suggest to simplify the rule:
rule "Bewegungen zählen (inklusive ausser Haus)"
when
Item eyemove changed to 1 // could could be NULL to 1 either
then
if (!(eyemovegesamt.state instanceof Number))
eyemovegesamt.postUpdate(0) // ensure the item is initialized
if (!(eyemovegesamta.state instanceof Number))
eyemovegesamta.postUpdate(0) // ensure the item is initialized
if (nog_tag.state == ON)
eyemovegesamt.postUpdate((eyemovegesamt.state as Number) + 1) // add 1 to actual state
else {
eyemovegesamta.postUpdate((eyemovegesamta.state as Number) + 1) // add 1 to actual state
pushover("[openHAB - ALARM!] Bewegung ohne Präsenz registiert!")
}
end
You won’t need the first two if clauses if you do a persistence with restoreOnStartup strategy (of course after a initial initializing)
//_________________________________________________________________________________________
rule "Bewegungen zählen (inklusive ausser Haus)"
when
Item eyemove changed from 0 to 1
then
if (nog_tag.state == "ON")
eyemovegesamt.postUpdate((eyemovegesamt.state as Number) + 1)
else {
eyemovegesamta.postUpdate((eyemovegesamta.state as Number) + 1)
pushover("[openHAB - ALARM!] Bewegung ohne Präsenz registiert!")
}
end
eyemovegesamt/a is define as Number Item and set to 0 on startup