Pull to refresh

Comments 46

Т.е у яндекс станции с zigbee все еще нет нативной интеграции в home assistant? Мне кажется для гиков которые собирают умный дом (а умный дом это все еще занятие для гиков) это был бы большой плюс, чтобы купить яндекс станцию, а не home pod.

Ведь в HomeKit через bridge все устройства появляются в экосистеме apple и управляются без облака почти со всех устройств.
С HomePod можно слушать музыку с любым приложением с iphone и не тратить деньги на подписку яндекс.музыку

В общем яндекс впереди планеты всей :)

Яндекс наверное не для (2-3) гиков делает, а для простых пользователей и чтоб наименее замарочено было

Имхо, но и не будет. Умный Дом Яндекс (УДЯ) - Самостоятельная экосистема и ей банально не выгодно (в отличии от партнерства с Aqara) делать бесплатный и свободный доступ к их главному детищу. К тому же, станции по-прежнему полноценно без серверов не умеют работать из-за технических особенностей (но станция Миди уже имеет прогресс в этом направлении)

В УДЯ не так давно появилась поддержка Matter. Пока вроде не для всех доступна, и бета и с количеством поддерживаемых устройств проблемы. Но суть в том, что бридж в маттер в ХА сможет локально отдавать устройства в УДЯ. Точно так же как бридж ХК в ХоумПод.

Прекрасные интеграции, пользуюсь ими, но всё упирается в интернет (: Яндекс станции могут оффлайн давать команды только на Zigbee девайсы, которые связаны с ней.

С точки зрения "обественной" пользы мне кажется было бы полезно рассказать немного о програмировании zigbee на esp32, наверняка есть подводные камни. Мне кажется многие заинтересованные и не знают что есть такое.

Как раз поэтому весь код я хотел бы описать в отдельной статье, иначе тут было бы чтиво на часа полтора)

На самом деле, фреймворк от Espressiff (ESP-IDF) очень сильно упрощает это дело, но без подводных камней действительно не обошлось.

Вместо ESP32 я бы взял TLSR825x:

Protocols: Supports Bluetooth LE 5.3, Bluetooth Mesh, Zigbee 3.0, Apple HomeKit (Bluetooth LE), and 2.4GHz proprietary

Bluetooth LE PHY: 1Mbps, 2Mbps, Long Range S2 (500Kbps), S8 (125Kbps)

Bluetooth LE Multi Connection:Master x 4 , Slave x 4

Location Service: RSSI, AoA/AoD (AoD is only supported in some Part Numbers)

MCU: Telink 32-bit, 48MHz;SRAM: 32~64KB;Flash: 512KB~1MB;GPIO: 10~32

I2C: 1;UART: 0~1;SPI: 1;USB: 0~1;PWM: 4~6;ADC: 14bit;AMIC: 1;DMIC: 0~1

Supply Voltage: 1.8V ~ 3.6V

Power Consumption: RX mode: 5.3mA TX mode: 4.8mA @ 0dBm with DCDC

Sleep Consumption: 0.4~1.4uA

Tx Output Power: 10dBm @ BLE mode

Rx Sensitivity: -96dBm @ BLE 1Mbps

Security: AES-128, ECC, TRNG

===================

У ESP32-C6 ток потребления в активном режиме при включенном приемнике в 14 раз больше. А при работе передатчика в 20 раз больше.

-------------------------------

Telink можно питать от CR2032.

Здесь есть одна деталь, которая позволяет не смотреть на ток потребления - ESP по факту у нас выступает не как отдельное устройство, а как USB свисток по типу Zigbee приёмника от того же Sonoff (для интеграции zigbee2mqtt например) т.е. у нас постоянное питание от USB.

А почему Вы не передаете в home assistant по Zigbee?

Этот аспект как раз описан в разделе "Проблема". Zigbee девайс может быть связан только с одним координатором, а Home Assistant и Яндекс станция оба являются координаторами сети.

Не понял. Что мешает сначала включиться в одну сеть, потом в другую?

Ваш ESP32 должен зарегистрироваться в двух сетях и потом переключаться между ними.

изначально идея как раз была именно такая, однако потом пришел к следующим выводам:

  1. это довольно накладно по ресурсам т.к. придется для банальной передачи состояния вкл\выкл проводить инициализацию протокола 3 раза (для приема, потом для передачи и снова для приёма), что затратно по времени

  2. Переключение между сетями делает крайне проблемным использование двух сетей, поскольку вы сможете отправлять по сути только одну команду за одну операцию, потому что после подачи сигнала одному каналу, ESP уйдет переподключаться и не будет слушать остальные команды

  3. Банально нет необходимости в такой автономности, поскольку home assistant устанавливается на устройства с нормальными USB портами, что решает сразу две проблемы - задержки в передаче данных и питание платы.

  4. Для реализации такого подхода придется писать прошивку с полного нуля без фреймворков, поскольку последние ориентированы на разработку конечных устройств и "из коробки" такого не умеют, что уже накладно по человеко-часам и ценности разработки.

Правильно я понял, что проблема в том, чтобы подсунуть cтанции яндекс Home Assistant как устройство, которое уже зарегистрировано в станции?

а почему бы не передавать в ha все команды через mqtt?

Можно и через mqtt, я пошел по пути websocket в интеграции, потому что это сокращает время отклика, поскольку я не использую pub\sub подход, а напрямую делаю emit действие для устройства (подробнее будет во 2 части). MQTT более стандартизирован для таких дел, WebSocket дает побольше возможностей.

Интересно получилось, я вот расстроился, когда со станции миди перешёл на Home Assistant, лишившись локального управления устройствами голосом. Жду продолжения)

вторую часть планирую написать когда доведу до ума интеграцию) Она сейчас вроде и работает, но много чего отсутствует для стабильной работы. Эту часть решил написать раньше, потому что я как программист не идеален и возможно знающим людям дам возможность разработать свой аналог, основываясь на моём решении.

Разве в НА нет интеграции с Алисой? Использую majordomo и zigbee2mqqt, все устройства через zigbee2mqqt интегрированы в мажордомо а из него уже взаимодействуют с Алисой (правда только через облако)

Есть и товарищ во 2 комменте сверху оставил на них ссылки и да, они только с интернетом работают. Я же реализую фичу Zigbee станций с оффлайн управлением (почему-то тут его все путают с локальным, но речь идет не про локальную сеть, а про отсутствие интернета для станции)

А Марусю кто-то смог интегрировать в HA?

Я смог, но пока только через интернет и белый айпи...

Можете рассказать подробнее?

HA виден в интернете (DuckDNS), но без https.

Создал в Марусе умный дом, но в приложении маруси при входе в HA (ввожу логин и пароль) и выбрасывает обратно).

Я руководствовался этой статьей: https://habr.com/ru/articles/649571/
Там надо руками делать yaml файл и скармливать сервису умного дома. А то что у вас на скрине - скорее всего надо зайти в ВК в настройки двухфакторной аутентификации и создать пароль приложения.

Да вот пробовал. Настроил аутентификацию, но вот пишет с восклицательным знаком "Получение доступа к https://vc.go.mail.ru" и дальше ничего не происходит...

Статью можно не читать. Автор изобретает мегакостыль, который нормально работать не будет.

Есть готовая Интеграция Yaha Cloud, в котором все реализовано, все работает более чем отлично. Нужно сделать пару нажатий кнопки. Никаких плат и прослоек не надо, возможна работа как через облако, так и напрямую.

https://docs.yaha-cloud.ru/v0.6.x/

Там же на сайте супердоккментация на Русском языке. Там описано абсолютно все.

Вы забыли нюанс - всё это работает только с интернетом. А фишка миди как раз в том что она умеет работать в офлайне, но только с зигби

  1. почему же не будет нормально работать?

  2. Как интеграция реализует оффлайн управление устройствами Home Assistant голосом когда интернет отсутствует?

Не вводите людей в заблуждение, интеграция и моя реализация решают разные задачи.

Яндекс подвёз "Быстрые команды". Т.о. интерпретация "включи свет", "выключи свет" уже работает локально на колонке.

И если б всё было zigbee и локально сопряжено с Алисой - локальное управление бы работало (предполагаю). "шлюз" в HA выглядит странненько, но так же потенциально через zigbee в Алису можно засунуть и не zigbee устройства? :)

Быстрые команды - фича не связанная с оффлайн и локальным управлением. Это возможность выполнять команды, не вызывая помощника триггер-словом "Алиса". И увы, но быстрые команды не работают в оффлайн режиме. Как раз уточнение в конце 1 скриншота наводит на выводы, что они работают всё же не локально.

Касательно обратной совместимости - это побочная фича моей реализации) Через плату мы по сути подключаем в УДЯ много лампочек, а на стороне HA можно навешать on\off триггер на что угодно, так что да, по факту мы имеем возможность управлять вообще чем угодно, что подключено к home assistant в т.ч. локальные wifi\bluetooth девайсы.

через ИК пульт еще можно

на данный момент станция, насколько знаю, не умеет пользоваться пультом без интернета (он по wifi работает, а по документации поддержка в оффлайне только Zigbee устройства)

А Matter не позволит с 2 хабами говорить? Правда не знаю какие библиотеки есть для него

Matter интересная технология, о ней пока что еще мало что известно как для готового решения, поскольку всё же должна быть поддержка непосредственно в прошивке девайсов этой технологии. Здесь всё же более фундаментальная проблема в том, что HA и УДЯ являются роутерами, к тому же, например в данный момент УДЯ не умеет работать с bluetooth устройствами, как и с Wifi девайсами напрямую (нужен хаб). Аналогию я привел в одном из заголовков - HA и УДЯ являются разъёмами "мама-мама" т.е. напрямую мы не может их чисто технически никак связать, это устройства одного класса, они не умеют хранить какие-либо состояния как объекта, поэтому и нужна такая прослойка-ретранслятор в виде программируемого конечно девайса, который получается как переходник "папа-папа".

Matter это что-то вроде универсального SDK, как например Unity - один проект можно собрать и на пк, и на андроид, и на ios и в VR. Matter стандартизирует общение девайсов, но вроде как никаких новых фич он не привносит.

УДЯ получил поддержку Matter, но устройств, как и информации со стороны поддержки в HA у меня нет, поэтому эта тема остается неизвестной.

HA и УДЯ являются роутерами

Только не роутерами, а координаторами. И не сам ХА, а какой-то стик в нём, через ZHA или Z2M.

Есть локально работающая распознавалка голосовых комманд "Ирина" (автор присутствует на Хабре), которая элементарно вяжется с хоме-ассистент.

у самого Home Assistant уже есть встроенная поддержка голосовых ассистентов, но здесь всё же речь именно про станции Яндекс и их оффлайн работу с Home Assistant

Тут основное - нужны достойные микрофоны (массивы микрофонов, как на самой станции) если Ирину заводить на "обычном" -работает, но хуже.

Сам сейчас в поиске, есть несколько плат, но дороговато.

Через Яндекс Хаб будет работать?

Если хаб поддерживает оффлайн команды, то будет работать. У меня отдельного хаба нет, точно сказать не могу, но исходя из документации оффлайн сценарии хаб по-прежнему с Zigbee выполняет.

Хочу переустановить HA, смогу все интеграции восстановить из резервной копии? Проблем не будет? А то там все что настраивал, уже забыл как делать. Будут какие нибудь подводные камни?

полный бэкап системы сохраняет и данные интеграций, так что проблем не будет.

Что то не понял, как использовать Алису без доступа в Интернет.

Привет! Спасибо за статью, очень интересно, скорей всего попробую твою реализацию.
А ты не думал над тем что бы саму станцию сделать хабом для HA? и тогда бы проблемы с так называемым шлюзом отпала сама собой.
Да понимаю что наверное это еще сложней в реализации, и скорей всего нужна кастомная прошивка платы (отвечающей за zigbee) под zigbee2mqtt, но кажется это было бы идеальное решение, устройства были-бы одновременно и в ha на на станции (мои влажные мечты))))
Хотел бы послушать(почитать конечно)) что ты думаешь на этот счет, и на сколько это сложная реализация)
З.Ы. Потенциально я бы с удовольствием поучаствовал в реализации такого проекта.

Почему реализация идет вокруг именно HA - Алиса без интернета имеет крайне ограниченный функционал, а в онлайн режиме информацию с неё можно получить только через интернет (об устройствах), что уже противоречит подходу оффлайн умного дома. Не стоит так же забывать, что УДЯ - коммерческий проект Яндекса, который крайне маловероятно будет иметь свободный доступ к корневому функционалу) Я пошел по пути "проще то, что имеет открытый код".
Да, станция как хаб было бы хорошо, однако не стоит забывать банально о том, что она поддерживает так же ограниченный круг устройств, в то время, как Z2M расширяет диапазон девайсов, поэтому станция и идет как вторичное устройство, а не центральное.

Sign up to leave a comment.

Articles