Добрый день, после серии моих статей про ESP ко мне в личку поступило много вопросов по поводу того как сделать Звонок. Сегодня я расскажу как просто и дешево сделать звонок с уведомлениями в HomeKit, через Homebridge или HomeAssistant. Идеально на роль контроллера подойдет ESP01 с его родным Модулем реле 01S Relay, зачастую на Aliexpress продаются вместе.
Итак, нам понадобиться:
Приступим к сборке
Как видим схема примитивная. Справиться даже ребенок.
Приступим к программной части. Для прошивки ESP01 нам необходимо подключить ее к контроллеру TTL.
Схема подключения:
Программная часть
Первым делом установим 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
Нажимаем "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
Я использую homebridge-mqttthing, он мне нравиться больше всех своей простотой и большим количеством поддерживаемых устройств.
Подключаемся по SSH к малине и пишем в командной строке:
sudo npm install -g homebridge-mqttthing
далее nano ~/.homebridge/config.json
и добавляем аксессуары в конфиг:
{
"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 и радуемся проделанной работой.
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 уведомление с изображением с камеры. При условии что в настройках Датчика Движения включено "Доступ уведомлений"
Выгладит это так:
Режим без звука
Если взять 01S Relay 2 Channel, то можно добавить еще и режим без звука.
Схема будет выглядеть так:
где:
Relay1 - объявлен как в предыдущем варианте Датчиком Движения
Relay2 - Свитч разрывает замыкание звонка
При желании ESP можно разместить в самом звонке, и питать от одного Блока питания.
В настройках ESP Easy добавить второе реле, по аналоги с первым, обзываем его "Relay2" и указать ему gpio2, а в конфиг Homebridge добавить еще одно реле:
{
"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
драйвера для eps01S
Годнота
Пытаюсь повторить , но не удается прошить после старта прошивки вылетает пишет что ошибка чтения (TTL контроллеры для ESP01) не подскажешь куда смотреть ?
Вот это самый прошивальшик для ленивых ну никак не завелся у меня (( Прошил обычным , все работает сейчас закончу тесты и буду в домофон прилаживать !
а гпио0 замыкал на гнд?
Да чего только не замыкал , я погуглил , говорят проблемы с этим прошивальщиком , то ли ему USB 3 не нравится то ли драйвер нужно какой то другой на 10 винду , сходу решение не нашел и оставил на потом . Обычным прошивается все без проблем. Кстати я купил немного не тот релейный блок , пришлось немного паяльником поработать , но сейчас все работает !
Напиши в личку помогу
ок, 3 го до дома доберусь напишу.
Добрый день, подскажите пожалуйста как прошить Esp8266 на MacOs, чтобы получить такой-же результат? Спасибо
А как сделать тоже самое но когда звонят в домофон?? Когда в квартире звонить трубка домофона
Не понял, объясни подробнее
Возможно ли сделать звонок на 220в из Sonoff Basic или ESP01+01S Relay без использования Homebridge?
Как в этой статье (https://sprut.ai/client/articl...)
Можно попробовать прошивку налива собрать, что ДД добавился в кит
Собрал звонок на 220в
Звонок работает как положено но уведомления приходят со второго-третьего нажатия при условии что звонок и IPhone находятся в одной сети WiFi
Это на какой прошивке? Esp easy?
mega-20181101
По такой схеме на мой взгляд было-бы интереснее
1) Не надо блок питания
2) Все в компактном корпусе
3) Звонок можно воткнуть любой на 220 или с минимальными переделками на батарейках
4) Сразу в Homekit малина не нужна
с этой прошивкой https://github.com/RavenSystem...
Из минусов не работает камера так-как в настройках выбран Lock Mechanism но уведомления приходят без пропусков и задержек
Повторил предложенную тобой схему - работает) Есть ньюанс: что бы пришло уведомление, надо давить на кнопку около секунды. При кратковременном нажатии звонок срабатывает, но уведомление не летит :(
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",
Добрый день! сделал поправку, как в этом комментарии, но ничего не изменилось. есть решения еще по этой проблеме?
Сделал всё, "как мастер велел" используя 01S Relay 2 Channel. Статусы в HomeBridge отображаются, push-ы приходят, вообщем всё работает, вот только реле гады не включаются :((
Причем когда ставлю старую прошивку (ESP_8266_BIN0.92.bin, от 2014 года) и использую убогую прогу "wifi controller" на андроиде, то оба они щелкают по команде!!
Пожалуйста, помогите, что может быть не так??
Для того, чтобы в iOS 13 приходили фотки надо в конфиге добавить "motion": true, и в приложении Дом на iphone сделать автоматизацию
Точное описание по ссылке https://github.com/KhaosT/home...
вид rtsp rtsp://192.168.XX.XX:554/user=user&password=password&channel=1&stream=0.sdp?
есть идеи?
Подскажите пожалуйста
как сделать аналогичное уведомление о состоянии пина в Телеграм
например перейти по ссылке
api.telegram.org/bot49891331:AAGHlv59YtCnbzfENdlqCXmHqye0L0h9xE/sendmessage?chat_id=44969854&text=Test