Приобрести звонок можно тут:
Aliexpress: https://shp.pub/74jwfm?erid=2SDnjcVfvuz
Яндекс Маркет: https://shp.pub/74jwhr?erid=2SDnjdN5WVi
Введение:
У Linptech есть интересный звонок, который состоит из двух частей. Основная часть в которой находится контроллер, который управляет воспроизведением мелодий, подключением по wifi к сети и подключению к умному дому. И ответная часть – кнопка, которая подаёт сигнал на основную часть на частоте 433mhz. И что примечательно, эта кнопка не требует батареек, она работает за счет кинетической энергии. Во время нажатия на кнопку, создаётся небольшой ток, которого хватает для того, чтоб кнопка отправила сигнал на основное устройство.
Таких звонков существует 3 вида. Первый вид самый дешевый и самый простой. Он не подключается ни к какому умному дому и wifi конечно-же у него нет.
Второй вид это звонок который подключается к умному дому Tuya. Внутри такого стоит контроллер туя и он нам для того, чтоб подружить его с Home Assistant не подходит.
Ну и третий вид, это звонок подключающийся к умному дому MiHome. Вот внутри такого стоит контроллер esp32, который можно прошить в ESPHome и подружить с Home Assistant. Чем сегодня и займёмся.
Примечательно, то что 3 вида этих звонков выглядят одинаково внешне.
Если звонок добавить в MiHome, То там мы увидим 36 мелодий, которые можем выбрать для звонка. Так-же там можем управлять громкостью. И когда нажмём на кнопку звонка в приложении MiHome прилетит уведомление, что кто-то нажал на звонок. На этом функционал заканчивается.
Через MiHome в Home Assistant звонок не пробрасывается, во время выбора его в интеграции Xiaomi – пишет ошибку. По этому и будет перепрошивать его в ESPHome.
Перепрошивка:
Для перепрошивки данного звонка, нам нужно его сначала раскрыть. И с этим у многих может возникнуть проблема. Так как основное устройство звонка плотно закрыто и так просто его не открыть. Я долго пытался и весь корпус покоцал, но у меня это получилось:
Получилось его открыть по итогу поддев “лопаткой” вниз, а не вверх. Так что, когда будете пробовать открывать, нужно лопаткой вниз нажимать.
Раскрыв крышку Мы увидим плату с контроллером ESP32 и на этой плате есть контакты подписанные к которым нужно подпаять проводки для подключения к этой плате usb/ttl программатора и прошить в него прошивку ESPHome.
Контакты эти RXD0, TXD0, IO0, GND, 3.3V. Причем IO0 надо замкнуть на землю.
Подключать USB/ttl программатор к этой плате нужно по вот такой схеме, согласно табличке:
Плата G6L_ESP32_BY | USB/ttl программатор |
RXD0 | TX |
TXD0 | RX |
IO0 | GND |
GND | GND |
3.3V | 3.3V |
ESPHome:
Код ESPHome я взял вот с этого проекта на github: https://github.com/pauln/esphome-linp-doorbell-g04/tree/main
Здесь нам нужен файл doorbell.yaml. Из него берем все содержимое и копируем к себе. Обратив только внимание на блок api, так как он немного изменился и чтоб не писал ошибок, его можно оставить как в созданном проекте.
Остальное оставляем без изменений и загружаем код в звонок.
После загрузки нам нужно зайти в Dashboard ESPHome и там выбрать лог у нашего звонка:
В этих логах нам нужно нажать на звонок, чтоб считать код его кнопки. Выглядеть строчка эта в логах будет вот так:
где 0xA86341 – это и есть код кнопки. Его копируем и вставляем в код ESPHome вот сюда:
Далее загружаем заново код в звонок и теперь это можно делать по wifi.
После этого при нажатии на кнопку у нас будет звонить звонок. Поздравляю, мы успешно привязали кнопку к головной части звонка.
Таких кнопок можно привязать 2 штуки, таким же образом, как и первую, только вставив код кнопки в блок ниже.
Вы после первого нажатия на кнопку можете заметить, что звонок довольно тихо звонит. А тихо он звонит потому-что в коде ESPHome выставлена минимальная громкость.
Эту громкость можно в коде увеличить и помимо этого можно выбрать разные мелодии. Всего мелодий 40 штук.
Все мелодии остались те-же самые, что и были раньше в звонке. Этого удалось добиться потому, что за мелодии и громкость отвечает отдельная микросхема SZY8039B В которой записаны эти 40 мелодий. И этой микросхемой будет управлять ESP32.
Изменить громкость мелодии и саму мелодию можно вот в этом блоке кода:
В tune мы выставляем цифрой от 1 до 40 – мелодию.
В блоке volume выставляем цифрой от 1 до 8 громкость звонка.
Так-же есть возможность прослушать мелодии и громкость заранее, не заливая новый код в ESPHome.
Чтоб прослушать мелодии, нужно зайти в Панель разработчика->Действия и там будет два действия относящиеся к этому звонку.
ESPHome: doorbell_play_tune – в этом действии цифрами мы выбираем мелодию и громкость.
ESPHome: doorbell_stop_playing – останавливает проигрываемую мелодию.
Как прошить звонок и как с ним работать вроде описал, еще хотелось бы показать мою автоматизацию, которая отправляет уведомления в телеграм, после того, как кто-то позвонит в дверь.
Автоматизация с уведомлением в Telegram:
Автоматизация выглядит следующим образом:
- id: Кнопка_дверного_звонка
alias: knopka_doorbell
trigger:
- platform: state
entity_id: binary_sensor.doorbell_doorbell_a
to: 'on'
action:
- service: notify.me
data:
message: 'Кто-то звонит в дверь'
где binary_sensor.doorbell_doorbell_a
это сенсор кнопки и если он в состоянии ‘on’ то, тогда отправить в телеграм notify.me
сообщение с содержимым 'Кто-то звонит в дверь'