Feature: A Presence Socket appliance
A **presence** socket which is by default **off**.
When *forced on* by the user can be turned *off* by the system if nobody is in the room.
You could know that nobody is in the room when, as an example, the room alarm sensors are presence.
Other events could be used for the same purpose.
Scenario Outline: The Socket does not react to alarm presence events from an unforced state
Examples:
presence |
from_state |
event |
to_state |
---|---|---|---|
Off |
socket.presence.state.off |
event.presence.Event.Off |
socket.presence.state.off |
Off |
socket.presence.state.off |
event.presence.Event.On |
socket.presence.state.off |
On |
socket.presence.state.off |
event.presence.Event.Off |
socket.presence.state.off |
On |
socket.presence.state.off |
event.presence.Event.On |
socket.presence.state.off |
Scenario Outline: The Socket react to forced on events
Examples:
presence |
from_state |
event |
to_state |
---|---|---|---|
Off |
socket.presence.state.off |
appliance.socket.event.forced.Event.Off |
socket.presence.state.off |
Off |
socket.presence.state.off |
appliance.socket.event.forced.Event.On |
socket.presence.state.forced.on |
Scenario Outline: The Socket react to forced on/off events from a forced on state
Examples:
presence |
from_state |
event |
to_state |
---|---|---|---|
Off |
socket.presence.state.forced.on |
appliance.socket.event.forced.Event.Off |
socket.presence.state.off |
Off |
socket.presence.state.forced.on |
appliance.socket.event.forced.Event.On |
socket.presence.state.forced.on |
On |
socket.presence.state.forced.on |
appliance.socket.event.forced.Event.Off |
socket.presence.state.off |
On |
socket.presence.state.forced.on |
appliance.socket.event.forced.Event.On |
socket.presence.state.forced.on |
Scenario Outline: The Socket react to alarm presence events from a forced on state
Examples:
presence |
from_state |
event |
to_state |
---|---|---|---|
Off |
socket.presence.state.forced.on |
event.presence.Event.Off |
socket.presence.state.off |
Off |
socket.presence.state.forced.on |
event.presence.Event.On |
socket.presence.state.forced.on |
On |
socket.presence.state.forced.on |
event.presence.Event.Off |
socket.presence.state.off |
On |
socket.presence.state.forced.on |
event.presence.Event.On |
socket.presence.state.forced.on |
Scenario Outline: The Socket shows its is_on property
Examples:
presence |
forced |
state |
response |
---|---|---|---|
On |
Not |
socket.presence.state.off |
False |
On |
On |
socket.presence.state.forced.on |
True |