Многие пользователи боятся связываться с DIY и самодельными устройствами на микросхемах ESP потому что ничего не понимают в прошивках, паянии и программировании.
Чтоб собрать бюджетный датчик температуры, CO2, PM2.5, звука, освещенности и т.п. вам не нужен паяльник или программатор.
NodeMCU это готовая плата с встроенным программатором. Прошивается и питается от обычного microUSB.
ESPHome это готовая прошивка с встроенной поддержкой огромного количества готовых датчиков. Конфиг прошивки пишется на уже знакомом многим YAML. Сама прошивка легко собирается и загружается через аддон Hass.io.
У @great_kvazis есть отличное видео, как на NodeMCU собрать Bluetooth шлюз для датчиков Xiaomi
https://youtu.be/J04PZJTwnnw
На фото пример RF 433 передатчика. Он открывает входную дверь в наш офис по команде Telegram-бота. Это временное решение, пока не приедет Sonoff SV.
А когда приедет моя NodeMCU ESP32 - попробую открывать дверь по BLE. На фото NodeMCU ESP8266. Она Bluetooth не умеет. Будьте внимательны при покупке.
Чтоб собрать бюджетный датчик температуры, CO2, PM2.5, звука, освещенности и т.п. вам не нужен паяльник или программатор.
NodeMCU это готовая плата с встроенным программатором. Прошивается и питается от обычного microUSB.
ESPHome это готовая прошивка с встроенной поддержкой огромного количества готовых датчиков. Конфиг прошивки пишется на уже знакомом многим YAML. Сама прошивка легко собирается и загружается через аддон Hass.io.
У @great_kvazis есть отличное видео, как на NodeMCU собрать Bluetooth шлюз для датчиков Xiaomi
https://youtu.be/J04PZJTwnnw
На фото пример RF 433 передатчика. Он открывает входную дверь в наш офис по команде Telegram-бота. Это временное решение, пока не приедет Sonoff SV.
А когда приедет моя NodeMCU ESP32 - попробую открывать дверь по BLE. На фото NodeMCU ESP8266. Она Bluetooth не умеет. Будьте внимательны при покупке.
AlexxIT Smart Home
Сколько токенов авторизации нужно YandexStation для работы? Я насчитал пять. Токены нужны, чтоб доказать серверам Яндекса, что вы это вы. Это гораздо безопаснее, чем слать в каждом запросе логин и пароль. Ведь токены имеют свой срок жизни. И если злоумышленник…
После этого фикса YandexStation проблемы у пользователей не прекратились.
Как оказалось, фикс вызывал ошибку на python версии 3.8. Эта версия стоит внутри последнего Hass.io. А у меня на тестовом компе была версия 3.7.
Вообще, довольно редкая ситуация, когда при обновлении python ломается обратная совместимость.
В YandexStation v2.2.10 должно быть всё хорошо.
Как оказалось, фикс вызывал ошибку на python версии 3.8. Эта версия стоит внутри последнего Hass.io. А у меня на тестовом компе была версия 3.7.
Вообще, довольно редкая ситуация, когда при обновлении python ломается обратная совместимость.
В YandexStation v2.2.10 должно быть всё хорошо.
Последние несколько вечеров я воевал с биндингом на Xiaomi Gateway 3.
Это очень недооцененная особенность протокола Zigbee. Про неё мало говорят и далеко не все пользуются.
Технология позволяет связать беспроводную кнопку с розеткой, лампочкой или группой лампочек. Напрямую в обход Zigbee хаба или стика.
Таким образом, если хаб выйдет из строя - ручное беспроводное управление светом останется работать.
Вчера я добился правильной работы биндинга на третьем шлюзе. И просто в шоке, как в сообществе мало информации о тонкостях и заблуждениях работы этой технологии.
Информации хватит на приличную такую статью. Но нужно ещё протестировать пару устройств, чтоб нигде не наврать.
А управлению биндингом в третьем шлюзе быть. В следующих обновлениях встрою его в компонент.
И спасибо @sprut666666 за подсказку о смене режима работы выключателей Opple.
Это очень недооцененная особенность протокола Zigbee. Про неё мало говорят и далеко не все пользуются.
Технология позволяет связать беспроводную кнопку с розеткой, лампочкой или группой лампочек. Напрямую в обход Zigbee хаба или стика.
Таким образом, если хаб выйдет из строя - ручное беспроводное управление светом останется работать.
Вчера я добился правильной работы биндинга на третьем шлюзе. И просто в шоке, как в сообществе мало информации о тонкостях и заблуждениях работы этой технологии.
Информации хватит на приличную такую статью. Но нужно ещё протестировать пару устройств, чтоб нигде не наврать.
А управлению биндингом в третьем шлюзе быть. В следующих обновлениях встрою его в компонент.
И спасибо @sprut666666 за подсказку о смене режима работы выключателей Opple.
Итак. У меня для вас есть первое задание! Если вы давно хотели внести свою лепту в развитие open source сообщества - сейчас самое время 🙂
Всплыла информация, что у старых устройств Xiaomi есть какой-то свой самодельный биндинг:
https://t.me/SprutAI_Xiaomi/83406
https://t.me/SprutAI_Xiaomi/83206
https://t.me/SprutAI_Xiaomi/83912
Ваша задача - повторить вышеупомянутое у себя и рассказать мне во всех подробностях, как вы это сделали и на каких устройствах.
Можно попробовать разные Gateway - второй, третий, евро.
Можно попробовать разные кнопки и розетки, но надёжнее именно как в видео - круглая кнопка Xiaomi, накладной выключатель Aqara (старый) и Xiaomi Plug.
В теории нужно:
- создать автоматизацию одиночного нажатия кнопки на переключение состояния розетки в Mi Home
- возможно (неизвестно) попользоваться некоторое время, возможно часы
- выключить хаб из розетки
- возможно (неизвестно) подождать некоторое время, возможно часы
- попробовать управлять розеткой с кнопки при отключенном хабе
Я пробовал, у меня не получилось. Но сдаваться ведь не наш метод.
Всплыла информация, что у старых устройств Xiaomi есть какой-то свой самодельный биндинг:
https://t.me/SprutAI_Xiaomi/83406
https://t.me/SprutAI_Xiaomi/83206
https://t.me/SprutAI_Xiaomi/83912
Ваша задача - повторить вышеупомянутое у себя и рассказать мне во всех подробностях, как вы это сделали и на каких устройствах.
Можно попробовать разные Gateway - второй, третий, евро.
Можно попробовать разные кнопки и розетки, но надёжнее именно как в видео - круглая кнопка Xiaomi, накладной выключатель Aqara (старый) и Xiaomi Plug.
В теории нужно:
- создать автоматизацию одиночного нажатия кнопки на переключение состояния розетки в Mi Home
- возможно (неизвестно) попользоваться некоторое время, возможно часы
- выключить хаб из розетки
- возможно (неизвестно) подождать некоторое время, возможно часы
- попробовать управлять розеткой с кнопки при отключенном хабе
Я пробовал, у меня не получилось. Но сдаваться ведь не наш метод.
Telegram
🅿️🅴🆁🅼🅰🅳🅼 in Xiaomi / Aqara и т.д.
Моя прелесть. Приехал новый неттоп на роль домашнего сервера 24/7.
До него эту роль исправно выполнял ZOTAC ZBOX HD-ND02 на процессоре Atom 330, 3 GB DDR3, SATA 2, USB 2. Куплен летом 2011.
Сейчас это будет Core i3 10го поколения, 16 GB DDR4, M.2 PCI-E (в 4 раза быстрее топового SSD на SATA 3), USB 3.1.
Софт не изменится: Ubuntu Server, Docker, Hass, Plex, Samba, FileRun, Transmission. И набор дополнительных контейнеров для разных нужд.
Надеюсь заведётся, а то всякое бывает.
До него эту роль исправно выполнял ZOTAC ZBOX HD-ND02 на процессоре Atom 330, 3 GB DDR3, SATA 2, USB 2. Куплен летом 2011.
Сейчас это будет Core i3 10го поколения, 16 GB DDR4, M.2 PCI-E (в 4 раза быстрее топового SSD на SATA 3), USB 3.1.
Софт не изменится: Ubuntu Server, Docker, Hass, Plex, Samba, FileRun, Transmission. И набор дополнительных контейнеров для разных нужд.
Надеюсь заведётся, а то всякое бывает.
AlexxIT Smart Home
Voice message
Использовать другие голоса на колонках с Алисой довольно просто. Работает на всех колонках. Помните про ограничение в 100 символов при облачном управлении.
Перед фразой нужно вставить специальный тег:
Разные голоса можно посмотреть тут
https://cloud.yandex.ru/services/speechkit
Работают не все голоса. Если указать неправильный голос - колонка заглючит. Тогда на неё нужно отправить команду стоп или перезагрузить.
Обновил readme. И добавил в него оглавление для удобства.
Перед фразой нужно вставить специальный тег:
<speaker voice="zahar">Всем привет. Меня зовут Захар. Наверное, вы не знали, что Яндекс Станция умеет говорить не только голосом Алисы?
Разные голоса можно посмотреть тут
https://cloud.yandex.ru/services/speechkit
Работают не все голоса. Если указать неправильный голос - колонка заглючит. Тогда на неё нужно отправить команду стоп или перезагрузить.
Обновил readme. И добавил в него оглавление для удобства.
yandex.cloud
Технологии синтеза речи и распознавания голоса для бизнеса — Yandex SpeechKit
Yandex SpeechKit - речевые технологии распознавания и синтеза речи на базе машинного обучения для создания голосовых помощников, автоматизации колл-центров, контроля качества сервиса и других бизнес-задач.
Немного подлатал работу Motion Sensor и Button в Xiaomi Gateway 3.
А так же добавил поддержку BLE! Нужно перезагрузить Gateway, чтоб заработало.
Работает весьма посредственно. Датчики шлют обновления очень редко. Они не привязаны к шлюзу и их состояния после перезагрузки Home Assistant неоткуда достать. Модель устройства тоже непонятно откуда брать.
Спасибо команде ESPHome, благодаря им понятно как расшифровываются данные всяких формальдегидов и москитолов.
Кто хотел поддержку BLE замков - в компоненте появился Debug режим. Нужно включить в конфиге
А так же добавил поддержку BLE! Нужно перезагрузить Gateway, чтоб заработало.
Работает весьма посредственно. Датчики шлют обновления очень редко. Они не привязаны к шлюзу и их состояния после перезагрузки Home Assistant неоткуда достать. Модель устройства тоже непонятно откуда брать.
Спасибо команде ESPHome, благодаря им понятно как расшифровываются данные всяких формальдегидов и москитолов.
Кто хотел поддержку BLE замков - в компоненте появился Debug режим. Нужно включить в конфиге
debug: bluetooth
и прислать мне для анализа.Приехал великий и ужасный новый датчик освещённости на Zigbee 3. К старым шлюзам не подключится. Вечером можно будет добавить поддержку в Xiaomi Gateway 3.
И приехала RBG лента от Sonoff на 5 метров. Она была одной из причин добавления в компонент SonoffLAN поддержки облачного управления устройствами. Ведь лента не получила обновление прошивки 3й версии. Поэтому управляется только через сервера eWeLink. Неприятно, но не критично, за такую-то цену.
И приехала RBG лента от Sonoff на 5 метров. Она была одной из причин добавления в компонент SonoffLAN поддержки облачного управления устройствами. Ведь лента не получила обновление прошивки 3й версии. Поэтому управляется только через сервера eWeLink. Неприятно, но не критично, за такую-то цену.
AlexxIT Smart Home
Приехал великий и ужасный новый датчик освещённости на Zigbee 3. К старым шлюзам не подключится. Вечером можно будет добавить поддержку в Xiaomi Gateway 3. И приехала RBG лента от Sonoff на 5 метров. Она была одной из причин добавления в компонент SonoffLAN…
Похоже слова про "великий и ужасный" были пророчеством.
Датчик освещённости интегрируется в систему Xiaomi по совершенно другим правилам. Отличается абсолютно всё: идентификатор устройства, название и способ получения параметров, значения этих параметров (например, уровень заряда). Пока есть сложности с приведением всего этого к единому виду.
Но есть и хорошая новость. Похоже я нашёл основную причину плохой работы протокола miio. И если её пофиксить - протокол просто летает без всяких затыков.
Особенности реализации библиотеки miio на python ломают даже работу мобильного приложения Mi Home. Оно начинает страшно тупить при взаимодействии с устройствами, для которых настроена такая интеграция. Включая шлюзы. Выход - или отключить такие интеграции или отключить wifi на телефоне, тогда взаимодействие с устройствами будет через сервера Xiaomi.
Датчик освещённости интегрируется в систему Xiaomi по совершенно другим правилам. Отличается абсолютно всё: идентификатор устройства, название и способ получения параметров, значения этих параметров (например, уровень заряда). Пока есть сложности с приведением всего этого к единому виду.
Но есть и хорошая новость. Похоже я нашёл основную причину плохой работы протокола miio. И если её пофиксить - протокол просто летает без всяких затыков.
Особенности реализации библиотеки miio на python ломают даже работу мобильного приложения Mi Home. Оно начинает страшно тупить при взаимодействии с устройствами, для которых настроена такая интеграция. Включая шлюзы. Выход - или отключить такие интеграции или отключить wifi на телефоне, тогда взаимодействие с устройствами будет через сервера Xiaomi.
Если кто заглянет в исходники последней версии Xiaomi Gateway 3, вероятно решит, что я выжил из ума. Я и сам бы так подумал, увидев подобное в чужом коде.
Miio API не давало нужных мне данных по датчику освещённости. Но я нашёл всю необходимую информацию по всем устройствам в файловой базе данных на самом Хабе. Сама БД очень редкого формата - документно-ориентированный аналог SQLite. В Python к такой просто так не подключиться. Библиотека для работы с ней написана на C++ и не смогла собраться в hassio. Поэтому мне пришлось изучить формат этой БД и написать свой аналог без лишних зависимостей.
Чтение списка устройств с статусами всех датчиков из файловой БД странного формата через Telnet из Python - занятие весьма авантюрное, но всё получилось.
Правда это оказалось зря. В новой версии прошивки разработчики шлюза тупо отказались от хранения данных в этом формате. У меня есть дампы 3х прошлый версий и везде эта БД была. А в новой версии её уже нет. Но проблема в том, что и у меня нет этой новой версии. Mi Home показывает последнюю версию прошивки шлюза как 1.4.6_0012. А на github ругаются на 1.4.6_0030.
Такие вот дела.
Miio API не давало нужных мне данных по датчику освещённости. Но я нашёл всю необходимую информацию по всем устройствам в файловой базе данных на самом Хабе. Сама БД очень редкого формата - документно-ориентированный аналог SQLite. В Python к такой просто так не подключиться. Библиотека для работы с ней написана на C++ и не смогла собраться в hassio. Поэтому мне пришлось изучить формат этой БД и написать свой аналог без лишних зависимостей.
Чтение списка устройств с статусами всех датчиков из файловой БД странного формата через Telnet из Python - занятие весьма авантюрное, но всё получилось.
Правда это оказалось зря. В новой версии прошивки разработчики шлюза тупо отказались от хранения данных в этом формате. У меня есть дампы 3х прошлый версий и везде эта БД была. А в новой версии её уже нет. Но проблема в том, что и у меня нет этой новой версии. Mi Home показывает последнюю версию прошивки шлюза как 1.4.6_0012. А на github ругаются на 1.4.6_0030.
Такие вот дела.
Issue с номером 813. Вот какой человек испытывает настоящую боль 🙈
Описал разработчику библиотеки miio основную причину тормозов протокола. Из-за неё глючат не только интеграции Wi-Fi устройств Xiaomi, но и приложение Mi Home и, вероятно, локальные автоматизации!
Вы ведь в курсе, что простые автоматизации вроде "датчик движения Zigbee - лампочка Wi-Fi" вполне могут работать без Интернета? Шлюз сделает всё сам.
Теперь всё в руках разработчика python-miio. Может он придумает более лучшее решение, чем я предложил. Потому как и моё не совершенно.
https://github.com/rytilahti/python-miio/issues/813
Интересно решён ли вопрос в библиотеках на других языках программирования...
Описал разработчику библиотеки miio основную причину тормозов протокола. Из-за неё глючат не только интеграции Wi-Fi устройств Xiaomi, но и приложение Mi Home и, вероятно, локальные автоматизации!
Вы ведь в курсе, что простые автоматизации вроде "датчик движения Zigbee - лампочка Wi-Fi" вполне могут работать без Интернета? Шлюз сделает всё сам.
Теперь всё в руках разработчика python-miio. Может он придумает более лучшее решение, чем я предложил. Потому как и моё не совершенно.
https://github.com/rytilahti/python-miio/issues/813
Интересно решён ли вопрос в библиотеках на других языках программирования...
GitHub
Fix protocol freezes due to sequence id · Issue #813 · rytilahti/python-miio
I am developing a component for integrating Xiaomi Gateway 3 and understood how sequence id (start_id and _id) works. I think the problem does not concern only Gateway, but applies to all devices w...
Забавно. Пишут, прошивка 1.4.6_0030 для Xiaomi Gateway 3 была доступна в июле. Но в августе её убрали из списка обновлений. Получается кто успел на неё обновится - так на ней и сидят. Все остальные могут обновится только до 1.4.6_0012.
Приехала куча плюшек с последней распродажи.
Купил второй шлюз Gateway 3, чтоб один сделать боевым, а на втором можно было бы продолжить разрабатывать. Плюс проверить работу компонента с двумя шлюзами одновременно. И интересно как ведут себя BLE устройства с несколькими шлюзами.
Zigbee удлинитель с 4 управляемыми розетками! на универсальную вилку (евро, америка, китай) и двумя неуправляемыми USB.
Zigbee 3 диммер на 2 канала с поддержкой кнопок.
Две лампы Bluetooth Mesh для изучения этой технологии и тестов с Gateway 3.
Sonoff SV с сухим контактом для управления дверью в офисе. Умеет питаться от 12V, заберу их с контроллера двери. Для получения сухого контакта нужно отпаять резистр!
NodeMCU ESP32 для тестирования технологии трекинга людей по BLE на прошивке ESPHome.
Прошитый cc1251 от Sonoff. Наконец-то посмотрю как работает Zigbee Home Automation. Вроде как готов к бою "из коробки".
Розетка ZNCZ04LM. Говорят она на Zigbee 3. Плюс возможно сможет помочь понять тайны протокола Xiaomi. Купил в Связном.
Купил второй шлюз Gateway 3, чтоб один сделать боевым, а на втором можно было бы продолжить разрабатывать. Плюс проверить работу компонента с двумя шлюзами одновременно. И интересно как ведут себя BLE устройства с несколькими шлюзами.
Zigbee удлинитель с 4 управляемыми розетками! на универсальную вилку (евро, америка, китай) и двумя неуправляемыми USB.
Zigbee 3 диммер на 2 канала с поддержкой кнопок.
Две лампы Bluetooth Mesh для изучения этой технологии и тестов с Gateway 3.
Sonoff SV с сухим контактом для управления дверью в офисе. Умеет питаться от 12V, заберу их с контроллера двери. Для получения сухого контакта нужно отпаять резистр!
NodeMCU ESP32 для тестирования технологии трекинга людей по BLE на прошивке ESPHome.
Прошитый cc1251 от Sonoff. Наконец-то посмотрю как работает Zigbee Home Automation. Вроде как готов к бою "из коробки".
Розетка ZNCZ04LM. Говорят она на Zigbee 3. Плюс возможно сможет помочь понять тайны протокола Xiaomi. Купил в Связном.
Интересные времена наступают для нас всех. Кто-то таки не поленился и разобрал протокол авторизации Mi Home Cloud.
В openHAB уже есть рабочая реализация. Для python на днях оформили библиотеку.
Это значит, что в перспективе не нужно будет мучаться с получением токенов Xiaomi устройств. Ввёл логин/пароль от Mi Home и все устройства заработали автоматически.
Опционально конечно можно оставить и токен. Так работает компонент SonoffLAN.
Добавлю как-нибудь код в компонент Xiaomi Gateway 3. Плюс дополнительно можно куда-то выводить токены не только Хабов, но и других устройств. Чтоб упростить пользователям других компонентов жизнь.
В openHAB уже есть рабочая реализация. Для python на днях оформили библиотеку.
Это значит, что в перспективе не нужно будет мучаться с получением токенов Xiaomi устройств. Ввёл логин/пароль от Mi Home и все устройства заработали автоматически.
Опционально конечно можно оставить и токен. Так работает компонент SonoffLAN.
Добавлю как-нибудь код в компонент Xiaomi Gateway 3. Плюс дополнительно можно куда-то выводить токены не только Хабов, но и других устройств. Чтоб упростить пользователям других компонентов жизнь.
Свежие новости о Xiaomi Gateway 3
1. Облачные Mi Home API работают и это 🔥. В списке устройств есть всё:
- нормальные имена из Mi Home
- последние значения сенсоров как Zigbee, так и BLE датчиков
- и даже последняя дата срабатывания событий датчиков движения
- токены и локальные IP-адреса хабов
Встраивать ещё даже не пытался, работы много.
2. Я обновил логику работы с BLE и теперь данные подтягиваются максимально быстро. Над стабильностью конечно ещё нужно работать.
3. Кубик Рубика огорчил, информацию о грани не шлёт. Только направление вращения...
https://youtu.be/4D_vqvUre_0
4. BLE лампы работают. Ими может управлять любой из хабов в вашем доме. Та самая децентрализация, которой так не хватает технологии Zigbee.
Ещё технология Bluetooth Mesh позволяет собирать лампы в группы и отдавать команды разом всей группе.
Скорее всего поддержка появятся не раньше работы с облаком.
5. В логах Хаба вижу самокат Xiaomi. Пока непонятно, что можно с этим сделать. Самокат ничего не шлёт. Но пища для размышлений есть.
1. Облачные Mi Home API работают и это 🔥. В списке устройств есть всё:
- нормальные имена из Mi Home
- последние значения сенсоров как Zigbee, так и BLE датчиков
- и даже последняя дата срабатывания событий датчиков движения
- токены и локальные IP-адреса хабов
Встраивать ещё даже не пытался, работы много.
2. Я обновил логику работы с BLE и теперь данные подтягиваются максимально быстро. Над стабильностью конечно ещё нужно работать.
3. Кубик Рубика огорчил, информацию о грани не шлёт. Только направление вращения...
https://youtu.be/4D_vqvUre_0
4. BLE лампы работают. Ими может управлять любой из хабов в вашем доме. Та самая децентрализация, которой так не хватает технологии Zigbee.
Ещё технология Bluetooth Mesh позволяет собирать лампы в группы и отдавать команды разом всей группе.
Скорее всего поддержка появятся не раньше работы с облаком.
5. В логах Хаба вижу самокат Xiaomi. Пока непонятно, что можно с этим сделать. Самокат ничего не шлёт. Но пища для размышлений есть.
YouTube
Xiaomi Rubik Cube BLE and Gateway 3 integration in Home Assistant
https://github.com/AlexxIT/XiaomiGateway3
Cube support only 2 events! Clockwise and counterclockwise. No side (color) information :(
Cube support only 2 events! Clockwise and counterclockwise. No side (color) information :(