Motion detector
Brightness sensor
Door detector
Smoke detector
Thermostat
Heater
Light Switches
Standard push switch
Up down switches
Device modes
Red, Wired mode, hardwired funcionality in HomeIO
Green, Wireless mode, possible automation through in-game tablet, simple rules
Blue, External mode, provides .NET API to control devices externally
Each device can be configured individually
Starting HomeIO, starting Drools from Eclipse
First look
Starting outside and going inside
Testing device modes in HomeIO
Wired mode
Switching motion detector to wired mode
Motion detector detects us
Nothing happens
Switching the corresponding light to wired mode
Lights switches on for motion
Wireless mode
Switching motion detector to and lights to wireless mode
Nothing happens
Creating an in-game rule to switch on for motion (only a few clicks)
Lights switches on for motion
External mode
Switching motion detector to and lights to external mode
Motion detector detects us
Nothing happens
Starting MQTT connection
Lights switches on for motion
Simple light switch demo (push switch)
Communcation through an illustration
HomeIO -> C# -> MQTT -> OpenHAB MQTT binding -> ?(OpenHAB compatibility layer) ->
ESH event bus -> Our ESH event bus binding -> Drools bundle
?Observing MQTT channel messages (in/itemname/state value out/itemname/state value)
Showing light switch rule
Dimmer light demo
Roller Shades demo
Alarm demo
Alarm for motion
Switching off motion detector
Alarm still raises for door opening
Alarm for brightness
Showing alarm rules
?Heating (not finished yet)
Lights switches off for brightness ( not finished yet )
Using fast speed
?Time synchronizaton
HomeIO time is different than real
Drools session clock uses real time ( start time can't be set )
Solution
Drools session clock is for time elapse, not current time
Drools session clock advances as HomIO time (rules are correct)
Current time is read from an Item
UI demo (not finished yet)
JUnit test demo
Unit test, mocking ESH
Focuses on rule tests
Example JUnit test
Dimmer JUnit test
Henceforward
Debugger
Rule generator
HomeIO Rooms 14 + outdoor Available devices Lights On/Off Percent Roller shades
Motion detector Brightness sensor Door detector Smoke detector
Thermostat Heater
Light Switches Standard push switch Up down switches
Device modes Red, Wired mode, hardwired funcionality in HomeIO Green, Wireless mode, possible automation through in-game tablet, simple rules Blue, External mode, provides .NET API to control devices externally Each device can be configured individually
Starting HomeIO, starting Drools from Eclipse First look Starting outside and going inside
Testing device modes in HomeIO Wired mode Switching motion detector to wired mode Motion detector detects us Nothing happens Switching the corresponding light to wired mode Lights switches on for motion
Wireless mode Switching motion detector to and lights to wireless mode Nothing happens Creating an in-game rule to switch on for motion (only a few clicks) Lights switches on for motion
External mode Switching motion detector to and lights to external mode Motion detector detects us Nothing happens Starting MQTT connection Lights switches on for motion
Simple light switch demo (push switch)
Communcation through an illustration HomeIO -> C# -> MQTT -> OpenHAB MQTT binding -> ?(OpenHAB compatibility layer) -> ESH event bus -> Our ESH event bus binding -> Drools bundle
C# code snippet to handle HomeIO -> OpenHAB, OpenHAB -> HomeIO code
?Observing MQTT channel messages (in/itemname/state value out/itemname/state value)
Showing light switch rule
Dimmer light demo
Roller Shades demo
Alarm demo Alarm for motion Switching off motion detector Alarm still raises for door opening Alarm for brightness Showing alarm rules
?Heating (not finished yet)
Lights switches off for brightness ( not finished yet ) Using fast speed
?Time synchronizaton HomeIO time is different than real Drools session clock uses real time ( start time can't be set ) Solution Drools session clock is for time elapse, not current time Drools session clock advances as HomIO time (rules are correct) Current time is read from an Item
UI demo (not finished yet)
JUnit test demo Unit test, mocking ESH Focuses on rule tests Example JUnit test Dimmer JUnit test Henceforward Debugger Rule generator