Drawer controller
This commit is contained in:
@@ -9,6 +9,7 @@ import Data.Aeson (Value, object, (.=))
|
||||
import Control.Arrow ((>>>), returnA, arr, Arrow (..))
|
||||
import Control.Lens ((^?), to, traversed)
|
||||
import Data.Aeson.Lens (key, _String)
|
||||
import Data.Bool (bool)
|
||||
|
||||
|
||||
|
||||
@@ -98,3 +99,19 @@ bedroomButtonController = proc x -> do
|
||||
Event (Enishen DoubleClickOn) -> callService (activateScene "scene.makuuhuone_keski") -< ()
|
||||
Event (Enishen LongClickOn) -> callService (activateScene "scene.makuuhuone_kirkas") -< ()
|
||||
_ -> returnA -< ()
|
||||
|
||||
|
||||
|
||||
drawer :: HASS (Event Value) (Event DoorState)
|
||||
drawer = entityBool "binary_sensor.bedroom_nightstand_drawer_sensor_masse_contact"
|
||||
>>> arr (fmap (bool Closed Open))
|
||||
|
||||
bedroomDrawerController :: HASS (Event Value) ()
|
||||
bedroomDrawerController = proc x -> do
|
||||
st <- drawer -< x
|
||||
case st of
|
||||
Event Open -> callService (switch [entity] True) -< ()
|
||||
Event Closed -> callService (switch [entity] False) -< ()
|
||||
_ -> returnA -< ()
|
||||
where
|
||||
entity = "switch.bedroom_drawer_light_masse"
|
||||
|
||||
Reference in New Issue
Block a user