Статья

Умный дверной звонок с Apple HomeKit на базе ESP01

Добрый день, после серии моих статей про ESP ко мне в личку поступило много вопросов по поводу того как сделать Звонок. Сегодня я расскажу как просто и дешево сделать звонок с уведомлениями в HomeKit, через Homebridge или HomeAssistant. Идеально на роль контроллера подойдет ESP01 с его родным Модулем реле 01S Relay, зачастую на Aliexpress продаются вместе. Итак, нам понадобиться:

ESP01
 01S Relay
Проводной звонок, подойдет абсолютно любой

Приступим к сборке

Как видим схема примитивная. Справиться даже ребенок.Приступим к программной части. Для прошивки ESP01 нам необходимо подключить ее к контроллеру TTL. Схема подключения:

TTL контроллеры для ESP01 - для совсем ленивых. 

Программная часть

Первым делом установим MQTT Брокер на Raspberry PI. Подключаемся по SSH к нашей Raspbery pi и далее в терминале 

sudo apt update sudo apt install -y mosquitto mosquitto-clients

Во время установки Вам потребуется ввести "Y" и нажать "Enter"

sudo systemctl enable mosquitto.service

Поздравляю вы получили рабочий брокер у себя на Raspbery Pi

Приступим к прошивке ESP8266

Идем по ссылке и качаем самый свежий образ. На момент написания статьи ESPEasy_mega-20181101.zip. Распаковываем архив. Нам понадобиться ESP.Easy.Flasher.exe запускаем ее. И выбираем как на фото ниже вписав свой SSID и пароль роутера. 

Нажимаем "Flash ESP Easy FW" и ждем окончания процесса прошивки. После прошивки ESP сама подключиться к вашему Wi-Fi роутеру. 

Настройка ESP Easy

В настройках роутера смотрим IP адрес нашей ESP и открываем ее. 

Открываем раздел "Config" Вводим Unit Name: "Zvonok" и нажимаем "Submit"

Далее открываем "Controllers" и нажимаем "Edit" Выбираем Протокол: OpenHAB MQTT, вписуем Controller IP: IP адрес малины (Брокера) и порт 1883 и нажимаем "Submit"

Переходим на вкладку "Devices" нажимаем "Edit" и заполняем все как на скриншоте.

На этом настройка Esp Easy закончена, перейдем к добавлению в HomeKit, добавить можно двумя способами.

Способ №1 через HomeBridge

Установим и настроем Plugins Homebridge  Я использую homebridge-mqttthing, он мне нравиться больше всех своей простотой и большим количеством поддерживаемых устройств.Подключаемся по SSH к малине и пишем в командной строке:

bash
Копировать
sudo npm install -g homebridge-mqttthing

далее nano ~/.homebridge/config.jsonи добавляем аксессуары в конфиг:

bash
Копировать
        {
            "accessory": "mqttthing",
            "type": "motionSensor",
            "name": "Zvonok",
            "url": "mqtt://127.0.0.1",
            "username": "admin",
            "password": "admin",
            "topics": {
                "getMotionDetected": "/Zvonok/Relay/Switch"
            },
            "integerValue": "true",
            "onValue": "1",
            "offValue": "0"
        }

Перезагружаем homebridge и радуемся проделанной работой.

Способ №2 через Home Assistant

Тут еще проще, для настройки нам необходим отредактировать файл configuration.yaml, добавив в него:

auto
Копировать
binary_sensor:
  - platform: mqtt
    name: "motionesp"
    state_topic: "/Zvonok/Relay/Switch"
    payload_on: "1"
    payload_off: "0"
    device_class: motion
    force_update: false

mqtt:
  broker: localhost
  port: 1883
  protocol: 3.1
  discovery: true

После чего перезагрузить Home Assistant.

Вишенка на торте =)

Многие наверно задались вопросом почему мы кнопку "Звонка" объявили "Датчиком Движения"?!...Сделано это было специально т.к. если в HomeKit в одной комнате находятся Датчик Движения и Камера, то при обнаружении движения HomeKit шлет нам push уведомление с изображением с камеры. При условии что в настройках Датчика Движения включено "Доступ уведомлений"

Выгладит это так:

На заблокированном телефоне
На заблокированном телефоне если развернуть уведомление 
В приложении HomeKit

Режим без звука

Если взять 01S Relay 2 Channel, то можно добавить еще и режим без звука.

Схема будет выглядеть так: 

где: Relay1 - объявлен как в предыдущем варианте Датчиком ДвиженияRelay2 - Свитч разрывает замыкание звонка При желании ESP можно разместить в самом звонке, и питать от одного Блока питания. В настройках ESP Easy добавить второе реле, по аналоги с первым, обзываем его "Relay2" и указать ему gpio2, а в конфиг Homebridge добавить еще одно реле:

json
Копировать
        {
            "accessory": "mqttthing",
            "type": "lightbulb",
            "name": "Zvonok Tixo",
            "url": "mqtt://127.0.0.1",
            "username": "admin",
            "password": "admin",
            "topics": {
                "getOn": "/Zvonok/Relay2/Switch",
                "setOn": "/Zvonok/gpio/2"
            },
            "integerValue": "true",
            "onValue": "0",
            "offValue": "1"
        },

После чего в HomeKit у нас появится "Zvonok Tixo". Таким образом если переключатель "Zvonok Tixo" в состояние "Выключен" push уведомления получать мы будем, но звонок не будет проигрывать мелодию. Тем самым получим "Режим без звука". 

Заключение

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


А если звонок на 220 в? То как быть? Если я в вашей схеме в место кнопки поставлю контактор, а сам контактор будет уже подключен к звонку(кнопке, при нажатии на которую на проводах появляется ток)?

Все получиться только зачем контактор щёлкает громко, лучше маломощное реле 220в

Можете посоветовать?

поискав реле в гугле их достаточно, вообще как бы вы не делали будет работать главное чтоб контакты на ESP замыкались, а то через что вы будете это делать уже не важно. Только вот сижу голову ломаю а для чего вам замыкать именно 220В линию? можно ведь отключить 220 и просто замыкать есп.

Да такой звонок уже шел с квартирой и кнопка стоит и звонок, как бы уже готовое решение, если бы кв. Была на стадии стройки тогда да. Единственная терь проблема где взять питание на esp. В данном случае думаю вариант Maxmudjon мне больше подойдет с кнопкой xiaomi. 

01S Relay 10a 220v

Годнота

Пытаюсь повторить , но  не удается прошить  после старта прошивки  вылетает пишет что ошибка чтения (TTL контроллеры для ESP01) не подскажешь куда смотреть ?

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

а гпио0 замыкал на гнд?

Да чего только не замыкал , я погуглил , говорят проблемы с этим прошивальщиком , то ли ему USB 3 не нравится то ли драйвер нужно какой то другой на 10 винду , сходу решение не нашел  и  оставил на потом . Обычным прошивается все  без проблем.  Кстати я купил немного не тот релейный блок , пришлось немного паяльником поработать , но сейчас все работает ! 

Напиши в личку помогу

ок, 3 го до дома доберусь напишу.

Добрый день, подскажите пожалуйста как прошить Esp8266 на MacOs, чтобы получить такой-же результат? Спасибо



что-то пошло не так, неработает 

2000x2000x_image.png?1548908541

А как сделать тоже самое но когда звонят в домофон?? Когда в квартире звонить трубка домофона

Не понял, объясни подробнее 

через реле

Возможно ли сделать звонок на 220в из Sonoff Basic или ESP01+01S Relay без использования Homebridge?


Как в этой статье (https://sprut.ai/client/article/231">https://sprut.ai/client/articl...)

Можно попробовать прошивку налива собрать, что ДД добавился в кит 

Собрал звонок на 220в 


Звонок работает как положено но уведомления приходят со второго-третьего нажатия при условии что звонок и IPhone находятся в одной сети WiFi


Это на какой прошивке? Esp easy? 

mega-20181101



По такой схеме на мой взгляд было-бы интереснее


1) Не надо блок питания


2) Все в компактном корпусе


3) Звонок можно воткнуть любой на 220 или с минимальными переделками на батарейках

4)  Сразу в Homekit  малина не нужна

с этой прошивкой https://github.com/RavenSystem/esp-homekit-devices/wiki/RavenCore#8-garage-door">https://github.com/RavenSystem...

Из минусов не работает камера так-как в настройках выбран https://github.com/RavenSystem/esp-homekit-devices/wiki/RavenCore#13-lock-mechanism">Lock Mechanism но уведомления приходят без пропусков и задержек

1000x_image.jpg?1552739109

Повторил предложенную тобой схему - работает) Есть ньюанс: что бы пришло уведомление, надо давить на кнопку около секунды. При кратковременном нажатии звонок срабатывает, но уведомление не летит :(

P.S. кнопку звонка продублировал как датчик движения и, собственно, сам "external toggle".

Так можно ж после прошивки НАА в JSON конфигурации указать сонофу 2 устройства (Дверной звонок - тип 13 и свич для реле). В настройках кнопки на все три значения (нажатие/двойное нажатие/удержание) написать автоматизацию преобразованной в быструю команду - вкл реле->подождать 3-5 сек для звонка->выкл реле.


Для Sonoff Basic JSON выглядит так:


{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{
"t": 13,
"f0": [{ "g": 14, "t": 1 }],
"f1": [{ "g": 14, "t": 2 }],
"f2": [{ "g": 14, "t": 3 }]
},{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0}]}]}

Как дойдут руки - проверю все вживую с камерой установленной в коридоре и отпишусь)

Уведомления о звонке приходят, но без картинки с камеры(

Ранее......


В одной комнате находятся Датчик Движения и Камера, Но при обнаружении движения(звонка в дверь) HomeKit шлет push уведомление НО без изображения с камеры. В настройках Датчика Движения включено "Доступ уведомлений"


Решение!!!


"platform": "Camera-ffmpeg",


"cameras": [ {



"name": "Cams",


"videoConfig": {


"source": "-re -i rtsp://admin:asfssdf@192.168.1.41:554/Streaming/ch01/101",


"stillImageSource": "

-i rtsp://admin:asfssdf@192.168.1.41:554/Streaming/ch01/101

-vframes 1 -r 1",


"maxStreams": 2,


"maxWidth": 1280,


"maxHeight": 720,


"maxFPS": 30


} }

 в строке 

stillImageSource  должно повторяться из строки

source  с приставкой 

 -vframes 1 -r 1 

в моем случае это выглядит так 

"stillImageSource": " -i rtsp://admin:asfssdf@192.168.1.41:554/Streaming/ch01/101 -vframes 1 -r 1",


Добрый день! сделал поправку, как в этом комментарии, но ничего не изменилось. есть решения еще по этой проблеме?

Дим подскажи что написать в HA, что бы добавить звонок ???

Сделал всё, "как мастер велел" используя
01S Relay 2 Channel. Статусы в HomeBridge отображаются, push-ы приходят, вообщем всё работает, вот только реле
гады

не включаются :((


Причем когда ставлю старую прошивку (ESP_8266_BIN0.92.bin, от 2014 года) и использую убогую прогу "wifi controller" на андроиде, то оба они щелкают по команде!!
Пожалуйста, помогите, что может быть не так??



Для того, чтобы в iOS 13 приходили фотки надо в конфиге добавить  "motion": true, и в приложении Дом на iphone сделать автоматизацию


Точное описание по ссылке https://github.com/KhaosT/homebridge-camera-ffmpeg/wiki/iOS-13-and-Photo-Notifications">https://github.com/KhaosT/home...

к сожалению не одно из модификаций в моем случае не сработало.
вид rtsp rtsp://192.168.XX.XX:554/user=user&password=password&channel=1&stream=0.sdp?
есть идеи?

мне помог ресурс https://www.ispyconnect.com/camera/active">https://www.ispyconnect.com/ca... там огромный список камер и возможных способов подключенияhttps://www.ispyconnect.com/camera/active">

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

как сделать аналогичное уведомление о состоянии пина в Телеграм 

например перейти по ссылке 

api.telegram.org/bot49891331:AAGHlv59YtCnbzfENdlqCXmHqye0L0h9xE/sendmessage?chat_id=44969854&text=Test

Пытаюсь повторить, но столкнулся с проблемой, esp-шку я прошил прошивкой из указанной ссылки, произвел настройку, в mqtt-брокере топик появился и при нажатии на кнопку у Relay изменяется значение State c нуля на единицу. В homebridge плагин mqttthing установлен и так же настроен по приведенным примерам выше. В homekit'е аксессуары появились, разместил их в одной комнате, но уведомления по нажатию кнопки не приходят... подскажите куда копать?


PS прочитав комментарии наткнулся на инструкцию для ios13 , прописал в камере motion true и другие параметры

это эпл внесла правки, теперь чтоб все также работало нужно чтоб был аксессуар звонок

а как это сделать не подскажите?, в смысле это можно сделать программно или нужно что то прикупить из аксессуаров типо кнопки от xiaomi ?

Отвечу на свой же вопрос, в моём случае все заработало без аксессуара "Звонок" с помощью плагина для камер "homebridge-camera-ffmpeg". В параметрах данного плагина имеются настройки mqtt и возможность включения датчика движения, дверного звонка и обычного переключателя. Включил Enable Doorbell указал какой топик слушать и при каком значении необходимо срабатывать, готово, на телефон приходит уведомление с видео (в уведомлении проигрывается видео и отображаются рядом размещенные приборы умного дома в пределах комнаты)


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