Пара заметок по Sonoff’ам.
Первое – решил пустить в работу заказанные и полученные ранее Sonoff Basic R4. Как уже писал, эти идут уже на базе ESP32 C3. С прошивкой по старому варианту – с прямым подключением адаптера на pl2303 – вышел облом: web-прошивальщик висел постоянно на “Connecting”. Пригодился level-shifter, сделанный во время экспериментов с Tp-link’ами. Проблема та же – pl2303 на TX шлет сигнал с уровнями 5В, но ESP32 C3 – в отличие от более дубовой ESP8266/8285 – на это уже обижается (и потенциально может вылететь). С левел-шифтером все успешно зашилось. А удобно подключаться к плате помогла заказанная ранее прищепка с pogo-пинами с Али.
Прошивка – почти дефолтный на сейчас вариант для таких Sonoff’ов, но с доработкой. Magic Switch решил оставить, но сделать отключаемым: не хочу, чтобы из-за “мерцания” сети (а такое вполне реально) нагрузка начинала переключаться. С другой стороны, срабатывание триггера вывел в качестве сенсора и это можно использовать в каких-то автоматизациях. Bluetooth-прокси оставил, хотя пока не знаю, как им пользоваться.
Второе – наконец-то получилось использовать перешитый под ESP Home Sonoff RF Bridge не только для приема кодов со всяких там датчиков движения и пультов на 433 МГц, а и для генерации своих.
С приемом проще: идем в Home Assistant в “Инструменты разработчика – События”, там подписываемся на событие esphome.rf_code_received (первое – подсистема, второе – то, как сервис обозначен в прошивке Sonoff’а), жмем кнопку пульта или активируем датчик движения. Далее в консоли ловим коды, из которых я обычно оставлял device_id и, собственно, code, которые и использовал в автоматизациях (добавляем триггер “Событие”, туда esphome.rf_code_received, а в параметры – наши коды).
В тех же “Инструментах разработчика” я долгое время безуспешно пытался создать событие, чтобы мост сам что-то отправлял в эфир. Перебрал все пришедшие в голову комбинации названий сервисов, вариантов описания данных с кодами, самих кодов – но безрезультатно. Даже обновил прошивку на Sonoff RF Bridge, хотя у меня была и более поздняя, чем та, где был баг с отправкой кодов. Кстати, перед обновлением глянул аптайм – 321 день. Пожалуй, рекорд среди работающих у меня устройств на МК – вероятно, работает с момента начала использования Easun на 48В – который с тех пор тоже не перезапускался.
Так или иначе, то ли что-то не так делал, то ли там это в принципе не делается. А слать коды можно напрямую в автоматизациях: добавляем действие и в строке поиска просто вводим название моста или send_code (название сервиса у моста), там будут нужные строки. Дальше надо ввести sync/high/low/code (которые можно скопировать с эталонного пульта по алгоритму выше). Тут особенность: HA принимает значения в десятичной форме, а в “Инструментах разработчика” они отдаются в 16-ричной (если использовать типичную прошивку для моста, где идет конвертация). Используем любой удобный калькулятор для преобразования значений.
А умение отправлять коды хотел использовать прежде всего для обучения таких пультиков – “свистков” с Али. Штатно они идут или с кодами не на всех кнопках, или вообще без кодов. Да и бывает случайно сбрасываются до состояния “болванки”. Основное назначение – клонировать существующие пульты, но что если пульта изначально не было? Ну и вот.
А еще – накупил кучу приемников на 433 МГц с реле и без, под которые тоже надо будет чем-то излучать коды – возможно, не только обученными пультиками, а и самим HA.