Add-on сделан на платформе NET9 на основе этого проекта, для работы с Home Assistant Core API используется проект ETCDema/HASSIO.Supervisor.API.
Что может этот add-on:
- Выключать подсветку
- Переключать режимы работы
- Менять скорость и яркость для выбранного режима
- Скачать пакет и распаковать на Home Assistant OS сервере в папку
/addons/t9plus_led - Открыть магазин дополнений
- Запустить проверку наличия обновлений
- В списке локальных дополнений открыть add-on
- Установить add-on
Для начала нужно создать элементы управления
- Режим подсветки
input_select.server_led_mode:
options:
- "Off"
- Rainbow
- Breathing
- ColorCycle
- Auto
editable: true
icon: mdi:led-strip-variant
friendly_name: Режим подсветки- Яркость подсветки
input_number.server_led_brightness:
initial: 1
editable: true
min: 1
max: 5
step: 1
mode: slider
icon: mdi:brightness-6
friendly_name: Яркость подсветки- Скорость изменения
input_number.server_led_speed
initial: 1
editable: true
min: 1
max: 5
step: 1
mode: slider
icon: mdi:play-speed
friendly_name: Скорость измененияДалее в устройствах смотрим к какому порту подключена подсветка, ищем такие строки:
ttyUSB0
/dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_e0f07a9ff74eef11841a51b3174bec31-if00-port0
ttyUSB1
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
Нам нужна строка, содержащая USB_Serial, на моем устройстве используется ttyUSB1.
В конфигурации add-on указываем соответствующие значения:
LogLevel: Information
T9PlusLED:
port: /dev/ttyUSB1
modeEntityID: input_select.server_led_mode
brightnessEntityID: input_number.server_led_brightness
speedEntityID: input_number.server_led_speedТеперь можно запустить расширение, попробовать поменять состояние созданных элементов управления и увидеть результат.
Для детальной диагностики проблем можно переключить уровень логирования на Debug или Trace - там будет много информации.
Как правило проблема с токеном доступа, в логе будет строка fail: Auth invalid: <сообщение>.
В обычном режиме Home Assistant передает токен доступа в переменной окружения SUPERVISOR_TOKEN, если по каким-то причинам нет такой переменной,
то можно создать Long time access token и добавить в конфигурацию:
API:longLivedAccessToken: тут прописать созданный tokenЕсли какие-то другие проблемы с подключением к WebSocketAPI, то это что-то совсем неправильно работает и нужно разбираться с доступностью ws://supervisor/core/websocket - лог уровня Debug или Trace может помочь.
Такие проблемы обычно сопровождаются ошибками записи в SerialPort и нужно попробовать изменить параметр T9PlusLED:port, возможно выбран неправильный.
Так же возможно отсутствие событий изменения состояния созданных элементов - нужно проверить соответствие идентификаторов в конфигурации и настройках элементов.