Добрый день, после серии моих статей про 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.serviceSHELLКОПИРОВАТЬ
Поздравляю вы получили рабочий брокер у себя на 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 уведомление с изображением с камеры. При условии что в настройках Датчика Движения включено "Доступ уведомлений"
Выгладит это так:
Режим без звука
Если взять 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 уведомления получать мы будем, но звонок не будет проигрывать мелодию. Тем самым получим "Режим без звука".
Заключение
Я думаю если бы я был злоумышленником я бы перед тем как пытаться что-то сделать сначала позвонил в звонок. В таком случае даже если мы будем находиться не дома к нам придет превью с фото преступника. И мы сможем как то отреагировать
На этом я думаю можно заканчивать, ставьте лайки, задавайте вопросы, постараюсь всем ответить.