
Решился балкон переделать в рабочий кабинет. Фотографий ДО и ПОСЛЕ не будет, но я расскажу об автоматизации, которую там устроил. С самого начала планировал автоматическое управление теплым полом и освещением, а уже по окончанию ремонта решил добавить еще и сенсорную панель управления на стену. Устройства выбрал с технологией Z-Wave, но в процессе использования оказалось, что меня не устраивает функционал управления освещением. Пришлось разработать свой собственный выключатель на базе платы Z-Uno 2 и твердотельных реле Сrydom.
Мне очень нравится серия выключателей Gira E3 за их лаконичный дизайн и качественное исполнение, также она входит в программу System 55, что дает совместимость с большим количеством устройств для умного дома. Я выбрал двойную белую рамку и одинарный выключатель.

Среди Z-Wave термостатов теплого пола есть термостат Heatit Z-TRM3 совместимый с рамками программы Gira System 55. В использовании термостат мне очень понравился, сенсорный экран и всего 3 кнопки: вверх/ок/вниз, даже ребенок справится. Меня он полностью устраивает!

На балконе 2 зоны освещения, это встроенные светильники на потолке и лампа над рабочим местом. Но управлять ими я хотел с одного выключателя по следующему сценарию:
- По одинарному клику вкл/выкл светильников
- По двойному клику вкл/выкл лампы
- По долгому удержание вкл/выкл лампы и светильников
В наличии у меня был двухканальный Z-Wave модуль реле Philio PHI_PAN04. К нему я подключил одинарный звонковый выключатель, который одновременно включал/выключал лампу и светильники, для раздельного управления использовался телефон. К сожалению этот модуль нельзя было настроить, как я хотел на одинарные и двойные нажатия, можно было только управлять нагрузкой с двух выключателей. После нескольких недель неудобств я решился на разработку собственного выключателя с бесшумными твердотельными реле и Z-Wave чипом 7-го поколения.
Встраиваемое Z-Wave двойное реле Philio PAN4 с сухими контактамиНедавно вышла новая Z-Wave плата Z-Uno 2 для быстрой разработки устройств в среде Arduino IDE (теперь еще и VS Code поддерживается). Новая Z-Uno 2 основана на Z-Wave чипе 7 поколения ZGM130S, а это CortexM4F, 39 МГц и куча периферии, но мне нужно было только 4 GPIO.
Для разработки собственного выключателя потребовалось немного деталей «Lego»:
- Z-Wave плата Z-Uno G2
- Блок питания Hi-Link 3.3 В
- Пара твердотельных реле Сrydom
- Кусок макетки
Аккуратно спаяв все компоненты на макетке получился компактный модуль, который точно влезает в подрозетник за выключатель. Перед установкой всю макетку обмотал изоляцией.
Z-Uno на Z-Wave чипе 700 серии, блок питания Hi-Link, два твердотельных реле
Запаял блок питания Hi-Link и твердотельные реле Crydom на макеткеПисать код для такого простого устройства совсем не сложно, для ознакомления оставлю его в спойлере. Можно вообще не писать код и воспользоваться графическим конфигуратором .
Код двойного выключателя для Z-Uno 2
#include "ZUNO_Buttons.h" #define RELAY_1 0 #define RELAY_2 1 #define BTN_PIN 23 // Global variables byte relay1State = 0; byte relay2State = 0; // Create btn PinBtn btn; // Z-Wave channels ZUNO_SETUP_CHANNELS( ZUNO_SWITCH_BINARY(relay1Getter, relay1Setter), ZUNO_SWITCH_BINARY(relay2Getter, relay2Setter) ); void setup() { pinMode(RELAY_1, OUTPUT); pinMode(RELAY_2, OUTPUT); pinMode(BTN_PIN, INPUT_PULLUP); // Add button with parameters ZunoBtnButtonInit_t initButton = BTN_BUTTON_INIT_DEFAULT; btn.addButton(BTN_PIN, &initButton); } void loop() { digitalWrite(RELAY_1, relay1State ? HIGH : LOW); digitalWrite(RELAY_2, relay2State ? HIGH : LOW); if (btn.isSingleClick(BTN_PIN) || btn.isLongClick(BTN_PIN)) { relay1State = !relay1State; zunoSendReport(1); } else if (btn.isDoubleClick(BTN_PIN)) { relay2State = !relay2State; zunoSendReport(2); } } // Getters and setters void relay1Setter(byte value) { relay1State = value; } byte relay1Getter() { return relay1State; } void relay2Setter(byte value) { relay2State = value; } byte relay2Getter() { return relay2State; }
Часть управления реле сгенерировал графический конфигуратор, а обработку кнопок по моему желанию я написал следую документации.

Запихал модуль в подрозетник, подключил питание и выключатель. Подрозетник в этом месте специально сделан глубоким — 80 мм. В 60 мм тоже можно было бы запихнуть, а в 40 мм вообще ни один радио модуль не влезет с выключателем.

Во время тестирования выяснилось, что с твердотельными реле не все светодиодные лампы работают одинаково хорошо, оно и понятно, через транзисторы течет небольшой ток на лампу и она вспыхивает. В таком случае нужно использовать либо диммируемые лампы, либо на которых указано, что они работают с выключателями с подсветкой. У меня диммируемая лампа из IKEA.
Gira E3 System 55 в интерьереУровень комфорта повышен, свет под контролем и включение/выключение совершенно бесшумные.
А в стену я встроил 7 дюймовый сенсорный дисплей Nextion NX8048P070. Управляет им ESP32 и держит связь с контроллером умного дома на базе Raspberry Pi, но это уже совсем другая история, если будет интересно, расскажу о ней в следующей статье.
P/s ещё немного картинок:
Nextion NX8048P070
ESP32 + Nextion NX8048P070
ESP32 + Nextion NX8048P070
