FritzApi

Build StatusDocsHex.pm

Fritz!Box Home Automation API Client for Elixir (documentation).

Usage

iex> {:ok, client} = FritzApi.Client.new()
...> |> FritzApi.Client.login("admin", "changeme")
iex> FritzApi.get_device_list_infos(client)
{:ok, [%FritzApi.Actor{
ain: "687690315761",
fwversion: "03.87",
id: 21,
manufacturer: "AVM",
name: "FRITZ!DECT #1",
powermeter: %{energy: 0.475, power: 0.0},
present: true,
productname: "FRITZ!DECT 200",
switch: %{
devicelock: false,
lock: false,
mode: :manual,
state: false
},
temperature: %{
celsius: 23.5,
offset: 0.0
}
}]}
iex> FritzApi.set_switch_off(client, "687690315761")
:ok
iex> FritzApi.get_temperature(client, "687690315761")
{:ok, 23.5}

Installation

Add fritz_api to your list of dependencies in mix.exs:

def deps do
[
{:fritz_api, "~> 2.0.0-rc.0"},
{:hackney, "~> 1.16"}
]
end

By default, fritz_api uses hackney (via Tesla.Adapter.Hackney). Add hackney to the list of dependencies too if you don't want to use another HTTP adapter (see Tesla Adapters to find all available adapters and FritzApi.Client.new/1 on how to configure another adapter).

The docs can be found at hexdocs.pm/fritz_api.

References