Статья

Голосовые уведомления через Xiaomi Gateway, Home Assistant и HomeKit

Введение

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

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

Требования

Home Assistant
Xiaomi Gateway 2 (с полученным ключом в режиме разработчика)Apple HomeKit

Настраиваем Home Assistant

Вам нужно добавить 4 строчки кода в ваш configuration.yaml:

xiaomi_aqara: gateways: - mac: key:

Мак адрес вставляем без двоеточий.

Ключ берем из модифицированного VEVS  для андроида.

Далее, если у вас вдруг нет компонента HomeKit, то внизу вашего конфига (configuration.yaml) ставим: 

homekit:

Добавляем скрипт для того, чтобы сделать аудиосообщение выключателем в HomeKit

В ваш scripts.yaml нужно добавить:

script: sequence: - service: xiaomi_aqara.play_ringtone data: gw_mac: Вставляем свой MAC (без двоеточий) ringtone_id: 10001 (Это ID кастомных рингтонов в Mi Home - начинаются с 1001 ID) ringtone_vol: 70 (Громкость от 0 до 100)

Если выключателей будет несколько, то копируем скрипт и вставляем его ниже, изменяя имя на script1, script2 и так далее.
Скрипт помог написать (Муслим) @axyskus , большое ему спасибо!

Не забудьте перезагрузить HA

Добавляем свои аудиофайлы в Mi Home

  1. Заходим в Mi Home.
  2. Кликаем по хабу.
  3. Дополнительные операции.
  4. Нажимаем в самом верху "Авто".
  5. Дверной звонок.
  6. Кликаем на Тональный сигнал дверного звонка.
  7. Добавить мелодию.
  8. Записываем аудио, можно использовать бесплатный сервис для синтезирования голоса от Яндекса.

Каждому аудиофайлу присваивается свой ID, начиная с 10001 и далее (если вдруг вы уже добавляли какой-то аудиофайл на хаб, вы можете попробовать начать с 10002 или 10003, к примеру, и так далее.)

Интеграция с Apple HomeKit и настройка аудиоуведомлений

В HomeKit у вас появился выключатель с именем script , попробуйте нажать на него и вы услышите только что записанный в Mi Home звук.

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

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

Примеры использования:

У меня настроено 7 уведомлений

  1. Когда я прихожу домой днем, то хаб приветствует меня.
  2. Когда я прихожу домой вечером.
  3. Когда девушка приходит домой днем.
  4. Когда девушка приходит домой вечером.
  5. Когда умные шторы не могут закрыться из-за какого-то препятствия.
  6. Когда трогают некоторые кнопки, которые нельзя трогать, хаб также сообщает о том, что эти выключатели нужно вернуть в обратное положение.
  7. Когда снимаю свою беспроводную камеру с зарядки или же ее кто-то пытается украсть (использую для этого датчик открытия/закрытия двери, приклеенный к стене и к камере).

Заключение

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

Пример использования:


Огромное спасибо!

 Даже не подозревал о такой классной возможности. Каждый раз синтезировать сообщение это конечно круто, но порой этот вариант будет и проще и востребованней. Тоже есть лампочки типа на чердаке, которые не видно, что горят. А так можно ругнуться, что зря дети не щелкали 😁

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

многое из реплик записал малышей, прикольно звучат

какие идеи кто внедрил поделитесь

И много всяких саундов в шлюзе помещается ?

Ну вот судя по комментарию выше +-12 саундов записалось, я пока больше 8 не записал еще, но в целом думаю потом развивать буду эту тему, если упрусь когда-нибудь то тут отпишу в комментариях. Где-то по-любому есть документация по этому функционалу, так как он по сути своей то родной.

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

100, но есть проблема, они не удаляются с хаба. Если залили звук, а потом удалили и заново перезалили, он не станет на место старого, его айдишник изменится в сторону увеличения, например 10050 был, станет 10051. При полном заполнении памяти мелодий, только полный сброс хаба. Давно использую данную функцию на хабе, 2 раза уже сбрасывал хаб, пока не пришел к более осмысленному заливанию мелодий. Так же мелодию надо заливать в 2 канальном режиме сжатия в mp3, если в одноканальном, оно будет проигрываться в ускоренном темпе. 

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

подскажите пожалуйста как получить MP3 именно в  "Так же мелодию надо заливать в 2 канальном режиме сжатия в mp3"



Я использую этот https://online-audio-converter.com/ru/">сайт. Настройки можно подсмотреть на скрине. С качеством и другими параметрами можно попробовать поиграть, но каналы обязательно в 2 оставить. Так же следует учитывать, что в хабе памяти не шибко много, и тяжелые мелодии плохо загружаются, идеяльно +\- 150-250кб на каждую мелодию, но можно и метровую попробовать втулить 😂

https://sprut.ai/static/media/cache/00/24/73/5/5021979/66153/1000x_image.jpeg?1600099706" alt="1000x_image.jpeg?1600099706" />

Благодарю вас сударь:-) А то я задолбался уже слушать то что я туда накачал раньше по глупости, половина мелодий играют намного быстрее чем положено, я все искал в чем тут подвох.   блин придется скидывать шлюз к заводским настройкам у меня сто пудов там места не осталось я же туда песенки целиком пытался грузить и никак не думал что удалить потом нельзя:-(  Вот правда настраивать все снова на шлюзе после сброса меня немного останавливает:-)

Подобный кейс имеет место быть. Я думал о подобной реализацией года 2,5 назад, но в последствии понял, что это все выглядит уж слишком "узко". Поэтому, что бы не плясать с подобными бубнами и картонными картинками, нужно воспользоваться Google Mini - рекомендую. Но, а для начинающих и желающих, слышать "голос" своего -тупого- умного дома, прям маст хеф!

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

А что ты вкладываешь в понятие "нужное аудио"? Ассистент тебе может читать твой произвольный текст, в чем его и прелесть...

Никак не заставить. Пока, может позже будет возможность.

Не заставить кого?

Отличная статья, сразу идей столько =)

Через Yandex SpeechKit записал аудио, сохранил их в формате OGG на телефон.


Пытался добавить аудио в хаб, но в диалоге "Музыка" файлов нет. Возник резонный вопрос, или OGG не поддерживается, или я не туда куда нужно положил файлы аудио.


В итоге конвертировал OGG в mp3, аудио добавилось в хаб без проблем.


Спасибо за крутую инструкцию!

UPD. В файле script.yaml после строки "data:" нужно в каждой строке добавить сдвиг (табуляцию), иначе будет ошибка.

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

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

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

во блин как меня расперло, прочел свой текст и аж сам удивился )))

Расскажите а как можно бесплатно голос такой записать?

Перечитайте внимательно пункт : 

Добавляем свои аудиофайлы в Mi Home

Там есть гиперссылка на Яндекс. 

Я http://5btc.ru/voice/">здесь себе позаписывал. Там много голосов есть и даже выбор интонации)

Таких сайтов много, вот еще один https://voxworker.com/ru">https://voxworker.com/ru , на русском языке они все плюс минус одинаково озвучивают, а вот с украинским или белорусским беда.

Можно например воспользоваться данным сайтом

https://apihost.ru/">https://apihost.ru/

Вот есть хороший вариант https://voicebot.su">https://voicebot.su

Кто хочет в Domoticz такой функционал реализовать посмотрите https://domoticzfaq.ru/%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B2-domoticz-xiaomi-gateway-2/">тут в конце есть скрипт рабочий.

Подскажите пожалуйста


Как наиболее точно реализовать понимание системой что в квартиру пришёл конкретный человек или гость


я использую связку homeassistant + node red + homekit

Попробуйте по присутствию в сети wifi мобильного устройства, либо через сервис LIFE360

спасибо
я буду использовать и то и то

класс, а можно как то на homebridge реализовать что то подобное?

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

Сбой загрузки файла. Что только не делал. Менял битрейт и названия. Продолжительность и wifi сети! С микрофона грузит в хаб без проблем а вот файл закачать никак!

Заливка своего звукового файла в хаб работает только если он подключен в регион Китай. Кажется так.

Естественно Китай. Без Китая вообще ничего не работает. 

"Ничего не работает" - это про что? Свои звуковые файлы удалось залить?



ps. У меня все на регионе Россия, потому что я естественно использую vevs/kapiba версию Mihome. Стоковая китайская версия идет лесом. Но вот для заливки звуковых файлов придется на некоторое время переключить хаб на Китай.

любая версия михом хоть от вевса хоть от pda/ перключение хаба и михом на любую страну в том числе и китай/ резутата нет 

Запишите просто через микрофон , если мучаетесь. Качество звука все равно ужас , разницы не будет. 

Такая же фигня. Китай/Россия, два разных хаба (старый и новый не использовавшийся, все второй версия, Китай), плагин для хаба родной и от EDA. разное качество файлов - все не грузятся. Попробовал и на версии Mihome 5.8.22 и старой, 5.6.39

Можно через php-miio, php miio-cli.php --ip  xxxx --token xxxx  --sendcmd '{"id":1,"method":"download_user_music","params":["1001","http://10.0.1.11:8000/Desktop/LeakWC.aac"]}'.

Подробнее https://4pda.ru/forum/index.php?showtopic=794186&st=6120#entry74920090">https://4pda.ru/forum/index.php?showtopic=794186&st=6120#entry74920090 Через плагин нодереда также можно воспроизвести нужный звук.

Здравствуйте! 

Home Assistant 0.115.6, 

HassOS 4.13, 



docker_version19.03.11


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


Logger: xiaomi_gateway
Source: /usr/local/lib/python3.8/site-packages/xiaomi_gateway/__init__.py:432
First occurred: 9:44:05 (2 occurrences)
Last logged: 9:44:05


Got error element in data {"error":"Invalid key"}


Подскажите как исправить?

Подскажите, после обновления MiHome пропала возможность загружать свои звуки на шлюз или она есть но где то спрятана? 

Записал свои звуки. Как узнать id рингтона?

Как записал рингтон? у меня в MiHome можно только записать с микрофона 🤷♂️

перебери в ручную, начиная с 10001


Вернуться назад

Устройства


Xiaomi

Xiaomi Mijia Gateway 2

(11 отзывов)

Вернуться назад