Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions lib/homex.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
if Code.ensure_loaded?(Homex) do
defmodule Soleil.Homex.BatteryCharge do
use Homex.Entity.Sensor,
name: "soleil battery charge",
device_class: "battery",
unit_of_measurement: "%"

def handle_timer(entity) do
battery_info = Soleil.battery_info()
entity |> set_value(battery_info.state_of_charge)
end
end

defmodule Soleil.Homex.BatteryVoltage do
use Homex.Entity.Sensor,
name: "soleil battery voltage",
device_class: "voltage",
unit_of_measurement: "V"

def handle_timer(entity) do
battery_info = Soleil.battery_info()
entity |> set_value(battery_info.voltage)
end
end

defmodule Soleil.Homex.BatteryCurrent do
use Homex.Entity.Sensor,
name: "soleil battery current",
device_class: "current",
unit_of_measurement: "A"

def handle_timer(entity) do
battery_info = Soleil.battery_info()
entity |> set_value(battery_info.current)
end
end

defmodule Soleil.Homex.BatteryTemperature do
use Homex.Entity.Sensor,
name: "soleil battery temperature",
device_class: "temperature",
unit_of_measurement: "°C"

def handle_timer(entity) do
battery_info = Soleil.battery_info()
entity |> set_value(battery_info.temperature)
end
end

defmodule Soleil.Homex.Power do
use Homex.Entity.Switch,
name: "soleil power off"

def handle_init(entity) do
entity |> set_on()
end

def handle_off(entity) do
Soleil.power_off()
entity
end
end
end
3 changes: 2 additions & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ defmodule Soleil.MixProject do
{:nerves_time, "~> 0.4.0"},
{:nerves_hub_link, "~> 2.7", optional: true},
{:dialyxir, "~> 1.4", only: :dev, runtime: false},
{:ex_doc, "~> 0.34", only: :dev, runtime: false}
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
{:homex, "~> 0.1", optional: true}
]
end

Expand Down