Homeassistant Example
Mix.install([
{:homeassistant_ex, path: __DIR__}
])
Section
Homeassistant.Client.connect()
alias Homeassistant.MQTT.{Device, Origin, Component}
config = %Homeassistant.MQTT{
device: %Device{
identifiers: ["1234foo_device"],
name: "Example Device",
manufacturer: "Elixir",
model: "Livebook",
serial_number: "123456789",
sw_version: "1.0",
hw_version: "0.1"
},
origin: %Origin{
sw_version: "0.1.0",
name: "homeassistant_ex",
support_url: "http://localhost"
},
components: %{"foo" => %Component{
platform: "sensor",
device_class: "humidity",
unit_of_measurement: "%",
value_template: "{{ value_json.humidity }}",
unique_id: "hum_01"
}},
state_topic: "/some/state/topic",
command_topic: "/some/command/topic",
encoding: "json",
qos: 1
}
Homeassistant.Client.publish("homeassistant/device/1234foo/config", config)
measurement = %{humidity: 69}
Homeassistant.Client.publish("/some/state/topic", measurement)