AlexxIT Smart Home
8.31K subscribers
327 photos
28 videos
291 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Многие пользователи боятся связываться с 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 не умеет. Будьте внимательны при покупке.
Суровый open source. Бессмысленный и беспощадный. Два апдейта за два дня, а треклятый motion sensor всё ещё не работает как надо!

Но ведь в описание обновлений и не было такого фикса. Совпадение? 🤔
AlexxIT Smart Home
Сколько токенов авторизации нужно YandexStation для работы? Я насчитал пять. Токены нужны, чтоб доказать серверам Яндекса, что вы это вы. Это гораздо безопаснее, чем слать в каждом запросе логин и пароль. Ведь токены имеют свой срок жизни. И если злоумышленник…
После этого фикса YandexStation проблемы у пользователей не прекратились.

Как оказалось, фикс вызывал ошибку на python версии 3.8. Эта версия стоит внутри последнего Hass.io. А у меня на тестовом компе была версия 3.7.

Вообще, довольно редкая ситуация, когда при обновлении python ломается обратная совместимость.

В YandexStation v2.2.10 должно быть всё хорошо.
Последние несколько вечеров я воевал с биндингом на Xiaomi Gateway 3.

Это очень недооцененная особенность протокола 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
- возможно (неизвестно) попользоваться некоторое время, возможно часы
- выключить хаб из розетки
- возможно (неизвестно) подождать некоторое время, возможно часы
- попробовать управлять розеткой с кнопки при отключенном хабе

Я пробовал, у меня не получилось. Но сдаваться ведь не наш метод.
Моя прелесть. Приехал новый неттоп на роль домашнего сервера 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. И набор дополнительных контейнеров для разных нужд.

Надеюсь заведётся, а то всякое бывает.
AlexxIT Smart Home
Voice message
Использовать другие голоса на колонках с Алисой довольно просто. Работает на всех колонках. Помните про ограничение в 100 символов при облачном управлении.

Перед фразой нужно вставить специальный тег:

<speaker voice="zahar">Всем привет. Меня зовут Захар. Наверное, вы не знали, что Яндекс Станция умеет говорить не только голосом Алисы?


Разные голоса можно посмотреть тут
https://cloud.yandex.ru/services/speechkit

Работают не все голоса. Если указать неправильный голос - колонка заглючит. Тогда на неё нужно отправить команду стоп или перезагрузить.

Обновил readme. И добавил в него оглавление для удобства.
Немного подлатал работу Motion Sensor и Button в Xiaomi Gateway 3.

А так же добавил поддержку BLE! Нужно перезагрузить Gateway, чтоб заработало.

Работает весьма посредственно. Датчики шлют обновления очень редко. Они не привязаны к шлюзу и их состояния после перезагрузки Home Assistant неоткуда достать. Модель устройства тоже непонятно откуда брать.

Спасибо команде ESPHome, благодаря им понятно как расшифровываются данные всяких формальдегидов и москитолов.

Кто хотел поддержку BLE замков - в компоненте появился Debug режим. Нужно включить в конфиге debug: bluetooth и прислать мне для анализа.
Беру опять раздаёт Станции. 2 рубля за умную колонку с розеткой, вроде неплохо. Хоть где-то принимают эти СПАСИБО.
Приехал великий и ужасный новый датчик освещённости на Zigbee 3. К старым шлюзам не подключится. Вечером можно будет добавить поддержку в Xiaomi Gateway 3.

И приехала 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 Gateway 3, вероятно решит, что я выжил из ума. Я и сам бы так подумал, увидев подобное в чужом коде.

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

Интересно решён ли вопрос в библиотеках на других языках программирования...
Забавно. Пишут, прошивка 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. Купил в Связном.
Интересные времена наступают для нас всех. Кто-то таки не поленился и разобрал протокол авторизации Mi Home Cloud.

В openHAB уже есть рабочая реализация. Для python на днях оформили библиотеку.

Это значит, что в перспективе не нужно будет мучаться с получением токенов Xiaomi устройств. Ввёл логин/пароль от Mi Home и все устройства заработали автоматически.

Опционально конечно можно оставить и токен. Так работает компонент SonoffLAN.

Добавлю как-нибудь код в компонент Xiaomi Gateway 3. Плюс дополнительно можно куда-то выводить токены не только Хабов, но и других устройств. Чтоб упростить пользователям других компонентов жизнь.
GitHub разрешает закреплять на главной странице только 6 репозиториев. Такой сложный выбор, ведь достойных проектов у меня несколько больше.

Тем временем SonoffLAN перевалил за 500 звёзд, у YandexStation - 200, у XiaomiGateway3 - 50, Telegram - 900+, а YouTube - 380+.
Свежие новости о 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. Пока непонятно, что можно с этим сделать. Самокат ничего не шлёт. Но пища для размышлений есть.