Почему реализация идет вокруг именно HA - Алиса без интернета имеет крайне ограниченный функционал, а в онлайн режиме информацию с неё можно получить только через интернет (об устройствах), что уже противоречит подходу оффлайн умного дома. Не стоит так же забывать, что УДЯ - коммерческий проект Яндекса, который крайне маловероятно будет иметь свободный доступ к корневому функционалу) Я пошел по пути "проще то, что имеет открытый код". Да, станция как хаб было бы хорошо, однако не стоит забывать банально о том, что она поддерживает так же ограниченный круг устройств, в то время, как Z2M расширяет диапазон девайсов, поэтому станция и идет как вторичное устройство, а не центральное.
Если хаб поддерживает оффлайн команды, то будет работать. У меня отдельного хаба нет, точно сказать не могу, но исходя из документации оффлайн сценарии хаб по-прежнему с Zigbee выполняет.
у самого Home Assistant уже есть встроенная поддержка голосовых ассистентов, но здесь всё же речь именно про станции Яндекс и их оффлайн работу с Home Assistant
Можно и через mqtt, я пошел по пути websocket в интеграции, потому что это сокращает время отклика, поскольку я не использую pub\sub подход, а напрямую делаю emit действие для устройства (подробнее будет во 2 части). MQTT более стандартизирован для таких дел, WebSocket дает побольше возможностей.
Есть и товарищ во 2 комменте сверху оставил на них ссылки и да, они только с интернетом работают. Я же реализую фичу Zigbee станций с оффлайн управлением (почему-то тут его все путают с локальным, но речь идет не про локальную сеть, а про отсутствие интернета для станции)
Matter интересная технология, о ней пока что еще мало что известно как для готового решения, поскольку всё же должна быть поддержка непосредственно в прошивке девайсов этой технологии. Здесь всё же более фундаментальная проблема в том, что HA и УДЯ являются роутерами, к тому же, например в данный момент УДЯ не умеет работать с bluetooth устройствами, как и с Wifi девайсами напрямую (нужен хаб). Аналогию я привел в одном из заголовков - HA и УДЯ являются разъёмами "мама-мама" т.е. напрямую мы не может их чисто технически никак связать, это устройства одного класса, они не умеют хранить какие-либо состояния как объекта, поэтому и нужна такая прослойка-ретранслятор в виде программируемого конечно девайса, который получается как переходник "папа-папа".
Matter это что-то вроде универсального SDK, как например Unity - один проект можно собрать и на пк, и на андроид, и на ios и в VR. Matter стандартизирует общение девайсов, но вроде как никаких новых фич он не привносит.
УДЯ получил поддержку Matter, но устройств, как и информации со стороны поддержки в HA у меня нет, поэтому эта тема остается неизвестной.
Быстрые команды - фича не связанная с оффлайн и локальным управлением. Это возможность выполнять команды, не вызывая помощника триггер-словом "Алиса". И увы, но быстрые команды не работают в оффлайн режиме. Как раз уточнение в конце 1 скриншота наводит на выводы, что они работают всё же не локально.
Касательно обратной совместимости - это побочная фича моей реализации) Через плату мы по сути подключаем в УДЯ много лампочек, а на стороне HA можно навешать on\off триггер на что угодно, так что да, по факту мы имеем возможность управлять вообще чем угодно, что подключено к home assistant в т.ч. локальные wifi\bluetooth девайсы.
на данный момент станция, насколько знаю, не умеет пользоваться пультом без интернета (он по wifi работает, а по документации поддержка в оффлайне только Zigbee устройства)
изначально идея как раз была именно такая, однако потом пришел к следующим выводам:
это довольно накладно по ресурсам т.к. придется для банальной передачи состояния вкл\выкл проводить инициализацию протокола 3 раза (для приема, потом для передачи и снова для приёма), что затратно по времени
Переключение между сетями делает крайне проблемным использование двух сетей, поскольку вы сможете отправлять по сути только одну команду за одну операцию, потому что после подачи сигнала одному каналу, ESP уйдет переподключаться и не будет слушать остальные команды
Банально нет необходимости в такой автономности, поскольку home assistant устанавливается на устройства с нормальными USB портами, что решает сразу две проблемы - задержки в передаче данных и питание платы.
Для реализации такого подхода придется писать прошивку с полного нуля без фреймворков, поскольку последние ориентированы на разработку конечных устройств и "из коробки" такого не умеют, что уже накладно по человеко-часам и ценности разработки.
вторую часть планирую написать когда доведу до ума интеграцию) Она сейчас вроде и работает, но много чего отсутствует для стабильной работы. Эту часть решил написать раньше, потому что я как программист не идеален и возможно знающим людям дам возможность разработать свой аналог, основываясь на моём решении.
Этот аспект как раз описан в разделе "Проблема". Zigbee девайс может быть связан только с одним координатором, а Home Assistant и Яндекс станция оба являются координаторами сети.
Здесь есть одна деталь, которая позволяет не смотреть на ток потребления - ESP по факту у нас выступает не как отдельное устройство, а как USB свисток по типу Zigbee приёмника от того же Sonoff (для интеграции zigbee2mqtt например) т.е. у нас постоянное питание от USB.
Имхо, но и не будет. Умный Дом Яндекс (УДЯ) - Самостоятельная экосистема и ей банально не выгодно (в отличии от партнерства с Aqara) делать бесплатный и свободный доступ к их главному детищу. К тому же, станции по-прежнему полноценно без серверов не умеют работать из-за технических особенностей (но станция Миди уже имеет прогресс в этом направлении)
Прекрасные интеграции, пользуюсь ими, но всё упирается в интернет (: Яндекс станции могут оффлайн давать команды только на Zigbee девайсы, которые связаны с ней.
Имхо, за саму идею расширения функционала конечно молодец, но экосистема Яндекс (и многие подобные - облачные) - это игрушки и полноценный умный дом на них не сделать. С одной стороны завезли зигби и даже возможность работы оффлайн с преднастроенными сценариями, но с другой, сценарий, сложнее "если ..., то ..." экосистема не может и такие максимум годятся в управление светом и примитивными действиями. С одной стороны интеграции с разными вендорами, но с другой это кучи прокси серверов до девайса, что добавляет задержки сценариям. Реальные же сценарии для реальных умных домов - Это Home Assistant в связке с Node Red. Хотя второй тоже уже для максимальной гибкости. Тонны комьюнити плагинов к HA заводят девайсы кучи разных вендоров мало того, что в одну систему, так еще и позволяют работать оффлайн (хоть и не все).
Почему реализация идет вокруг именно HA - Алиса без интернета имеет крайне ограниченный функционал, а в онлайн режиме информацию с неё можно получить только через интернет (об устройствах), что уже противоречит подходу оффлайн умного дома. Не стоит так же забывать, что УДЯ - коммерческий проект Яндекса, который крайне маловероятно будет иметь свободный доступ к корневому функционалу) Я пошел по пути "проще то, что имеет открытый код".
Да, станция как хаб было бы хорошо, однако не стоит забывать банально о том, что она поддерживает так же ограниченный круг устройств, в то время, как Z2M расширяет диапазон девайсов, поэтому станция и идет как вторичное устройство, а не центральное.
полный бэкап системы сохраняет и данные интеграций, так что проблем не будет.
Если хаб поддерживает оффлайн команды, то будет работать. У меня отдельного хаба нет, точно сказать не могу, но исходя из документации оффлайн сценарии хаб по-прежнему с Zigbee выполняет.
у самого Home Assistant уже есть встроенная поддержка голосовых ассистентов, но здесь всё же речь именно про станции Яндекс и их оффлайн работу с Home Assistant
Можно и через mqtt, я пошел по пути websocket в интеграции, потому что это сокращает время отклика, поскольку я не использую pub\sub подход, а напрямую делаю emit действие для устройства (подробнее будет во 2 части). MQTT более стандартизирован для таких дел, WebSocket дает побольше возможностей.
Есть и товарищ во 2 комменте сверху оставил на них ссылки и да, они только с интернетом работают. Я же реализую фичу Zigbee станций с оффлайн управлением (почему-то тут его все путают с локальным, но речь идет не про локальную сеть, а про отсутствие интернета для станции)
Matter интересная технология, о ней пока что еще мало что известно как для готового решения, поскольку всё же должна быть поддержка непосредственно в прошивке девайсов этой технологии. Здесь всё же более фундаментальная проблема в том, что HA и УДЯ являются роутерами, к тому же, например в данный момент УДЯ не умеет работать с bluetooth устройствами, как и с Wifi девайсами напрямую (нужен хаб). Аналогию я привел в одном из заголовков - HA и УДЯ являются разъёмами "мама-мама" т.е. напрямую мы не может их чисто технически никак связать, это устройства одного класса, они не умеют хранить какие-либо состояния как объекта, поэтому и нужна такая прослойка-ретранслятор в виде программируемого конечно девайса, который получается как переходник "папа-папа".
Matter это что-то вроде универсального SDK, как например Unity - один проект можно собрать и на пк, и на андроид, и на ios и в VR. Matter стандартизирует общение девайсов, но вроде как никаких новых фич он не привносит.
УДЯ получил поддержку Matter, но устройств, как и информации со стороны поддержки в HA у меня нет, поэтому эта тема остается неизвестной.
Быстрые команды - фича не связанная с оффлайн и локальным управлением. Это возможность выполнять команды, не вызывая помощника триггер-словом "Алиса". И увы, но быстрые команды не работают в оффлайн режиме. Как раз уточнение в конце 1 скриншота наводит на выводы, что они работают всё же не локально.
Касательно обратной совместимости - это побочная фича моей реализации) Через плату мы по сути подключаем в УДЯ много лампочек, а на стороне HA можно навешать on\off триггер на что угодно, так что да, по факту мы имеем возможность управлять вообще чем угодно, что подключено к home assistant в т.ч. локальные wifi\bluetooth девайсы.
на данный момент станция, насколько знаю, не умеет пользоваться пультом без интернета (он по wifi работает, а по документации поддержка в оффлайне только Zigbee устройства)
изначально идея как раз была именно такая, однако потом пришел к следующим выводам:
это довольно накладно по ресурсам т.к. придется для банальной передачи состояния вкл\выкл проводить инициализацию протокола 3 раза (для приема, потом для передачи и снова для приёма), что затратно по времени
Переключение между сетями делает крайне проблемным использование двух сетей, поскольку вы сможете отправлять по сути только одну команду за одну операцию, потому что после подачи сигнала одному каналу, ESP уйдет переподключаться и не будет слушать остальные команды
Банально нет необходимости в такой автономности, поскольку home assistant устанавливается на устройства с нормальными USB портами, что решает сразу две проблемы - задержки в передаче данных и питание платы.
Для реализации такого подхода придется писать прошивку с полного нуля без фреймворков, поскольку последние ориентированы на разработку конечных устройств и "из коробки" такого не умеют, что уже накладно по человеко-часам и ценности разработки.
почему же не будет нормально работать?
Как интеграция реализует оффлайн управление устройствами Home Assistant голосом когда интернет отсутствует?
Не вводите людей в заблуждение, интеграция и моя реализация решают разные задачи.
вторую часть планирую написать когда доведу до ума интеграцию) Она сейчас вроде и работает, но много чего отсутствует для стабильной работы. Эту часть решил написать раньше, потому что я как программист не идеален и возможно знающим людям дам возможность разработать свой аналог, основываясь на моём решении.
Этот аспект как раз описан в разделе "Проблема". Zigbee девайс может быть связан только с одним координатором, а Home Assistant и Яндекс станция оба являются координаторами сети.
Здесь есть одна деталь, которая позволяет не смотреть на ток потребления - ESP по факту у нас выступает не как отдельное устройство, а как USB свисток по типу Zigbee приёмника от того же Sonoff (для интеграции zigbee2mqtt например) т.е. у нас постоянное питание от USB.
Имхо, но и не будет. Умный Дом Яндекс (УДЯ) - Самостоятельная экосистема и ей банально не выгодно (в отличии от партнерства с Aqara) делать бесплатный и свободный доступ к их главному детищу. К тому же, станции по-прежнему полноценно без серверов не умеют работать из-за технических особенностей (но станция Миди уже имеет прогресс в этом направлении)
Прекрасные интеграции, пользуюсь ими, но всё упирается в интернет (: Яндекс станции могут оффлайн давать команды только на Zigbee девайсы, которые связаны с ней.
Как раз поэтому весь код я хотел бы описать в отдельной статье, иначе тут было бы чтиво на часа полтора)
На самом деле, фреймворк от Espressiff (ESP-IDF) очень сильно упрощает это дело, но без подводных камней действительно не обошлось.
Имхо, за саму идею расширения функционала конечно молодец, но экосистема Яндекс (и многие подобные - облачные) - это игрушки и полноценный умный дом на них не сделать. С одной стороны завезли зигби и даже возможность работы оффлайн с преднастроенными сценариями, но с другой, сценарий, сложнее "если ..., то ..." экосистема не может и такие максимум годятся в управление светом и примитивными действиями. С одной стороны интеграции с разными вендорами, но с другой это кучи прокси серверов до девайса, что добавляет задержки сценариям. Реальные же сценарии для реальных умных домов - Это Home Assistant в связке с Node Red. Хотя второй тоже уже для максимальной гибкости. Тонны комьюнити плагинов к HA заводят девайсы кучи разных вендоров мало того, что в одну систему, так еще и позволяют работать оффлайн (хоть и не все).
Не поленитесь поставить Home Assistant,