Найти в Дзене
Alex Smart Home

Голосовое управление в open source умном доме

Оглавление

На самом деле если использовать собственную систему умного дома, то становится довольно сложным в принципе сделать управление с помощью голоса, то есть умные колонки конечно интегрируются с разными системами, но они практически все не могут нормально интегрироваться с системами умного дома, который является open source, потому что в принципе производителем не очень это выгодно и конечно они всячески стараются это обойти, чтобы реально не делать себе какую-то конкуренцию, потому что конечно они все-таки довольно больше гибкие, они позволяют всячески интегрироваться с другими системами, и с теми же фирменными решениями и экосистемами, поэтому например та же система умного дома Яндекса сразу получит большого конкурента если она начнет интегрироваться с другими.

На самом деле я использую две системы умного дома это Home Assistant и OpenHab, ну причем я фактически использую их в качестве интеграции, потому что когда я начал использовать OpenHab я его сразу пробовал привязать к системе умного дома от Яндекса.

Home Assistant

Home Assistant когда начал использовать, то уже больше в нем было возможности подключать разные системы существующие у нас, то есть это например можно принципе сделать не очень сложно интеграцию с Tuya, но на самом деле достаточно сложно, нужно получать специальный ключ разработчика и тогда получится привязать аккаунт или можно подключать другие экосистемы, но в целом в принципе получается тоже не очень просто.

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

OpenHAB

Вообще конечно не очень понятно поскольку этот open source, сколько времени будет автор поддерживать это решение, как долго будет Яндекс позволять с помощью разных обходных решений подключаться к своей экосистеме, поэтому полностью доверяться этому решение наверное не стоит и не получится, и все-таки нужно искать другие какие-то варианты когда я начал использовать систему Openhab, то в ней было в принципе практически, можно сказать официально, возможность интеграции, это было решение которое позволяло в принципе пробрасывать устройство из Openhab в Яндекс, понятно что это все-таки внешний сайт и никто не может гарантировать сохранение каких-то данных и паролей и допустим, чтобы там не логировалось какая-то работа системы умного дома, но по крайней мере она раньше работала, сейчас оно отключено и там уже не получится нормально подключиться, интегрироваться, и нужно искать какое-то другое решение, которое позволит все-таки связать OpenHab и систему например от Яндекса.

Что касается вообще других экосистем, вообще у них такой направленности нет, да и самим разработчикам это не очень интересно как-то интегрироваться с этими системами, другими, потому что это достаточно сложно, это решение может быть плохо документировано и постоянно меняется и развивается и конечно любое изменение означает что надо срочно переделывать интеграцию, сам модуль который отвечает за эту интеграцию с системами, и например Яндекс, он тоже довольно часто и интенсивно развивает, но сколько уже довольно давно это решение работает и документации в принципе очень много, но она может быть не везде актуальна, я с этим сталкивался когда пытался тоже это настраивать и использовать, но большому счету пока оно работает и пока это наверное единственное решение, которое позволяет довольно просто интегрироваться.

Когда я делал интеграцию с системой умного дома Яндекса через OpenHAB, там принципе есть некоторые правила как это оформляется, то есть это нужно специально в OpenHab прописать параметры устройств, их специально назвать, разбить специально по комнатам, и тогда они смогут прокидываться в систему Яндекса, но там поддерживалась только минимум функций, это просто включение или выключение, и также поддерживается тип устройства, это как выключатель или это лампочка, то есть если это лампочка, тогда командами Свет можно включать или включать в системе умного дома Яндекс, если это выключатель тогда нужно просто напрямую говорить включить такой-то выключатель или розетку, тогда только будет срабатывать.

Мне пришлось фактически делать полностью свою систему, сначала яЯ использовал навыки Яндекса это принципе такое открытое решение, которое можно настроить под себя была, но проблема такая, что нужно прежде чем начинать включать или выключать, например свет, нужно сначала было запустить этот навык, но есть возможность сделать некоторые специальные команды которые позволят запустить навык сразу, но это получается довольно длинная фраза, которую нужно произносить и все равно если фразу сказал, то после этого навык уже становится запущенным и например другие команды Яндекс уже не будет воспринимать, нужно будет выходить из навыка.

Умный дом Яндекс

Но и в принципе для обработки навыка есть очень довольно жесткие условия что-то должен быть внешний сайт, на котором поднят https, нужно покупать SSL-сертификат, он стоит больше 3000 сейчас на год, и еще оплачивать разные домены для этого подключения, что принципе довольно накладно получается, ну и в принципе этот навык тоже сделать публичным довольно сложно, нужно проходить модерацию, там правильно прописывать как он будет работать, как будет он взаимодействовать и как там будет аутентификация проводиться, поэтому в целом это решение стало не нужным, когда Яндекс отдельно уже выпустил Умный дом, это в принципе работает по такой же схеме как и навыки, но это некоторый такое специальный навык, который позволяет именно управлять устройствами, и когда его подключаешь, то по сути нужно то же самое все сделать, что и для обычного навыка, но придется дополнительно еще обрабатывать многие команды, которые специфичны то есть это специальные форматы устройств, это специальные варианты ответов на запросы от системы умного дома, но когда настроишь тогда уже Яндекс и умные колонки видят эти устройства и могут выполнять команды и отправлять в систему умного дома команды для этих устройств.

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

Лайфхак

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

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

Свое решение я пока не тиражируют, то есть оно у меня разработано, в принципе если нужно будет кому-то я конечно предоставлю ссылку пробовать, поэкспериментировать, но сейчас пока я использую OpenHAB и интеграцию с Яндексом только для себя.

DAY 1596 _ голосовое управление в open source умном доме
DAY 1596 _ голосовое управление в open source умном доме

Посмотреть видео