- Включаем блютуз в HASSOS под управлением Home Assistant.
- Добавление BLE iTag брелка в ESPHome и Home Assistant. Управление освещением с помощью кнопки брелока.
- Добавляем поддержку BLE (bluetooth) устройств в Home Assistant
- Saved searches
- Use saved searches to filter your results more quickly
- License
- tjntomas/MI-Bluetooth-Remote-for-Home-Assistant
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
Включаем блютуз в HASSOS под управлением Home Assistant.
Мы уже разбирали в данной статье как подключить по блютузу датчики температуры и влажности от компании Xiaomi. Но там способ описан специфический и подходящий только для некоторых устройств, конкретно от фирмы xiaomi.
В данной же статье я расскажу как включить блютуз и отслеживать обычные блютуз устройства, которые не имеют шифрования.
На самом деле все довольно просто и включается парой команд. Для этого в Configuration.yaml нужно добавить следующее:
device_tracker: - platform: bluetooth_tracker
Все, после этого необходимо перезапустить север зайдя в Настройки->Сервер->Перезапустить и после перезагрузки начнется сканирование блютуз устройств и записывание их в файл “known_devices.yaml” ( Если конечно же на вашем сервере имеется блютуз. В моем случае HassOS установлена на raspberry pi 4, у нее с этим нет проблем.
Выглядеть файл “known_devices.yaml” будет следующим образом после нахождения неких устройств:
oneplus_5: name: OnePlus 5 mac: BT_94:65:2D:A8:36:27 icon: picture: track: true desktop_820q8e3: name: DESKTOP-820Q8E3 mac: BT_B4:6B:FC:C3:46:56 icon: picture: track: true
В данном случае нашел несколько устройств, а именно мой смартфон и ноутбук. Как видите, здесь указано имя найденного устройства, а также его мак адрес. Эти данные нам могут послужить при добавлении данных устройств.
Например бывают устройства как телевизор Sony Bravia он может управляться в Home Assistant какраз по Bluetooth. И в этом случае нам какраз и понадобится данный способ сканирования устройств.
Добавление BLE iTag брелка в ESPHome и Home Assistant. Управление освещением с помощью кнопки брелока.
Данный брелок iTag у меня валялся очень давно. Он позиционируется как брелок для того, чтоб не потерять ключи. Но на деле оказалась абсолютно бесполезная хрень. Хотя и стоимость данного устройства 3 копейки.
Это устройство имеет на борту блютуз и кнопку и динамик. По задумке с мобильного приложения я должен найти этот брелок по блютузу и брелок начнет издавать звук, призывая найти его. Но на деле и динамик тихий и как-то работало оно через раз…
В общем как только оно пришло и повозившись с ним 5 минут, сразу же выкинул его в долгий ящик.
И вот, прошло лет пять ( если не больше). Я изучая ESPHome наткнулся на статью: https://esphome.io/cookbook/ble_itag.html
Там описано, как подключить iTag брелок по блютузу к ESP32 и использовать его как бинарный сенсер.
И так как на брелоке iTag имеется кнопка. Я подумал, что это вполне себе может послужить альтернативой беспроводной кнопке от XIaomi: http://alii.pub/5xhfip Так как стоит в 10 раз дешевле.
Забегая в перед, устройство действительно достойное получилось и гораздо интереснее стало чем было изначально.
Итак давайте теперь всетаки расскажу как-же все это дело добавить в ESPHome и Home Assistant.
В ESPHome добавляем следующее:
# Заставляет ESP32 сканировать Bluetooth сеть на наличие устройств и показывать маки этих устройств в логе. # это нужно для того чтобы найти мак адрес itag устройства и вписать его в строчку "-mac-address: " ниже. esp32_ble_tracker: ble_client: # Тут указывается мак адрес itag брелока. - mac_address: FF:FF:20:00:0F:15 id: itag_black binary_sensor: - platform: template id: black_button name: "Black iTag Button" filters: delayed_off: 200ms sensor: # эта часть отвечает за статус нажатой кнопки. - platform: ble_client ble_client_id: itag_black name: "Black iTag btn" service_uuid: 'ffe0' characteristic_uuid: 'ffe1' notify: true update_interval: never on_notify: then: - binary_sensor.template.publish: id: black_button state: ON - binary_sensor.template.publish: id: black_button state: OFF # Эта часть отвечает за показ Уровня батареи - platform: ble_client ble_client_id: itag_black name: "Black iTag Battery" service_uuid: '180f' characteristic_uuid: '2a19' icon: 'mdi:battery' unit_of_measurement: '%'
После того как добавите этот код, и загрузили его в контроллер. Нужно будет открыть лог и нажать кнопку на iTag устройстве, чтоб найти его мак адрес.
После нажатия кнопки увидим этот мак адрес копируем его и вставим в скетч в графу “ -mac-address:» Остальное все оставим без изменений.
Теперь после вставки мака правильного нужно еще раз залить этот код ( уже с верным маком) в ESP32.
Ну и после этого добавляем интеграцию ESPHome в Home Assistant как обычно в Настройках->Интеграции.
Все после этого у нас появится новый бинарный сенсор с именем Black iTag Button
Ну и теперь давайте сделаем какую-нибудь автоматизацию, чтоб у нас к примеру при нажатии кнопки iTag брелока включался свет.
В качестве осветителя, я буду использовать настольную лампу xiaomi. Как ее добавить в Home Assistant, я описывал в этой статье:
В общем сделаем так, чтоб при нажатии кнопки на iTag у нас включался светильник. А при еще одном нажатии выключался.
ЧТоб это сделать, нам нужно в файл /configs/automations.yaml добавить следующее:
- id: turn_on_ble_track_on # это произвольное id под которым эта автоматизация добавится в Home Assistant alias: Turn on light by motion sensor # Это произвольное имя trigger: - platform: state entity_id: binary_sensor.black_itag_button #Это id устройства iTag под которым оно добавлено в систему Home Assistant to: 'on' #какое состояние кнопки считывать action: - service: light.toggle # Этот сервис означает, что при улавливании нажатой кнопки iTag менять состояние лампы на противоположное нынешнему состоянию. entity_id: light.desk_lamp #Это id устройства Xiaomi лампы под которым оно добавлено в систему Home Assistant
Постарался каждую строчку автоматизации описать в комментариях после знака решетки ‘#’.
Ну и все, сохраняем файл автоматизации и переходим в Настройки->Сервер-> Перезапуск сервера Home Assistant.
После перезапуска сервера у нас автоматизация должна заработать. И теперь после нажатия на брелок, у нас будет запускаться Лампа. А после еще одного нажатия выключаться соответственно.
В итоге получилась очень не плохая альтернатива кнопки xiaomi. А такая кнопка всегда полезна будет. У меня по крайней мере всегда возникает желание делать кнопки дистанционного управления, чтоб управлять чем либо.
Устройство мне настолько понравилось, что планирую себе еще поназаказывать этих брелоков. Лишними теперь уж точно не будут.
Добавляем поддержку BLE (bluetooth) устройств в Home Assistant
В последней публикации из своей трилогии я расскажу, как добавить поддержку Bluetooth устройств в умный дом на Home Assistant, а также напомню способ установки кастомных компонентов.
Translation to English is here . Также основной канал в telegram .
Первая часть заключалась в том, что я описал купленный стик:
Во второй части я описал как добавить поддержку сервисов Bluetooth в Linux, если таковой у Вас еще нет:
И вот — настало время все соединить воедино. Как я уже объяснил в прошлой статье, на сайте Home Assistant есть как минимум три интеграции, но они нам не нужны. Мы будем использовать интеграцию Passive BLE Monitor integration . Она себя зарекомендовала и множество (тысячи) пользователей установили ее себе и отметили ее на GitHub звездой.
Есть 2 способа установить эту интеграцию: а) Через HACS: писал про это тут:
б) Создаем рядом с файлом конфигурации Home Assistant папку custom_components и копируем в него интеграцию прямо с GItHub из этой папки .
Для копирования файлов на сервер очень удобно использовать ftp. Как его настроить, например, на Windows — писал тут:
1. Копируем файлы в папку или ставим из HACS (↑ описано выше ↑).
2. Далее перезагружаем HA и переходим в интеграции и набираем в поиске BLE. Если пункт №1 выполнен правильно, то найдется интеграция Passive BLE monitor
3. Выберем ее и нажмем «установить»
4. Как только установка закончится, появится менюшка. Если Bluetooth адаптер настроен верно, то мы увидим его в списке ниже(hcl0). Проверим что на нем стоит галка.
4. Я дополнительно установил галку на пункте «авто рестарт», но не уверен, что это требуется — скорее перестраховался.
5. После того, как я нажал кнопку «ок», в квартире мгновенно нашлись 4 устройства. Все устройства были от Xiaomi.
6. Нажимаем «финиш». Интеграция отображается в общем списке. Также показываются устройства и сущности.
7. Давайте нажмем на «устройства»:
8. Давайте нажмем на сущности:
Устройства заведенные в HA таким образом работают точно также как и WiFi или ZigBee устройства. За 2 недели у меня не было пока никаких проблем ни с одним из них. Не требуются никакие сопряжения устройств и прочие танцы с бубном, что я нахожу очень удобным. Всем добра!
Подпишитесь , чтобы не пропускать следующий контент.
Нажмите лайк , если интересно, так я пойму какие публикации больше нужны моей публике.
Также публикации можно найти на других площадках: Instagram , telegram ( RU , EN , DE ), Medium , LiveJournal , YouTube .
Мой блог является некоммерческим, поэтому позитивный комментарий, лайк или репост поможет публикациям выходить чаще ☺.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Use a bluetooth remote control with Home Assistant
License
tjntomas/MI-Bluetooth-Remote-for-Home-Assistant
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Use a bluetooth remote control connected to a linux device with Home Assistant
NOTE: There is a dockerized version here that might suit some persons better. Docker version of bluetooth remote for HA
I wanted to be able to use a spare Xiaomi MI Remote control and get the keypresses as events into Home Assistant so I can use it as general purpose remote. The remote I used can be bought for around $12 on banggood.com or wish.com. Mi bluetooth remote
The cheap WeChip G20S remotes will also work: WeChip remote
I paired the remote control with a NUC running Ubuntu that I use as a media player, but a Raspberry Pi or any other maching running a linux OS should work. I then wrote a simple python3 script to listen to the remote keypress events and send the events to Home Assistant.
To use the script, you need to:
- Install the dependencies in the script. They should all be present on your system with the exception of the evdev module which you can find here. https://pypi.org/project/evdev/
- Look in /dev/input and make a note of the highest numbered device
- Pair the remote control to the computer, as you would pair any bluetooth device.
- Look again in /dev/input and make note of the new device that has been created. This is your bluetooth remote control.
- Fill in the name of the path to your remote control device in the python script, i.e. /dev/input/event9
- Add the details for your Home Assistant instance in the script.
In total, you will need to edit the following lines in the script:
BASE_API = "http://192.168.1.20:8123/api/" # URL to your HA instance. DEV_INPUT = "/dev/input/event9" API_KEY = "A valid HA long-lived access token" HA_EVENT_NAME = "mi_bt_remote" # Arbitrary name of the event that will get fired. GRAB_DEVICE = False # Set to True to lock the device to this script. The system will not receive any events from the device. # i.e, the remote will not work as a volume control by default.
sudo python3 bt_remote_event.py
to see that it works. Sudo is necessary to access the input device. Then, in Home Assistant, you can subscribe to the mi_bt_remote event in developer tools.
Now, set up the script as a daemon by copying the btmon.service file to your service directory. You need to edit the path to the python script in the service file. Enable the service and start it. The service need to run as user root.
You can now use the events as triggers in automations in Home Assistant.
About
Use a bluetooth remote control with Home Assistant