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

02 ноября 2018, 12:14

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

Итак, нам понадобиться:




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

Блок питания на 5В.

ttl контроллер

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

Как видим схема примитивная. Справиться даже ребенок.

Приступим к программной части. Для прошивки 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 к малине и пишем в командной строке:

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 и радуемся проделанной работой.

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

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

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 добавить еще одно реле:

        {
            "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 уведомления получать мы будем, но звонок не будет проигрывать мелодию. Тем самым получим "Режим без звука". 

Заключение


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

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


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Артем Симоненко (TopGun)
    Артем Симоненко (TopGun) отредактировано 2 года назад

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

    • Дмитрий Батюшин (ReD)
      Дмитрий Батюшин (ReD) 2 года назад

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

    • Дмитрий Батюшин (ReD)
      Дмитрий Батюшин (ReD) 2 года назад

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

      • Артем Симоненко (TopGun)

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

  2. Артур Минасян (aptyp222)
    Артур Минасян (aptyp222) 2 года назад

    драйвера для eps01S 

  3. Vladislav Volchkov (vladislav_volchkov)

    Годнота

  4. Александр Шотиди (Grek)

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

    • Александр Шотиди (Grek)

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

  5. Александр Шотиди (Grek)

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

  6. (nusf)
    (nusf) 2 года назад

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

  7. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано 2 года назад
    Комментарий удален
  8. Alex Khmelenko (Outsiderz)
    Alex Khmelenko (Outsiderz) 2 года назад

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

  9. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано 2 года назад

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

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

  10. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано 2 года назад

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

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

  11. Дмитрий Крылов (DKrylov)

    mega-20181101

  12. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано 2 года назад

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

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

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

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

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

    с этой прошивкой https://github.com/RavenSystem...

    Из минусов не работает камера так-как в настройках выбран Lock Mechanism но уведомления приходят без пропусков и задержек

    1000x_image.jpg?1552739109
    • (DenisZagitov)
      (DenisZagitov) год назад

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

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

    • Дмитрий Брылев (fuzytsfcrew)
      Дмитрий Брылев (fuzytsfcrew) отредактировано 7 месяцев назад

      Так можно ж после прошивки НАА в 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}]}]}

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

  13. Карен  Закарян (Karen)
    Карен Закарян (Karen) отредактировано 2 года назад

    Ранее......

    В одной комнате находятся Датчик Движения и Камера, Но при обнаружении движения(звонка в дверь) 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",

    • (daemon-57)
      (daemon-57) год назад

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

  14. Илья Яшин (yshinig)
    Илья Яшин (yshinig) отредактировано 2 года назад
    Комментарий удален
  15. (alexintras)
    (alexintras) год назад

    Сделал всё, "как мастер велел" используя 01S Relay 2 Channel. Статусы в HomeBridge отображаются, push-ы приходят, вообщем всё работает, вот только реле гады не включаются :((
    Причем когда ставлю старую прошивку (ESP_8266_BIN0.92.bin, от 2014 года) и использую убогую прогу "wifi controller" на андроиде, то оба они щелкают по команде!!
    Пожалуйста, помогите, что может быть не так??

  16. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано год назад

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

    Точное описание по ссылке https://github.com/KhaosT/home...

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

  18. (hors)
    (hors) 11 месяцев назад

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

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

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

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

  19. (jestergrid)
    (jestergrid) отредактировано месяц назад

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

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

    • Дмитрий Батюшин (ReD)
      Дмитрий Батюшин (ReD) месяц назад

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

      • (jestergrid)
        (jestergrid) месяц назад

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

        • (jestergrid)
          (jestergrid) 20 дней назад

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

К списку статей

Устройства в материале

Raspberry Pi 4

Производитель: Raspberry Pi
Заказать на:

ESP8266 NodeMcu v3

Производитель: Espressif Systems
Заказать на:
JD

Модуль реле на 2 канала

Производитель: noname
Заказать на:

Тематические чаты

DIY

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
22 октября 2018, 19:00
Сборка DIY Лабораторного блока питания из китайских модулей
29 октября 2019, 07:59
Умный домофон на базе nodeMCU с прошивкой ESPHome.
09 ноября 2020, 19:03
В статье я расскажу о том, как сделать ваши рулонные, в том числе и кассетные шторы, чуточку умнее. Дам ссылки на дешевые аккумуляторные моторы. Расскажу про способы трансляции сигналов 433Мгц в MQTT. И продемонстрирую много фотографий решения и немного видео.