- LED BLE
- Configuration
- Help us to improve our documentation
- Francisco Dorado
- Control of RST01BL Bluetooth Light Bulb with Home Assistant
- Summary
- Prerequisites
- How to use
- Turn On
- Turn Off
- RGB Color
- Examples
- Управляем контроллером адресной ленты SP110E в Home Assistant по Bluetooth
- Поддерживаемые функции:
- Реверсивный инжиниринг управления Bluetooth контроллером светодиодной ленты
- Что вам понадобится
- Шаг 1 : Установка приложения Triones и включение записи Bluetooth пакетов
- Шаг 2 : Копирование файла Bluetooth пакетов и их анализ в WireShark
- Шаг 3 : Включение контроллера светодиодной ленты из терминала
- Шаг 4 : Включение контроллера светодиодной в Home Assistant
LED BLE
Integrates multiple brands of Bluetooth Low Energy LED devices into Home Assistant.
Configuration
Adding LED BLE to your Home Assistant instance can be done via the user interface, by using this My button:
If the above My button doesn’t work, you can also perform the following steps manually:
- Browse to your Home Assistant instance.
- Go to Settings > Devices & Services.
- In the bottom right corner, select the Add Integration button.
- From the list, select LED BLE.
- Follow the instructions on screen to complete the setup.
This integration works with devices that identify with the following names:
- LEDnet (except LEDnetWF models)
- BLE-LED
- LEDBLE
- Triones
- LEDBlue
- Dream
- QHM
- AP
These devices have been sold under many brands, including:
- ALED
- AVERYSHOP
- BLE-LED
- EPBOWPT
- HaoDeng (some models)
- Happy Lighting
- hun hun
- ILC
- LEDBlue
- LED BLE
- Magic Blue
- MCWOFI
- PHOPOLLO
- RESHAKE
- REYSURPIUS
- SUPERNIGHT
- Triones
- Zengee
- YONEDA
- Zerproc
Help us to improve our documentation
The LED BLE integration was introduced in Home Assistant 2022.9, and it’s used by 500 active installations. Its IoT class is Local Polling.
Francisco Dorado
Java & Spring Backend (+10 years experience). Cloud with AWS. Architecture oriented.
Francisco DoradoFollow Software Architect at sngular.com in Seville. Specialised in backend technologies based in the Java ecosystem. Currently working on Microservices using Spring Framework and AWS Cloud technologies
Control of RST01BL Bluetooth Light Bulb with Home Assistant
Summary
This project provides to be a guide for the control of the RST01BL bluetooth light bulb and its integration with Home Assistant
Prerequisites
We need to follow the next steps before use the bluetooth bulb.
- Identify the bulb address (XX:XX:XX:XX:XX:XX). You can use NRF Connect o similar.
- Install the pexpect library, ‘sudo pip install pexpect’.
- Install gatttool
How to use
Turn On
> sudo python start-light.py XX:XX:XX:XX:XX:XX
> gatttool -I > connect XX:XX:XX:XX:XX:XX > char-write-cmd 0x0043 CC2333 > quit
Turn Off
> sudo python stop-light.py XX:XX:XX:XX:XX:XX
> gatttool -I > connect XX:XX:XX:XX:XX:XX > char-write-cmd 0x0043 CC2433 > quit
RGB Color
We’ll use 14 hex digits to change the color following the next pattern:
- The XX XX XX indicates the values of R(Red) G(Green) B(Blue) in HEX. So if we want a red color we should indicate the value FF0000
- The YY indicates if we want color (F0) or white ligth (0F). If we choose the white ligth value (F0) the XX XX XX value will be ignored.
Examples
char_write_cmd 0x0043 CC2333
Управляем контроллером адресной ленты SP110E в Home Assistant по Bluetooth
Контроллер SP110E довольно интересный он поддерживает много всяких эффектов(больше 100) для адресных лент ws2812.
Так-же этот модуль довольно дешевый. И компактный.
Считаю, минусом то, что модуль работает только по bluetooth. И по этому управлялся только со смартфона через специальное приложение “LED Hue”. На самом модуле есть QR код для скачивания приложения.
Но вот ни так давно, появилась интеграция в Home Assistant, которая позволяет управлять данным модулем по Bluetooth из самого Home Assistant.
Естественно, нам понадобится HACS для установки этой интеграции. Как установить HACS, я описывал в этой статье:
Сама интеграция называется SP110E RGB LED Controller Integration и вот адрес странички на github: https://github.com/roslovets/SP110E-HASS
Поддерживаемые функции:
- Включение / выключение
- Установить яркость
- Установить цвет
- Выберите режим
В общем, чтоб установить интеграцию через HACS, достаточно зайти в HACS, нажать кнопку “Добавить новую интеграцию” и Написать SP110E.
После установки, перезапускаем Home Assistant.
Далее в файле Configuration.yaml, надо прописать следующее:
light: - platform: sp110e mac: AF:00:10:01:C8:AF # Replace with your MAC address (required)
где AF:00:10:01:C8:AF это мак адрес блютуз контроллера sp110e. Его можно посмотреть прям в приложении Led hue.
мой мак адрес FF:FF:F0:00:B4:F5
И после этого сохраняем файл Configuration.yaml и собственно у нас появится light устройство с именем SP110E.
Добавив его, мы сможем управлять включением-выключением модуля, яркостью, и выбирать режимы.
Но так-же можно самому режимы создавать, какие хотите. Вот например пример, всех функций которые можно применить для этого модуля. Это так-же добавляется в Configuration.yaml.
light: - platform: sp110e mac: AF:00:10:01:C8:AF # Replace with your MAC address (required) name: SP110E # Device name for UI (optional, default: SP110E) ic_model: UCS1903 # Circuit model (optional) sequence: GRB # Color sequence (optional) pixels: 60 # Number of LED pixels (optional) strict: false # If true, you will get an error trying to operate with offline device (optional, default: false) add_effects: # Custom effects in addition to built-in modes (optional) - name: New Year # Custom name (required) mode: 2 # (optional) speed: 75 # (optional)
Тут описан режим созданный самостоятельно “New Year” (вполне себе работает как гирлянда). При добавлении этого режима, он появится под названием “New Year” так-же во всех режимах модуля.
Так-же надо понимать, что подключение по Bluetooth может глючить.
Во первых, если Вы подключились с телефона, то Home Assistant уже не будет управлять модулем sp110e пока вы не отключитесь от модуля телефоном. Я протестировал на Raspberry pi 4 встроенным блютузом.
Так-же у модуля sp110e нет обратной связи, по этому при нажатии на кнопку “включить” устройство не покажется, что включено. Так-что управлять будем так сказать в слепую. Но по сути, если это понимать и не дожидаться обратной связи, все довольно таки работает хорошо.
Реверсивный инжиниринг управления Bluetooth контроллером светодиодной ленты
Друзья, совсем недавно я перевёл все девайсы моего умного дома на управление через Home Assistant, а также привязал к нему голосовое управление через две Яндекс Станции Макс, одну Sonos One и Amazon Echo Dot 3. На прошлой неделе я сделал для своей супруги вот такой мини-кабинет на нашей лоджии, а на монитор я установил RGB подсветку с контроллером, который управляется как по Bluetooth, так и через дистанционный ИК-пульт управления.
Возникла идея включать и выключать данную подсветку голосом, а также использовать несколько автоматизаций в Home Assistant, чтобы автоматически включать подсветку при работе ноутбука после заката солнца, а также автоматически выключать её при выключении ноутбука. Кстати, включение и выключение ноутбука я также перевёл на голосовое управление. В данной инструкции я покажу вам, как найти команду управления включения и выключения подсветки через Bluetooth, а в дальнейшем использовать её в Home Assistant.
Что вам понадобится
- Подсветка с Bluetooth-контроллером (APP with remote)
- Смартфон с ОС Android
- Приложение Triones
- Программа WireShark
- Устройство на Linux c Home Assistant и Bluetooth адаптером (в моем случае это одноплатный компьютер Raspberry Pi 3b с операционной системой Debian 11, Home Assistant работающий в docker-контейнере и Bluetooth адаптер Buro BU-BT40С)
Шаг 1 : Установка приложения Triones и включение записи Bluetooth пакетов
Включаем Bluetooth на смартфоне, устанавливаем приложение Triones, находим наш контроллер светодиодной ленты и пробуем к нему подключиться.
Затем, используя серую кнопку включения в приложении пробуем включить и выключить нашу светодиодную ленту.
Если все работает, то в нашем смартфоне идём в настройки разработчика и активируем строку Enable Bluetooth HCI snoop log.
После этого выключаем и снова включаем Bluetooth на смартфоне. Возвращаемся в приложение Triones и раз пять пробуем включить и выключить светодиодную ленту.
Далее, возвращаемся в настройки разработчика, деактивируем строку Enable Bluetooth HCI snoop log, а также активируем строку USB debugging.
Шаг 2 : Копирование файла Bluetooth пакетов и их анализ в WireShark
Подключаем телефон к компьютеру с помощью data-кабеля. В моем случае это операционная система на Linux. Открываем терминал и вводим команду
adb bugreport bugreportfolder
Команда скопирует файл bugreportfolder.zip в домашнюю директорию /home/username/.
Распаковываем файл и в папке /home/username/bugreportfolder/FS/data/misc/bluetooth/logs находим файл с расширением .cfa.
Устанавливаем программу WireShark на компьютер и открываем с помощью нее указанный выше файл.
Находим строку с соединением от нашего смартфона к Bluetooth контроллеру.
Внизу окна программы открываем выпадающее меню Bluetooth Attribute Protocol и видим, что значение поля value равно cc2433. Далее находим подобную строку с соединением от нашего смартфона к Bluetooth контроллеру и видим, что значение поля value сменилось на cc2333.
Это 3 байта на выключение (cc2433) и включение контроллера (cc2333) светодиодной ленты! У вас эти значения будут другими. Также в столбце info видим следующую информацию Handle: 0x0014. Данное значение нам потребуется для управления контроллером из терминала.
Шаг 3 : Включение контроллера светодиодной ленты из терминала
Открываем терминал устройства (в моем случае это Raspberry Pi 3b), на котором расположен Bluetooth адаптер и вводим следующие команды:
bluetoothctl scan on pair XX:XX:XX:XX:XX:XX
Где XX:XX:XX:XX:XX:XX – MAC-адрес контроллера светодиодной ленты.
Вам будет предложено ввести ключ (passkey) для сопряжения, введите 0000.
После сопряжения выходим из bluetoothctl:
Далее, вводим команду на включение контроллера светодиодной ленты:
gatttool -i hci0 -b XX:XX:XX:XX:XX:XX --char-write-req -a 0x0014 -n cc2333
где hci0 имя bluetooth адаптера.
XX:XX:XX:XX:XX:XX – MAC-адрес контроллера светодиодной ленты.
0x0014 – значение Handle.
cc2333 – 3 байта записываемые в Bluetooth характеристику на включение светодиодной ленты.
Светодиодная лента должна включиться.
Команда на выключение будет, соответственно, следующей:
gatttool -i hci0 -b XX:XX:XX:XX:XX:XX --char-write-req -a 0x0014 -n cc2433
Шаг 4 : Включение контроллера светодиодной в Home Assistant
Заходим в файл конфигурации /config/configuration.yaml и создаём виртуальный выключатель:
switch: - platform: command_line switches: laptop_monitor_backlight: command_on: gatttool -i hci0 -b XX:XX:XX:XX:XX:XX --char-write-req -a 0x0014 -n cc2333 command_off: gatttool -i hci0 -b XX:XX:XX:XX:XX:XX --char-write-req -a 0x0014 -n cc2433 friendly_name: 'Laptop Monitor Backlight'
Перезагружаем Home Assistant и создаём Lovelace карточку с виртуальным выключателем, которым можно управлять из админки Home Assistant.
Из минусов можно отметить то, что из данной Bluetooth характеристики нельзя прочитать записанное значение и использовать его в Home Asssistant для определения текущего состояния светодиодной ленты (т.е. либо включена, либо выключена). Если вы знаете как это сделать, напишите в комментариях.
Если у вас также настроена интеграция Yandex Smart Home,
то данный выключатель у вас появится в Квазаре, которым можно управлять голосом через Яндекс Станцию, но об этом в следующей инструкции.
Понравилась инструкция? Тогда поделитесь ей со своими друзьями или попробуйте написать свою собственную!