Homex.Entity.Light behaviour (homex v0.1.0)
View SourceA light entity for Homex
Implements a Homex.Entity. See module for available callbacks.
https://www.home-assistant.io/integrations/light.mqtt/
Options
:name(String.t/0) - Required. the name of the entity:update_interval- the interval in milliseconds in whichhandle_timer/1get's called. Can also be:neverto disable the timer callback The default value is:never.:modes- a list of supported light modes. Available: [brightness] The default value is[].:retain(boolean/0) - if the last state should be retained The default value istrue.
Overridable Functions
The following functions can be overridden in your entity:
handle_init/1- FromHomex.Entityhandle_timer/1- FromHomex.Entityhandle_on/1- FromHomex.Entity.Lighthandle_off/1- FromHomex.Entity.Lighthandle_brightness/1- FromHomex.Entity.Light
Default Implementations
All overridable functions have safe default implementations that return the entity unchanged. You only need to override the functions you want to customize.
Example
defmodule MyLight do
use Homex.Entity.Light, name: "my-light", modes: [:brightness]
def handle_brightness(entity, brightness) do
IO.puts("Light set to #{brightness}%")
entity
end
end
Summary
Callbacks
Gets called when a new brightness value gets published to the brightness command topic
Gets called when the command topic receieves an off_payload
Gets called when the command topic receieves an on_payload
Sets the lights brightness to the specified value. Must be between 0 and 100
Sets the light state to off
Sets the light state to on
Callbacks
@callback handle_brightness(entity :: Homex.Entity.t(), brightness :: float()) :: entity :: Homex.Entity.t() | {:error, reason :: term()}
Gets called when a new brightness value gets published to the brightness command topic
@callback handle_off(entity :: Homex.Entity.t()) :: entity :: Homex.Entity.t() | {:error, reason :: term()}
Gets called when the command topic receieves an off_payload
@callback handle_on(entity :: Homex.Entity.t()) :: entity :: Homex.Entity.t() | {:error, reason :: term()}
Gets called when the command topic receieves an on_payload
@callback set_brightness(entity :: Homex.Entity.t(), brightness :: float()) :: entity :: Homex.Entity.t()
Sets the lights brightness to the specified value. Must be between 0 and 100
@callback set_off(entity :: Homex.Entity.t()) :: entity :: Homex.Entity.t()
Sets the light state to off
@callback set_on(entity :: Homex.Entity.t()) :: entity :: Homex.Entity.t()
Sets the light state to on