Архив метки: home assistant

Порт “реле всего” на Sonoff S60TPF

Получил первую партию розеток, перешил, попутно решил портировать наработки с TOMZN’а, а заодно кое-что исправить.

Конфиг ESP Home для Sonoff S60

Исправления:

  • Нашел ошибку: даже при выключенной защите (VAP) и при взведенном алерте не было возможности включить реле.
  • Сделал обходной путь для подсчета и сохранения общей энергии, теперь это делается независимо от внутреннего счетчика.
  • Добавил кнопку для сброса общей энергии.
  • Задал дефолтные значения для лимитов VAP.
  • Немного причесал код: активно использовал substitute, теперь базовые переменные задаются в самом начале конфига.

Для прошивки изобразил такое:

Фактически, одним движением паяются 3 пина, крокодил просто цепляется за плату реле.

Модуль управления люстрой

Короткая заметка. Захотелось реализовать управление светом на кухне. Штатно – 2+3 лампы; реализовал управление каждой в отдельности на базе мелких SSR на 5V + ESP32 C3 + БП под это дело. Планировалось разместить все в штатной распред. коробке люстры, на деле промахнулся с габаритами (клеммники для подключения ламп упирались в стенки распред. коробки); потом решил, что и так ничего – плату все равно не видно из-за плафона. Решил даже не обрезать ее и просто подвесил ее на пластиковом дюбеле вместо штатной крышки.

Сделал управление касанием, применив touch-сенсор. В качестве самого сенсора – металлическая деталь в нижней части люстры. Изнутри в нее вставлен короткий провод, подпаянный к площадке на сенсоре.

Также впервые применил select.

Особенности:

  • Металлическая часть соприкасается с таким же металлическим каркасом люстры, в итоге тот начал работать как одна большая антенна и появились ложные срабатывания. Пришлось чуть рассверлить посадочное место, проложить изоляционные шайбы с двух сторон, а на шток надеть отрезок трубки. После этого все стало нормально.
  • SSR включены между питанием и GPIO. Из 5 реле попалось одно, которое неустойчиво удерживало включенное состояние при уровнях 3,3В – лампа мерцала, пока что-то где-то не прогревалось и не менялся порог срабатывания. Исправил тем, что пересадил плюс реле на 5В через диод (сначала два, но оказалось недостаточно). В итоге, с одной стороны, ток в закрытом состоянии с шины +5В не такой, чтобы как-то влиял на ESP32, с другой – теперь для реле уровни достаточные, чтобы то четко срабатывало.
  • Выключатели пока оставил штатные. В итоге один размыкает питание целиком, второй подключил через детектор наличия фазы и им можно управлять люстрой. Буду ли менять все на кнопку без фиксации – пока не решил.

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

Из автоматизаций – приглушаю свет при воздушных тревогах и включаю обратно при снятии тревоги; приглушаю на время тренировки в Zwift’е и возвращаю обратно – после.

Конфиг ESP Home

Sonoff S60TPF + ESP Home

В заметки:

Плата питается от 5В, стабилизатор уже на борту. Но левел-шифтер все равно используем.

Конфиг ESP Home

Контроллер активно ругался на отрицательные значения PF и реактивной мощности, пришлось убрать (да и не нужны мне они особо). Розетку в итоге приспособил для включения питания газового котла и контроля его состояния через встроенный ваттметр: idle – 4W, пламя ИЛИ работа циркуляционника – около 40-50 Вт; пламя + циркуляционник – около 120 Вт, оба циркуляционника – иногда за 200 Вт.

Заказал еще подобных розеток от других производителей.

Подключаем котел Protherm KLZ “Медведь” к Home Assistant

Решил чуть расширить список источников энергии на зиму и вернуть в работу газовый котел. Газом активно не пользуюсь уже несколько лет – примерно с момента ввода платы за доставку. Для подогрева воды еще до того начал использовать электрический бойлер. На сейчас (с учетом того, что панели не всегда покрывают домашнее потребление) стоит иметь возможность использовать любой источник энергии.

В котле в свое время делал доработки для обхода ограничений штатных алгоритмов: например, когда использовал встроенный бойлер, то для экономии газа вода грелась только тогда, когда включался термостат и/или по расписанию от встроенного таймера. На тот момент все делалось “в железе” – добавлением логических цепочек на дискретных элементах. Один из блоков – уже даже не помню, что делает. Второй – подключал резистор между входом термодатчика бойлера и общим, блокируя подогрев бойлера (обман электроники – та думала, что у бойлера высокая температура). Сейчас решил перевести основные функции по управлению на базу ESP Home.

Читать далее Подключаем котел Protherm KLZ “Медведь” к Home Assistant

Делаем “устрашающе умный” (с) модуль из TOMZN TOB9-VAP. Реле всего.

2 года назад заказал “wifi-автомат” от TOMZN – TOB9-VAP. Доехало, подключил, поигрался. Работает. Даже добавил интеграцию с Tuya в Home Assistant. Модуль разобрал поисследовать, с тех пор так и лежал разобранный без дела, да и привязка к сторонним сервисам меня не особо радовала. Внутри – небольшая платка с БП, измерителем на базе BL0942 и модулем CBU на BK7231N. Уже не помню, была ли поддержка таких контроллеров в конце 2023-го года, да и опыта было поменьше, чтобы легко прошить такое:

На сейчас ESP Home обзавелся поддержкой еще ряда контроллеров, в том числе BK72**, а желание отвязать железку от внешних сервисов, собрать все обратно и поставить точку в этой теме и сподвигло заняться модулем вплотную.

Читать далее Делаем “устрашающе умный” (с) модуль из TOMZN TOB9-VAP. Реле всего.

Home Assistant, уведомления и логика автоматизаций

Еще один баг, на этот раз со стороны Home Assistant. В последнее время решил хоть для чего-то начать использовать купленный на Али пару лет назад планшет Cubot TAB 20. Накатил туда Android-приложение Home Assistant, поставил его вместо ланчера (удобно, кстати, сделали – такой себе kiosk-mode из коробки), стоит теперь постоянно включенный. Для нескольких существующих автоматизаций решил сделать уведомления – пусть планшет подает звук, если кто-то звонит в ворота или если закончилась стирка. И поначалу вроде даже работало, но…

Сегодня заметил, что логика “звонка в ворота” сломана. Стоит сказать, что у меня на звонок стоит уведомление в джаббер, а дальше идет минутная пауза – т.е., не важно, как часто гость жмет кнопку, сообщения я буду получать лишь раз в минуту. Сейчас между сообщением в jabber и паузой добавилось еще уведомление на планшет. И – пауза перестала работать. При этом у меня на планшете нет никаких уведомлений, зато сообщения в джаббер могут идти как угодно часто. При попытке запуска уведомления на планшет вручную (в редакторе автоматизации) ничего не происходит. В другом случае (в уведомлении про стирку) получил сообщение, что устройство не подключено к локальному пуш-сервису (или как-то так). Так или иначе, проблема с одним “блоком” в автоматизации приводила к ее “вылету” и до паузы дело просто не доходило – появлялась возможность повторного запуска процесса целиком.

HA у меня не самый новый – 2024-го года, может в более свежем что-то и пофиксили, но проверить пока не могу.

esphome 2025.10.0 ломает связь с HA

Не было печали – апдейтов накачали.

Поставил свежий esphome – при прошивке девайсов (в моем случае на базе esp8266) при подключении к Home Assistant получаем

[D][api:160]: Accept 192.168.1.111
[D][api.connection:1383]: Home Assistant (192.168.1.111) connected
[W][api.connection:1880]: Home Assistant (192.168.1.111): Reading failed CONNECTION_CLOSED errno=11

Даже если удалить / добавить девайс со стороны HA – не помогает. Сам девайс видится (передобавить его можно), но при этом список объектов не передается. При этом в веб-интерфейсе устройства все в порядке.

Решается откатом на прошлую версию и прошивкой девайса с этой версии:

pip install esphome==2025.9.3

Со стороны HA ничего менять и передобавлять не надо.

Продолжаем наблюдение.

Шьем бескорпусные Sonoff на 5V

Купил когда-то несколько штук Sonoff’ов на Али без БП и корпуса – вероятно, на тот момент были дешевле обычных Basic’ов. Штука немного специфическая, в ход с июня 2021-го так и не пустил. До текущего момента.

Читать далее Шьем бескорпусные Sonoff на 5V

2 подобных устройства в Home Assistant через MQTT и отсутствие сенсоров

Давно уже столкнулся с проблемой отображения сенсоров батарей из “Powerbank для дома“. Обе батареи на базе BMS от Daly, 2 очень похожих прошивки, но для мелкой батареи все сенсоры отображались, а от большой – только несколько штук. Причем, не было самых важных – например, процента заряда батареи. Добавил нужные через mqtt.yaml, потом как-то фокус сместился на новые проекты и батарею на базе JK BMS, поэтому проблему особо не копал.

Сейчас по случаю пересобрал батарею 5-ку – добавил наконец-то проставки между ячейками, а также сделал обжим всех ячеек – соответственно, занимался в том числе перепайкой обвязки и BMS’кой в целом. По мотивам того, что умеет JK – добавил в сенсоры разницу между самым высоким и самым низким значением напряжения, а пока это все стояло и балансировалось – очередной раз задумался насчет сенсоров. Уже и переименовал устройство, и удалял из MQTT-сервера, и из HA – ничего.

В общем. Если заглянуть в MQTT в ветку homeassistant – там есть кнопки / сенсоры / прочее, группированное по устройствам. Какая-то внутренняя кухня у HA при работе с MQTT. Что важно: в описании сенсора есть поле “uniq_id“. Значение – например, “ESPsensornbpu1_cell_voltage_5“, где есть “ESP, тип, имя хоста”_”название сенсора”. Так вот, для обоих daly-based-устройств имя хоста отсутствует. В итоге имеем, например, uniq_id”: ESPsensorcell_1_voltage“. Для двух устройств – т.е., про уникальность уже речь не идет. В итоге HA работает только с тем устройством, который первый “застолбил” данный uniq_id и все. В конфиге mqtt.yaml id я задавал уже другие (чисто на автомате).

Как решить: в конфиге прошивки устройства в разделе mqtt можно задать принцип генерации этих uniq_id (и кое-что еще – я задал обе опции):

discovery_unique_id_generator: mac
discovery_object_id_generator: device_name
В итоге теперь имеем id вида 678901234567-sensor-87654321. Все сенсоры появились, теперь все работает нормально. Явно баг в ESP Home, надо будет зарепортить.