-module(glome). -compile(no_auto_import). -export([main/0]). -spec main() -> {ok, nil} | {error, glome@core@error:glome_error()}. main() -> {some, Token@1} = case glome@homeassistant@environment:get_access_token() of {some, Token} -> {some, Token}; _try -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _try, module => <<"glome"/utf8>>, function => <<"main"/utf8>>, line => 21}) end, {ok, _@2} = case glome@homeassistant:connect( {configuration, <<"192.168.178.62"/utf8>>, 8123, {access_token, Token@1}}, fun(Home_assistant) -> _pipe = Home_assistant, glome@homeassistant:add_constrained_handler( _pipe, {entity_id, binary_sensor, <<"*"/utf8>>}, fun motion_sensor_handler/2, fun motion_detected/2 ) end ) of {ok, _@1} -> {ok, _@1}; _try@1 -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _try@1, module => <<"glome"/utf8>>, function => <<"main"/utf8>>, line => 22}) end. -spec motion_sensor_handler( glome@homeassistant@state_change_event:state_change_event(), glome@homeassistant:home_assistant() ) -> {ok, nil} | {error, glome@core@error:glome_error()}. motion_sensor_handler(Data, Home_assistant) -> case begin _pipe = Home_assistant, glome@homeassistant:get_state( _pipe, {entity_id, light, <<"main_downstairs"/utf8>>} ) end of {error, _try} -> {error, _try}; {ok, Light_state} -> {ok, nil} end. -spec motion_detected( glome@homeassistant@state_change_event:state_change_event(), glome@homeassistant:home_assistant() ) -> boolean(). motion_detected(Data, Home_assistant) -> (erlang:element(2, erlang:element(3, Data)) =:= normal) andalso (erlang:element( 2, erlang:element(4, Data) ) =:= motion_detected).