I’m confused
ITEMS
Switch Present
Group:Switch:AND(OFF,ON) gPresent
Switch Present_Timer { expire="10s,command=OFF" }
Switch PresentDSC (gPresent)
RULE
rule "System started"
when
System started
then
Present.sendCommand(OFF) // assume no one is home on startup
end
rule "gPresent updated, at least one sensor changed state"
when
Item gPresent received update
then
logInfo("present","gPresent.state " + gPresent.state.toString)
logInfo("present","Present.state " + Present.state.toString)
// someone came home
if(gPresent.state == ON && Present.state != ON) {
logInfo("present","present 1 if")
Present_Timer.postUpdate(OFF) // cancel the timer if necessary
Present.sendCommand(ON)
}
// no one is home
else if(gPresent.state == OFF && Present.state != OFF){
logInfo("present","present 2 if")
Present_Timer.sendCommand(ON) // start the timer
}
end
rule "Present_Timer expired"
when
Item Present_Timer received command OFF
then
Present.sendCommand(OFF)
end
LOG
System start
2018-10-31 15:39:23.086 [ome.event.ItemCommandEvent] - Item 'Present' received command OFF
2018-10-31 15:39:23.088 [vent.ItemStateChangedEvent] - Present changed from ON to OFF
Alarm sensor triggered
2018-10-31 15:41:02.687 [ome.event.ItemCommandEvent] - Item 'PresentDSC' received command ON
2018-10-31 15:41:02.689 [INFO ] [lipse.smarthome.model.script.present] - gPresent.state ON
2018-10-31 15:41:02.690 [INFO ] [lipse.smarthome.model.script.present] - Present.state OFF
2018-10-31 15:41:02.690 [INFO ] [lipse.smarthome.model.script.present] - present 1 if
2018-10-31 15:41:02.691 [ome.event.ItemCommandEvent] - Item 'Present' received command ON
2018-10-31 15:41:02.692 [vent.ItemStateChangedEvent] - Present changed from OFF to ON
Alarm sensor triggered after 2 minutes
2018-10-31 15:43:09.434 [ome.event.ItemCommandEvent] - Item 'PresentDSC' received command ON
2018-10-31 15:43:09.435 [INFO ] [lipse.smarthome.model.script.present] - gPresent.state ON
2018-10-31 15:43:09.436 [INFO ] [lipse.smarthome.model.script.present] - Present.state ON
Alarm sensor triggered after 7 minutes
2018-10-31 15:48:22.300 [ome.event.ItemCommandEvent] - Item 'PresentDSC' received command ON
2018-10-31 15:48:22.303 [INFO ] [lipse.smarthome.model.script.present] - gPresent.state ON
2018-10-31 15:48:22.303 [INFO ] [lipse.smarthome.model.script.present] - Present.state ON
Full log
2018-10-31 15:39:23.086 [ome.event.ItemCommandEvent] - Item 'Present' received command OFF
2018-10-31 15:39:23.088 [vent.ItemStateChangedEvent] - Present changed from ON to OFF
2018-10-31 15:41:02.687 [ome.event.ItemCommandEvent] - Item 'PresentDSC' received command ON
2018-10-31 15:41:02.689 [INFO ] [lipse.smarthome.model.script.present] - gPresent.state ON
2018-10-31 15:41:02.690 [INFO ] [lipse.smarthome.model.script.present] - Present.state OFF
2018-10-31 15:41:02.690 [INFO ] [lipse.smarthome.model.script.present] - present 1 if
2018-10-31 15:41:02.691 [ome.event.ItemCommandEvent] - Item 'Present' received command ON
2018-10-31 15:41:02.692 [vent.ItemStateChangedEvent] - Present changed from OFF to ON
2018-10-31 15:43:09.434 [ome.event.ItemCommandEvent] - Item 'PresentDSC' received command ON
2018-10-31 15:43:09.435 [INFO ] [lipse.smarthome.model.script.present] - gPresent.state ON
2018-10-31 15:43:09.436 [INFO ] [lipse.smarthome.model.script.present] - Present.state ON
2018-10-31 15:48:22.300 [ome.event.ItemCommandEvent] - Item 'PresentDSC' received command ON
2018-10-31 15:48:22.303 [INFO ] [lipse.smarthome.model.script.present] - gPresent.state ON
2018-10-31 15:48:22.303 [INFO ] [lipse.smarthome.model.script.present] - Present.state ON
How alarm sensors updates their state
ITEMS
Group:Contact:OR(OPEN, CLOSED) DSCAlarmMotion <motionDetector>
Contact ZONE1_STATUS "Sensor (Zone 1)" (DSCAlarmZones, DSCAlarmMotion) { channel="dscalarm:zone:be74eaa7:zone1:zone_status" }
RULES
rule "DSC"
when
Item DSCAlarmMotion changed from OPEN to CLOSED
then
PresentDSC.sendCommand(ON)
end
Present_Timer never starts, never expires