Голосовое информирование о погоде в Majordomo (улучшенная версия)

Значительно улучшил старого ассистента, который рассказывал о прогнозе погоды. Теперь он может рассказать о погоде на сегодня, на завтра и на послезавтра. Также отдельно можно узнать облачно, ясно или пасмурно на улице, будут ли осадки, ветрено и какая влажность воздуха. Исходный код можно найти вот тут https://github.com/Gelezako/MajorDomo-Scenarios

Видео демострация и инструкция как настроить:

Настраиваем Amazon Alexa Echo на работу с Xiaomi Mi Light (YeeLight)

Недавно у меня был день рождения и друг подарил мне Amazon Alexa Echo. Это умная колонка, которая может распознавать речь, синтезировать её в ответ и выполнять команды по управления бытовой техникой, светом и почти любым другим умным устройством. Для совместимых устройств всё настраивается очень просто, для несовместимых нужно писать специальные связывающие модули. К счастью лампочки Xiaomi Mi Light (я покупал их тут) совместимы с Amazon Alexa Echo (можно купить тут) и нам останется только установить мужный Skill (модуль) и сделать настройки в мобильном приложении YeeLight. Смотрите видео и если будет что-то не понятно, то пишите свои вопросы, комментарии, я постараюсь помочь.

Привязываем датчик движения HC-SR501 к Majordomo

Я уже писал про говорящие датчики дыма, а в этой статье я хотел бы описать похожую реализацию, но уже с датчиком движения. На алиекспрес я купил датчик SR501 HC-SR501 вот тут всего за $2.22. Это самая дешёвая цена, которую я смог найти на момент покупки. Так же для реализации своего проекта говорящего датчика движения вам необходимо купить микроконтроллер Arduino Nano, купил я его вот тут за $2.80. Что удобно, продавец за эту цену прилагает и USB кабель для подключения к компьютеру для заливки прошивки и питания одновременно. И Ethernet шилд для передачи данных с самого датчика в сеть. Я его купил вот тут за $3.84. Итого выходит $8.86. Вы скажите, что зачем мне городить весь этот конструктор если я могу купить за теже $10 датчик движения Xiaomi. Я купил и собрал оба варианта и вот вам моя сравнительная характеристка плюсов и минусов.

Кастомный датчик своими руками.

датчик движения

Плюсы:
– работоспособность не зависит от китайского сервера
– нет жёсткой привязки по софту к экосистеме от Xiaomi
– не требует дополнительный шлюз (+$28) и полностью автономен
– данные передаются не по воздуху, а по кабелю
– возможность разобрать комплектующие и применять в других проектах
– возможность переписывать прошивку под новые проекты
– прокачка в сборке умных вещей и создание прошивок 

Минусы:
– стоимость соизмерима с готовым коммерческим решением
– нет красивого дизайна и коробки
– занимает больше места
– сложность в сборке для новичка

Датчик от Xiaomi

Плюсы:
– красивый дизайн
– соизмеримая стоимость с кастомной реализацией
– возможность быстро добавить в сценарии экосистемы Xiaomi
– лёгкость в настройке и подключение

Минусы:
– работа зависит от китайского сервера
– для работы необходим шлюз (+$28)
– если не заставили работать плагин Majordomo то датчик можно использовать исключительно в экосистеме Xiaomi (как у меня 

Если несмотря на все трудности вы всё таки решили собрать свой датчик, то читаем дальше.
Как подключать сами провода к микроконтроллеру я описывать не буду, в сети множество статей и видео на эту тему. Я же просто предложу использовать мою версию прошивки. Как она работает? Когда датчик зафиксирует движение, то значение 1 будет передано по протоколу MQTT в брокер. В своём примере я использую бесплатный сервис cloudmqtt.com, но вам настоятельно рекомендую использовать свой сервер. Например Mosquitto. В скетче, вот в этой строке

if (client.connect("Client", "login", "password"))

вам нужно будет указать свой логин и пароль к брокеру. В Majordomo у вас должен быть установлен модуль MQTT.

Его так же нужно настроить на ваш брокер указав все настройки. После этого в Majordomo будет приходит значение 1 всякий раз когда ваш датчик зафиксирует движение. В настройках модуля MQTT Majordomo, нужно приязать значение в какому-нибуть свойству, после чего вы сможете использовать его в своих сценариях. Либо вы можете сразу указать что бысрабатывал метод, как только значение измениться. А в самом методе написатьчто-то в роде:

if(gg("Kitchen.HCSR501")=='1'){
say("Зафиксировано движение",2);}
sg("Kitchen.HCSR501","0");

где Kitchen.HCSR501 имя свойства указанное в модуле MQTT куда приходит значение с датчика.
Вот и всё, если у вас возникли какие-нибуть вопросы, то задавайте в коментариях,я постараюсь ответить. Так же рекомендую посмотреть видео, ссылку на которое я оставил в самом начале поста. В нём я детально показываю всё тоже самое, но с датчиками дыма.