Не простое zigbee реле Modkam на 4 канала

Приветствую всех читателей Habr. Сегодня хочу поделиться с вами проектом zigbee smart реле. Это 4-х канальное реле (4 solid-state relay) в одномодульном корпусе для крепления на DIN-рейке. Данный проект задумывался для управления электротермическими сервоприводами, но без проблем может быть использован и для управления освещением, вытяжными вентиляторами, любыми другими нагрузками до 2А.
Почему это реле выше упомянуто как smart? У него есть несколько особенностей которые его отличают от других реле.
kecqwbniovhzv6tb_vub6stukfq.jpeg

Реле может работать с кластером температуры, к данному реле можно привязывать внешние датчики температуры, для прямого обмена данными (может работать без координатора сети). Реализован простой функционал раздельного термостатирования по каждому из 4 каналов, по полученным с внешних датчиков температуры данных. Реле так же работает с кластером времени, реализован ночной эко режим, с возможностью задавать время включения и отключения ночного режима. Еще может оповещать звуковым управляемым сигналом о внештатных ситуациях. Ну и это тихое реле, потому что ssd.
xlbsyx5ktu_lfzfczuktjlrcndm.jpeg

Идея сделать этот проект у меня появилась 2 года назад, мне тогда понадобилось сделать управление отоплением в своем доме. В zigbee сообществе многие знакомы с проектами Modkam, разработчик, который делает эти проекты всем известен под ником Jager. У него я нашел один проект, который мне идеально подходил под мои задачи — Реле на 4 канала с Zigbee.

Но были нюансы, ножки которые используются усилителем в радиомодуле нужно было освободить, так как мне нужно было реле с усилителем, потому что места установки таких реле для управления термоголовками обычно имеют плохие условия для прохождения радиосигналов. Ну и по мелочи, кнопки, звуковые излучатели и т.д.
Jager любезно согласился модифицировать свое железо, договорились что проект будет общедоступным.
rzdumxuaz_n4xpgezu7jimqm4kg.png

Управление у себя дома я довольно быстро реализовал на коленке и поставил на тесты, в итоге этот тест затянулся на пару сезонов, оно само работает, не мешает, не отвлекает, а времени причесать и выложить нет потому что много других дел :). Но вот время прошло.

Технические характеристики:

  • SOC: СС2530 (радиомодуль E18-MS1-IPX)
  • Протокол передачи данных: Zigbee 2.4GHz
  • Входное напряжение: 4.75в — 23в
  • Коммутируемая нагрузка на 1 канал: 220VAC ~ 2А 50/60Hz
  • Корпус: 1DIN

Реле довольно легко собрать самостоятельно. Используются общедоступные компоненты, которые легко можно купить на Али экспресс и/или в локальных магазинах электроники в России. Корпус используемый в проекте российского производства, компания ЗАО «МЕАНДР», модель корпуса 152, это глубокая модернизация корпуса 151 (как заявляет производитель). Корпус действительно хорош.
ocfl2fvycjtsdbxtdkkghankuo8.jpeg

jz7co3jyl65wdbgfdaiayucarcm.jpeg

Лицевая панель устройства имеет 6 индикаторов, индикатор питания, индикатор работы в сети zigbee и индикаторы состояний реле. Для этого проекта я сделал дизайн наклеек. файл с наклейками находится на гитхаб проекта. Сами наклейки я заказывал на сайте ПринтДирект, виниловые наклейки с высечкой, очень удобно.
jc_rlxdzajsl1_vtp-hj4ppfzv8.png

На лицевой панели корпуса нужно просверлить 6 отверстий, в качестве разметки я использовал одну из наклеек. После сборки лицевой панели, присутствовал небольшой засвет от соседних светодиодов в каждом отверстии. Эту проблему помогла решить трубочка, которая идет в комплекте с кофе в Вкусно и точка. В дальнейшем постараюсь добавить на гитхаб проекта 3д модель отражателя который можно будет распечатать на 3д принтере.
yqklgpwddiov0otgtzravjtawro.jpeg

Для питания устройства я использую одномодульный блок питания на DIN рейку напряжением в 5В.
uqkvj8k6hyyk6ipqv4hf0mnm_fa.gif

В данной статье описывать функционал буду на примере работы в системе умного дома СпрутХаб. Но почему не zigbee2mqtt? На момент подготовки материалов для статьи проект тестировался в системе УД Home Assistant через аддон zigbee2mqtt, в принципе часть текста статьи была уже сделана на примерах работы в zigbee2mqtt, возможно тот вариант я опубликую на другом интернет ресурсе. В 2024 году zigbee2mqtt начал сильно перерабатываться, это затронуло и внешние конвертеры и работу координаторов сети. С написанием конвертера для устройства в новом стиле modernExtend мне очень сильно помог Илья Киров, оунер самого большого ТГ канала Zigbear по тематике zigbee, помог понять что это такое, … удобно, проще, не поспоришь.

Новый стиль конвертеров конечно не является проблемой, наоборот это упрощает написание новых конвертеров, к этому нужно просто привыкнуть. Проблема связана с найденными багами в прошивках координатора, вследствие чего рекомендовано переходить на новые версии прошивки. Но и новые пока работают не совсем хорошо. Я не обновлял прошивки своих координаторов и с последними апдейтами zigbee2mqtt в системе постоянно сыпятся килобайтами варнинги. Присутствует замедление в работе сети. На данный момент получается и в старом варианте не хорошо и в новом не очень. Например, при попытке привязать датчики температуры к реле Modkam Term я мог получить инфо сообщение от системы что привязка осуществлена, информация передана на устройство, но данные о температуре датчик температуры не отправлял на реле, при подключении сниффера выяснилось что координатор может не отправить сообщение на привязываемый датчик температуры. Конечно все привязки в итоге проходят успешно, но эти все повторы, и постоянные варнинги в веб-интерфейсе о том что координатору плохо, превращают процесс в маленький адок. Конечно можно откатится на более ранние версии zigbee2mqtt, но мне проще будет все описать на примере другой системы УД. А может я просто придираюсь и с з2 м все ОК.

Ввод устройства в сеть осуществляется подачей питания на устройство или зажатием кнопки, которая находится на плате. Для ввода в сеть через кнопку, необходимо будет снять переднюю крышку на корпусе.
uhspxdvrzx72zxmno6p6ylc5scw.png

gsa7wph2hl_x0lrx2vi3yyckth0.png

Выход из сети осуществляется через троекратный сброс питания, с периодами работы устройства не более 10 секунд, через 10 секунд работы устройства. Счетчик сбросов обнуляется.

После ввода в сеть устройство полностью готово к работе. Вы можете подключить освещение, вентиляцию, что то еще и управлять через свои настроенные сценарии в умном доме.
-xiiqfyfvidtnfdpc98fyqxiq08.png

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

Процесс привязки (binding) с одной стороны реализован проще в СпрутХаб, с другой не очень удобно. Ниже все расскажу, покажу. Для привязки датчика температуры к реле Modkam нужно перейти в параметры устройства.
9e5kteupv5_027ifq2xzu5-y8re.png

Далее нужно открыть вкладку связь, найти строку с кластером температуры, и в открытом выпадающем списке просто выбрать нужный канал температуры в реле Modkam (это удобно).
pysbdpkj9opjpqstss9ickkmavm.png

А вот отвязать датчик температуры от реле просто не получится, ну или я пока не понял как это сделать просто. Для отвязки нужно выбрать очистить, но при этом сбросятся все привязки у датчика по кластеру температуры, после придется заново привязать датчик по кластеру температуры к координатору. что бы датчик продолжал отправлять данные в УД.
s4mitzk9g_zmd_th5e74txfhh2g.png

После привязки датчик начнет отправлять свои данные о температуре и в УД и в реле Modkam, а реле Modkam в свою очередь так же пересылает эти данные с свои свойства в УД. -100 означает что к каналу не привязан датчик температуры.
_p_xjo8kr6fhn-u993qcjz0bm2i.png

После привязки датчиков температуры к реле, нужно настроить функционал термостатирования. Для этого нужно так же как и с датчиком температуры перейти в параметры устройства и открыть вкладку Основное.

Для настройки термостатов нужно в каждом канале, на которых привязаны датчики задать пороги верхней и нижней границы температуры и включить сам функционал термостатирования. Переключатель инвертирование изменяет логику термостата на противоположную. если по умолчанию при превышении верхнего порога температуры реле отключается. то с включенной настройкой инвертирование, при превышении температуры реле включится, это подойдет для электротермических сервоприводов типа NO например.
rchmqstbvwocbgwjwq2xr49jdf0.png

Так как устройство работает с кластером времени (периодически синхронизирует свое время с контроллером уд) есть возможность задать время ночного режима, это режим при котором установки порогов температур понижаются на 2°С (возможно эту настройку в будущем стоит вынести для конфигурирования пользователем).

При активированном свойстве Оповещение о внештатных ситуациях, реле будет издавать звуковой сигнал, если канал термостатирования активирован, но данные о температуре отсутствуют или не обновляются.

Так же на вкладке основные можно задать интервал отчетов состояний реле и температур на каналах.

Это пожалуй все что касается дополнительной функциональности данного реле. Сейчас мне этих 4 каналов мало, так как в коллекторных группах бывает и больше 4 входов-выходов, и насосами хотелось бы управлять, и ssd реле не могут управлять электротермическими сервоприводами с питанием DC 5в, 12в, 24в, поэтому у данного проекта будет точно продолжение.

Что понравилось в работе с спрутхаб? Очень высокая стабильность передачи данных, это пожалуй главное и это очень радует. С zigbee контроллером разработчики постарались. Что не понравилось? Отсутствие мало мальской истории данных, каких то самых простых графиков, в 2024 году это вызывает очень сильное удивление (мягко говоря). Конечно это можно решить дополнительным сервером с БД, Графаной, но черт побери…
Еще один момент это апдейты системы, я пока столкнулся с одним. Отвалились дескрипшены свойств, то есть пользователю теперь не видны дополнительные подсказки-описания в свойствах. Локальный интерфейс на не обновленной системе и удаленный интерфейс разные. Ощущение что удаленный интерфейс обновили для всех, и тех кто на стабильной версии и тех кто на бете. Плитки с данными устройств разъехались по экрану. Это очень напомнило то как это случается на опенсорсных системах, но эта система на минуточку коммерческая!
q10b1skoidfxt_fyxgvbabn7kwe.png

Одно понятно, счастья нигде нет, будь то бесплатная опенсорс система или коммерческая за 99тр.
3u8zssd3-zybueaao8shbzjoots.png

Так датчик выглядит в вэб интерфейсе zigbee2mqtt:
djkc_ma7vzlzj0sc4yz2wecs0gm.png

zmbd3jquqoaefyo8gaqmq8ygwry.png

y2-s5z8vbdvndyqzhegw22q3sb4.png

Файлы проекта для заказа плат, BOM файл, схема, прошивка размещены на гитхаб DIYRUZ.

Всех читателей, которым интересна тематика DIY, разработка электронных устройств, всех кто хочет рассказать о своих самоделках или почитать о чужих, узнать о продолжении этого проекта, приглашаю в мою группу в телеграм DIYDEV.

Спасибо за внимание, всем добра!…

© Habrahabr.ru