Packages

A Gleam library to write and run Home Assistant automations.

Current section

Files

Jump to
glome src glome.erl
Raw

src/glome.erl

-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_handler(
_pipe,
{entity_id, cover, <<"*"/utf8>>},
fun input_boolean_handler/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 input_boolean_handler(
glome@homeassistant@state_change_event:state_change_event(),
glome@homeassistant:home_assistant()
) -> {ok, nil} | {error, glome@core@error:glome_error()}.
input_boolean_handler(Data, Home_assistant) ->
gleam@io:println(<<""/utf8>>),
gleam@io:println(<<"### Event handler ###"/utf8>>),
gleam@io:println(<<""/utf8>>),
_pipe = Data,
gleam@io:debug(_pipe),
case begin
_pipe@1 = Home_assistant,
glome@homeassistant:get_state(
_pipe@1,
{entity_id, light, <<"main_downstairs"/utf8>>}
)
end of
{error, _try} -> {error, _try};
{ok, Resp} ->
gleam@io:println(<<""/utf8>>),
gleam@io:println(<<"### ############ ###"/utf8>>),
{ok, nil}
end.
-spec got_turned_on(
glome@homeassistant@state_change_event:state_change_event(),
glome@homeassistant:home_assistant()
) -> boolean().
got_turned_on(Data, Home_assistant) ->
(erlang:element(2, erlang:element(3, Data)) =:= off) andalso (erlang:element(
2,
erlang:element(4, Data)
) =:= on).