Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Homeassistant Example

example.livemd

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)