Путь к начальной домашней автоматизации
Предисловие
В этой заметке я описываю свой путь к настройке домашней автмоатизации в том виде, какая она есть сейчас. С промахами и не-идеальностями. Маркетинговое название подобных систем - умный дом, но по моим представлениям до умности тут ещё достаточно далеко и более правильно их называть - системы домашней автоматизации.
Благодарности
В первую очередь хочу поблагодарить свою семью, которая стойко переживает моё увлечение с автоматизацией управления разными домашними устройствами и периодическими сбоями в логике этих самых автоматизаций.
В своих экспериментах и нововведениях я стараюсь обеспечивать максимальную "не ухудшаемость", т.е. чтобы старый привычный способ продолжал работать как более приоритетный способ управления: если что-то слелал сам, то автоматика слушается.
Оговорки
Я не являюсь профессионалом ни в сфере домашней автоматизации, ни в сфере электрики. Какие-то термины могут употребляться с ошибками, могут быть ошибки в базовых для профессионалов вещах.
Если будете что-то применять - дважды подумайте насколько это безопасно.
Комментарии мне можно отправлять мне по контактам с главной страницы сайта.
Путь к автоматизации
Автоматическое включение света при входе в квартиру
Первые эксперименты в этой области начались ещё в школьном детстве - мы с папой собирали схемку на конденсаторе, которая при открывании входной двери включала в коридоре свет и около минуты держала его включенным. Наверное тогда у меня интерес к домашней автоматизации и зародился.
Много лет спустя уже в своей квартире я сделал следующий шаг и свет в коридоре включался по датчику движения. Это был обычный фабричный выключатель с датчиком движения за 600 рублей, который висел под потолком рядом с люстрой и охватывал всю площадь коридора. Так что польза от автоматического включателя была уже больше: свет сам включался не только при входе в квартиру, но и при посещении коридора за вещами или одевани перед выходом.
В тот раз это был первый подобный опыт, поэтому параллельно оставался и традиционный выключатель, которым можно было включить свет если бы автоматический сломался. Но за несколько лет он так и не сломался.
Вскоре я переехал в другую квартиру и в новом ремонте повторил автоматическое включение света в коридоре, но уже без резервного выключателя.
На полноценную автоматизацию это конечно не тянуло, но похоже, что это был первый шаг.
Знакомство с беспроводными протоколами домашней автоматизации
Ещё через несколько лет, после переезда в Москву я стал жить на съёмной квартире и того простого автовключения света мне сильно нехватало, но я стал жить в съёмной квартире с натяжными потолками и повесить что-то на потолок стало проблематично.
В какой-то момент я наткнулся на описание протоколов сначала
#ZigBee, а потом - #ZWave. Меня заинтересовала идея связывать части системы по надёжному защищённому радиоканалу, да ещё и управлять ими с компьютера (к тому же домашний сервер у меня был более-менее всегда), а значит что и логику работы можно сделать значительно более интересными, чем просто включать свет по движению и выключать по таймеру.
WiFi в домашней автоматизации
Тогда и сейчас я часто вижу устройства с подключением по WiFi, чаще всего имеется ввиду подключение к серверам производителя устройства и возможность управлять им с мобильного телефона или через умногодовые системы вроде умного дома яндекса. Я стараюсь избегать таких устройств когда это возможно, сейчас у меня осталась одна лампочка которая так управляется. По историческим причинам - руки не дойдут поменять на аналог с локальным управлением.
Принципы построения системы домашней автоматизации
Работает само
Хорошая домашняя автоматизация это не когда мне нужно залезть в телефон, чтобы включить или выключить прибор. Хорошая автоматизация - это когда "всё работает само" и создаёт комфортную среду.
Например свет включается автоматически когда он нужен и потом выключается, когда не нужен.
Шторы - сами закрываются вечером и открываются утром. Ещё они могут закрываться если ты включил телевизор, а на улице слишком яркое солнце и т.п.
Удобство управления
Управлять устройствами должно быть удобно.
Не все вещи получается автоматизировать, например сложно понять что человек лёг спать и свет пора выключить - непонятно как это отличить от ситуации, когда человек лёг в кроваъ, но спать пока не хочет.
Для таких вещей обычно удобнее всего голосовое управление. У меня для всех устройств, которыми может хотеться управлять вручную сделан приём голосовых команд через яндекс-колонки.
Локальность управления
Простой функционал, вроде включения лампочки выключателем терять нельзя. Только так автоматизация может быть не хуже выключателей и это обеспечивает терпимость домашних к каким-то экспериментам: основной функционал работает всегда, а сломаться может только что-то дополнительное.
Базовые вещи (вроде включения и выключения света вручную) должны работать строго локально - в пределах одного устройства. Базовая возможность включения и выключения света должна оставаться независимо от работы внешних сервисов, домашнего интернета или даже центрального контроллера.
В моих решениях используются реле с локальным управлением. Т.е. реле управляется непосредственно кнопкой выключателя и будет работать даже если выключить основной контроллер.
Ремонтопригодность
Система должна быть построена так, чтобы при выходе какого-то компонента из строя его можно было легко отремонтировать или заменить другим. Это означает, что если есть выбор устройства от непонятной компании, которое обладает бОльшим функционалом или серийно производимого аналога - я скорее выберу второе. То же относится и к протоколам: при выборе протокола я смотрю как его работа реализована у других производителей, чтобы иметь возможность развивать и ремонтировать систему даже если производитель уходит с рынка.
Возможность разобраться без меня
Тут есть две составляющие:
- Временами я уезжаю в командировки и если что-то сломается без меня, то должна быть возможность базовый функционал в рабочее состояние силами обычного электрика, без моего личного присутствия
- Человек внезапно смертен и если со мной что-то случится - должна быть возможность разобраться в том как система работает чтобы её поддерживать или отключить и вернуться к традиционным способам управления квартирой
Деградация в безопасное состояние
В случае отказов система должна деградировать в наиболее безопасное состояние.
- Головки управления радиаторами - нормально-открытые, т.е. при отключении электричества - радиаторы включатся на обогрев.
- Реле управления светом в туалете и ванной - нормально-замкнутые, т.е. если выйдет из строя низковольтный блок питания или будет повреждён управляющий кабель - свет в туалете и ванной включится и будет гореть. В этих помещениях нет дополнительных источников света, а оказаться в темноте будет неудобно.
- Свет в спальнях - нормально-разомкнутый, т.е. при выходе из строя низковольтного блока питания или повреждении управляющего кабеля свет выключится и останется выключенным. Тут логика работает в другую сторону: в спальнях обычно есть дополнительные источники света (торшеры, настольные лампы, можно открыть шторы на окнах) и отключение основного освещения не очень большая проблема, зато если свет будет включён постоянно - он сильно помешает спать.
Работает без контроллера
Всё локальное управление должно работать даже если контроллер выходит из строя: свет должен включаться и выключаться даже если сломается контроллер. Это позволяет безопасно экспериментировать с автоматизациями и правилами, без риска оказаться в ситуации хуже, чем "глупые" выключатели.
Человек знает лучше
На всех выключателях предусмотрено ручное управление устройствами. И если человек сам переключил выключатель: автоматика этого устройства отключается на час, чтобы дать возможность делать то, что человек хочет явно.
Особенности автоматизации в съёмном жилье
Свой третий подход к автоматизации я начал на съёмной квартире и тут есть свои особенности. Съёмную квартиру рано или поздно нужно будет возвращать владельцу, а он скорее всего будет не рад если увидит изменения в электропроводке или провода по всей квартире.
Поэтому тут работали дополнительное ограничение: Должна быть возможность очень просто снять всю автоматизацию и вернуть всё в состояние "как было".
По сути эти требования ведут к устройствам, устанавливаемым по месту и беспроводным протоколам связи.
Особенности автоматизации в квартире с уже сделанным ремонтом
Если квартира своя, то тут действует уже меньше ограничений и вполне можно прокладывать новые провода и вмешиваться в штатную проводку.
Тут я тоже оставляю возможность откатиться обратно, но процесс отката вполне может быть более сложным.
Возможна прокладка дополнительных проводов - и силовых и управляющих. Но, поскольку ремонт уже сделан, то возможности ограничены. Всегда когда можно переиспользуется уже существующая проводка, заложенная в стены. Иногда она работает как силовая, а иногда силовые провода переиспользуются как сигнальные - например чтобы замыкать контакты в реле, установленном внутри монтажной коробки или рядом.
Чтобы не переклеивать обои я выбрал использование навесного монтажа, т.е. новые провода прокладываются в кабель-каналах. Если устройства не влезают в штатные подрозетники или монтажные коробки - рядом прямо на стену вешаются дополнительные коробки или электрощитки. Тут мне в некотором смысле повезло - у меня в квартире достаточно нейтральный "белый" ремонт и навесные элементы не сильно бросаются в глаза. Гости их начинают замечать только после того как покажешь, домашним тем более всё примелькалось. Так и проводка/эксперименты получаются относительно простыми и эстетика сохраняется - чтобы небыло мешанины открытых проводов по квартире.
Но в итоге постепенно прихожу к пониманию, что беспровод работает достаточно надёжно и зачастую это сильно упрощает установку. Даже не смотря на то, что провода есть в доступности уже почти по всей квартире.
Интеграция с существующей проводкой
Для меня это один из самых сложных моментов. По практике я заметил, что любая возня с электропроводкой это сразу плюс 3-5 часов к работе. Сначала всегда нужно понять как идут штатные провода, промаркировать текущий вариант соединения. Если идёт работа с распределительной коробкой, то нужно проверить и перепроверить какой провод управляет нужной мне лампочкой. Оказалось это далеко не всегда очевидно. Особенно сложно получается в ситуациях, когда штатно были смонтированы механические проходные выключатели.
Пробовал приглашать проф. электрика, чтобы он мне нашёл и разметил все лампочки во всех распред. коробках. Это частично помогло, но не сильно - на практике всё равно приходится проверять и разбираться. Иногда маркировка, сделаная электриком получается неправильной.
В итоге сейчас перешёл с более сбалансированному подходу и везде, где возможно, начинаю использовать беспроводные решешения, чтобы хобби продолжало приносить удовольствие, т.к. задачи именно переделать проводку у меня нет, это только побочная необходимость при индеграциях.
Протоколы связи
Тут я в общих чертах расскажу опробованные лично протоколы связи. Я их пробовал в своих домашних условиях, на своих задачах и методом научного тыка.
Modbus-RTU
В моей сети используются комбинация из традиционного Modbus (несколько настенных панелек) и быстрого modbus[1] (почти всё). Сеть работает на скорости 115.2Кбит/сек.
Я делал пробный переход на 9.6 КБит/сек, никакой визуальной разницы в скорости срабатывания не заметил. Вернулся обратно на 115К по двум соображениям:
- Когда начнётся деградация качества управляющего сигнала (наводки, старение проводов, ослабление контактов и т.п.), то я об этом узнаю заранее. У меня будет вариант переключиться на скорость пониже и потом в спокойном режиме решать возникшую проблему
- Мне так морально приятнее
С учётом моментального уведомления о событиях от датчиков по быстрому modbus - сеть работает хорошо, без сложных настроек или подбора периодичности опроса устройств, как того потребовала бы сеть на традиционном modbus.
ZigBee
С ZigBee я столкнулся сначала в теории. Понял, что идея протокола удобная, но туда нужно погружаться. На момент знакомства казалось что там полный разброд по устройствам и разные производители не совместимы между собой. Универсальных хабов управления толком небыло. Поэтому знакомтсво с протоколом было отложено.
Позже, когда началась стандартизация не только транспортного уровня, но и функционального (т.е. лампочка и кнопка разных производителей могут работать вместе) протокол стал интереснее. Устройства стали соответствовать принципу ремонтопригодности.
Сейчас Zigbee выбран беспроводным протоколом внутри моей квартиры. Выбором я на данный момент доволен. Хотя не все устройства работают идеально - по большей части всё в рамках ожиданий.
Z-Wave
Z-wave Ещё один беспроводной протокол связи. Изначально был описан намного лучше + чипы производила только одна компания, которая затем поставляет их всем производителям конечного оборудования. Т.е. в теории совместимость между устройствами должна быть намного лучше.
У меня было несколько устройств в начале последнего витка экспериментов - как более стабильный протокол, чтобы меньше возиться с самим протоколом и больше с функционалом. На практике оказалось что для привязки устройств к стику требовались многократные повторения попыток, подносы устройства близко к контроллеру, пару раз устройства терялись.
Я склонен считать что в чём-то недоразобрался и что-то делал неправильно. Но заманчивой простоты там не оказалось и в итоге я ушёл на #ZigBee с универсальный контроллер #Spruthub + #WirenBoard, в котором можно подружить устройства разных производителей. У них расскажу дальше.
WiFi/MQTT
📖 MQTT - протокол для общения устройств между собой. Используется как конечными утсройствами, так и внутри контроллеров #WirenBoard для универсального представления разнообразных устройств.
Протокол позволяет реализовать часть логики напрямую между устройствами. Например бризер подписывается на показания датчика CO2 и сам регулирует скорость подачи воздуха, без участия логики контроллера.
WiFi/Облака
В подавляющем большинстве случаев если массовое устройство "поддерживает WiFi", то имеется ввиду связь с серверами производителя устройства и последующее управление через приложение в мобильнике.
Крайне неудобный вариант для включения в локальную домашнюю автоматизацию. Бывает что сервера производителя интегрированы с популярными умнодомовыми системами вроде систем "умного дома" яндекса, google и т.п., но редко когда есть удобные варианты подключения в локальные сценарии.
Используемое оборудование
WirenBoard
Основной производитель установленных у меня реле и датчиков. При переезде в свою квартиру я подумал что надо попробовать и всё сделать на проводах.
Всё на проводах сделать не получается из-за сложностей внедрения в уже существующую проводку, но основное оборудование от них: качественное, доступное по цене, хороший функционал локального управления и безопасных режимов - на случай потери связи с контроллером, поддержка быстрого modbus, люди в поддержке и отделах продаж. Когда у этих ребят есть нужное мне устройство, то дальше я просто не ищу.
Контроллер
У меня установлен контроллен Wirenboard 7 с 2Гб памяти. На этом контроллере запущен весь софт, используемый для автоматизации:
- собственно софт Wirenboard, там у меня работает пара правил для управления радиаторами, т.к. не дошли руки написать кастомные шаблоны для спрутхаба, а в терминах реле удобнее работать в скриптах прямо с контроллера.
- Spruthub - основной софт, в котором пишутся правила домашней автоматизации.
- HomeAssistant в докер-контейнере - для интеграции с одной внешней системой, служит как шлюз между этой системой и spruthub-ом, в котором уже описана логика
Нагрузка на процессор в обычном режиме (помимо процессов рестарта, обновлений и т.п.) - около 5%, тормоза ощущаются только при обновлениях или рестартах и то больше в скорости самого обновления, сценарии продолжают работать быстро.
По памяти: доступно ещё около 0.8Гб, из них 0.6Гб это буферы и кеш. Больше всего памяти занимают сервисы Spruthub и wb-metrics (примерно по 0.4Гб каждый).
Универсальный датчик
Универсальные датчики WB-MSW отвечают за измерение основных параметров в помещениях: температура, CO2, служат датчиками движения.
В качестве датчиков движения удобны для использования в тёмных комнатах: ванна и туалет. Время "инерции" у этих датчиков получается 3 секунды, этого достаточно чтобы определить наличие человека внутри, пока он ещё двигается и находится в зоне действия датчика.
При использовании беспроводных датчиков Aquara время инерции датчика на выключение измеряется минутами и после закрытия двери в тёмной комнате сложно определить остался ли человек внутри или ушёл.
Мини-реле
WB-MRM2-mini используются для установки в распределительные коробки. Удобно что могут быть как нормально-открытыми, так и нормально-закрытыми.
Aquara
Сейчас у меня есть несколько выключателей и розеток. Устройства в целом работают хорошо:
- Одна из розеток самопроизвольно начала реагировать на нажатия кнопки, которое ей не предназначалось, всё аналогично описанному тут
- Один из безнулевых выключателей регулярно терялся из видимости контроллера, хотя был в паре метров от него и в прямой видимости.
- Хаб один раз зависал на несколько часов из-за обновлений на серверах aquara (что ещё больше подтолкнуло к локальным решениям)
Сейчас использую как вендора по-умолчанию, когда понимаю что с установкой проводного решения будет слишком много возни.
Sonoff
Использую кнопки на батарейках. Хороши тем, что поддерживают прямой биндинг, т.е. могут управлять другими устройствами (например выключателями) напрямую. Это управление работает без участия контроллера и отвечает принципу локального управления.
Стики LilyGo на Esp32
[Стики](🐈⬛ T-Dongle-S3) Используются в бризерах с прошивкой 🐈⬛ esphome-tion, работают хорошо без нареканий. Прошивка тоже хорошая - работает без зависаний, автор и редкие баги быстро правит и PR принимает и на телеграм отвечает.
Колонки яндекса
С точки зрения домашней автоматизации используются для распознавания голосовых команд, дублирования звонка домофона и произнесения прогноза погоды по кнопке.
Системы управления
Умный дом яндекса
Очень простая система, с низким порогом входа и полезными функциями вроде истории событий или показаний датчиков.
Хорошо подходит для попробовать - а вообще моё/не моё и что хочу от автоматизации. Дальше мне перестало хватать возможностей встроенных сценариев + на тот момент управление было исключительно облачное.
Aquara
Хаб Aquara стал моим первым домашним хабом, когда после экспериментов с #Z-Wave я решил переключаться на ZigBee, но всё ещё не хотел сильно вкладываться ни в изучение совместимостей, ни финансово в условно универсальные хабы. Тогда был только какой-то зарубежный шарик.
Несколько лет назад функционально был чуть лучше умного дома яндекса, текущее состояние не сравнивал. В любом случае мне его недостаточно:
- хочется поддержки более сложного функционала в сценариях, совсем массовые облака вроде яндекса и акары такого обычно не делают, чтобы потом не утонуть в поддержке.
- Хочется поддержки самых разных устройств разных производителей. В идеале чтобы можно было добавить любое устройство
- Работа по разным протоколам - для объёдинения разных устройств в одной схеме автоматизации
NodeRed
Nodered - удобная система полу-визуального программирвоания. Пользовался ей во времена экспериментов #Z-Wave, до покупки #Spruthub. Позволяет удобно простраивать и понимать связи в сценариях, добавлять отладочные точки, писать код на javascript когда требуется.
Сейчас не использую.
Spruthub
Spruthub - Железка и софт для домашней автоматизации. Я начал именно с железки и думаю что это лучший вариант для начала экспериментов, когда возможностей Умного дома яндекс уже нехватает:
- Само устройство из коробки поддерживает #ZigBee - самый популярный протокол для массовых устройств.
- Она идёт уже настроеная и самообновляется, нет нужды в опыте разработки или настройке компьютерных систем, чтобы начать.
- Можно подуключать дополнительные протоколы, например я втыкал стик с #Z-Wave.
- Работает с огромным количеством устройств разных производителей. Можно спокойно купить лампочку филипс, кнопку sonoff, электрокарниз акара, а датчик движения подключить по ZWave, если есть такая потребность и через контроллер всё это можно будет связать вместе.
- Те устройства, которые пока не поддерживаются, но в целом соблюдают Zigbeee-стандарт - добавляются достаточно быстро, в моём случае это было примерно за сутки (и как я понял - они уже были добавлены на будущее, только не опубликованы).
- Если устройство сильно кастомное, то можно добавиъ его вручную (не очень сложно, но может быть муторно, я одно устройство так добавлял по образцу).
- Отличный конструктор сценариев: и начать очень просто для простых вещей и затем можно продвигаться и выражать достаточно сложную логику даже без программирования. Возможность программировать на JS есть, но мне пока ни разу не пригодилась.
- Всё управление - локальное и автоматизация продолжает работать даже если интернет отключился
Из минусов:
- Своеобразная тех-поддержка: в общем тг-канале, открытом для всех клиентов.
- Для начальной настройки нужен интернет и параметры доступа тоже задаются через интернет, т.е. совсем автономно настроить не получится (но после начальной настройки отключить от интернета уже можно)
- В первой версии SpruthubCE нет встроенных часов - для правильной работы с датами и временем требуется синхронизация времени через интернет как минимум при каждом включении (в остальном работает и без него). Т.е. для первой версии интернет нужен, чтобы запустить событие "в 5 вечера". События вроде "через минуту после движеня" могут работать и такой синхронизации
- В стабильном релизе обновления выходят редко и сразу большие, какие-то мелкие фиксы чаще попадают в бету и в релиз почти не переносятся. Я на баги пока не наступал, но если бы наступил, а он исправлен только в бете - было бы обидно.
Текущий вариант
Сейчас у меня спрутхаб используется в виде стика для Wirenboard. Внутри стика реализован ZigBee и к нему же привязывается лицензия на программную оболочку.
С готовой коробки я ушёл т.к. решил попробовать автоматизацию на проводных устройствах, Wirenboard с этим справляется лучше. А вот скрипты мне понравилось делать в Spruthub-конструкторе и, хотя я свободно программирую на нескольких языках, настраивать простые сценарии в конструкторе намного удобнее (а иногда даже и сложные).
Заодно получается вполне понятный интерфейс, чтобы дать к нему доступ супруге, без дополнительной предварительной подготовки (что интерфейса, что жены).
Wirenboard rules
Правила пишутся на языке, очень похожим на JavaScript. Правила можно писать в соседних файлах и тогда они будут работать независимо друг от друга. Есть удобные способы взаимодействовать с оборудованием, без работы с MQTT напрямую и для создания виртуальных устройств.
На Wirenboard правилах у меня реализовано управление радиаторами. С одной стороны там нет ничего сложного и логика спокойно выражается в конструкторе SprutHub, с другой - радиаторов несколько в разных комнатах, а по своей природе не люблю дублировать одну и ту же логику несколько раз.
Домашняя стандартизация
Маркировка
Я хочу избежать ситуации, когда у меня в доме большая куча проводов, и непонятно какой для чего предназначен. Поэтому на каждом проводе в местах входа/выхода из монтажных коробок у меня подписано куда он идёт. Маркировка дублируется и в некоторых местах развилок, где собрано много проводов - чтобы понимать какие провода там есть.
Маркировка наносится с помощью принтера ручного принтера по единообразной схеме.
Маркировка проводов
На каждом проводе наклеены наклейки, общая схема наклейки:
[Тип] [Точка 1] Точка 2
.
Тип - показывает назначение провода: 220В
, Eth
- локальная сеть или Авт
- низковольтный провод домашней автоматизации.
Тип провода может не указываться, если его назначение очевидно.
Точка1 и Точка2 - обозначения точек подключения. Если маркер висит рядом с одной из точек подключения и она очевидна, то пишется только вторая.
Общая схема маркировки точек подключения
Точка подключение - то место, в которое подключается провод: прибор, реле, розетка, распред. коробка и т.п.
Каждая точка подключеня в системе автоматизации имеет название по единой схеме: КПН
, где К - буква комнаты, П - буква прибора, Н - номер прибора внутри комнаты.
Это обозначение печатается на том же ручном принтере и приклеивается на прибор/датчик или рядом с ним.
Нумерация точек подключения в комнате делается по мере их нумерации. Если одинаковых точек сразу много, то имеет смысл пронумеровать их по часовой стрелке начиная от входной двери, чтобы потом не путаться.
Например: КВ1 - первый выключатель в кухне.
Обозначения помещений
Каждое помещение обозначается одной буквой. Если комнат мало и можно выбрать мнемонические буквы - выбираю их, например К - кухня, а Р - родительская. Но это не является строгим требованием. Даже не зная буквенных обозначений достаточно увидеть пару наклеек и будет интуитивно понятно, что все приборы находящиеся в этой комнате начинаются на одну букву.
Обозначение приборов
В - выключатель
К - распределительная коробка (возможно что скрытая - внутри кабель-канала)
Л - люстра
Р - розетка
Д - Датщик
Щ - щиток
Э - экран (панель с экраном)
Используемые протоколы
Стандарты проводки
220В
Тут я придерживаюсь общепринятой цветовой схемы, найденной в интернете во многих источниках (и проверенной мультиметром).
Фаза: Белый
Ноль: Синий
Земля: жёлтый или жёлто-зелёный
Если я наращиваю провода - всегда подключается жила того же цвета, что и была. Если жила почему-то не соответствует цветовой маркировке - она перекоммутируется в начальной точке подключения, а если это невозможно - подписывается наклейкой.
Исключения бывают если я начинаю переиспользовать провода, заложенные в стенах по другому назначению. Например провод был 220В и идёт к выключателю, а я начинаю его использовать как низковольтный сигнальный, который только замыкает контакт в реле - чтобы не делать новую проводку.
Низковольтные провода
Все проводные низковольтные у меня сделаны по витой обычному ethernet-кабелю витой пары 5й категории, для унификации. Сейчас у меня используются только 4 жилы из 8, но в каждом месте соединения соединяются все 8 жил, чтобы в случае когда мне в каком-то месте квартиры потребуется дополнительная жила - она уже оказалась подключена.
RS-485
Основной протокол - Modbus-RTU поверх RS-485 в витой паре.
Единого общепринятого стандарта цветовой раскладки я не нашёл, поэтому сначала взял вариант от Wirenboard (из статьи выше), но этот вариант мне оказался неудобным - я всё время путался в том где идёт питание, а где земля. По моим ощущениям это связанные понятия и должны быть одного цвета, но одна из жил - с белой полоской, а в вариантах Wirenboard это жилы разных цветов. Поэтому раскладку я модифицировал и сейчас она получилась такая:
Цвет жилы | Значение |
---|---|
Оранжевый | RS485-A |
Оранжевый с полоской | RS485-B |
Синий | Питание 24В |
Синий с полоской | Ноль |
Зелёный | не используется |
Зелёный с полоской | не используется |
Коричневый | не используется (бывш питание 5В для 1-wire) |
Коричневый с полоской | не используется (бывш данные 1-wire) |
Такая раскладка интуитивно-понятна - используются пары двух цветов: |
- Данные по жилам одного цвета
- Питание по жилам другого цвета, похожего на питание в сети 220В
и ещё пары двух цветов остаются свободными на случай если потребуются. Например подключить устройства RS-485 на другой скорости или добавить новый протокол.
Несоблюдение шины
Я читал рекомендации по прокладке кабелей от Wirenboard и увидел там интересную деталь: допустимы ответвления от шины до 50метров. Прикинув размер своей квартиры я понял, что ни один провод от начала до конца даже между разными концами квартиры у меня не будет длиннее 50метров и в этом смысле ответвляться можно где угодно.
Поэтому я вообще не заморачиваюсь над топологией подключений: проводка разветвляется в том месте, где мне удобно поставить развитвитель. Проходами через устройство (завести провод в устройство, потом вернуть обратно) - тоже. В некоторых местах так сделано для удобства, но в общем случае это может быть просто ответвление от общей проводки из распред. коробки, в которой установлен WB-BUSHUB v1 и все провода подключаются параллельно.
Сейчас в моей сети 18 устройств, из них 3 панельки Citiron, остальное - от wirenboard. Сеть работает на скорости 115.2Кбит/сек, ошибки связи в логах - отсутствуют.
Вывод - в небольших сетях можно вообще не заморачиваъся с топологией и делать как удобно. В крайнем случае можно будет снизить скорость и это даёт запас на случай если по мере роста сети она начнёт работать хуже.
1-Wire
У меня был опыт по подключения 1-Wire датчиков напрямую к контроллеру по отдельным жилам в моём низковольтном кабеле, но все датчики сгорают и перестают работать. Так что от идеи 1Wire внутри того же кабеля я отказался и дальше буду подключать эти датчики короткими проводами в считыватели 1-wire, например WB-M1W2 и дальше пусть сигнал идёт уже по modbus. А жилы освободил для будущих экспериментов.
Мысли на будущее
Помимо автоматизации всего что возможно - в будущем подумывать сделать систему локального распознавания голосовых команд vosk и локальный синтез голоса.
Тут может возникнуть мысль, что быстрый modbus противоречит принципу ремонтопригодности, т.к. это локальное расширение. В этом смысле я пошёл на компромисс - производитель работает давно, устройства выпускаются серийно и достаточно много. На случай если он всё же уйдёт с рынка - есть вариант откатиться на традиционный modbus в точках отказа устройств или даже по всей сети. Придётся повозиться с настройкой таймингов и приоритетов опроса, но в целом задача решаемая за разумное время. К тому же протокол открыт и к тому времени могут появиться уже и контроллеры (уже появляются) и конечные устройства (пока не реле, но тоже появляются) других производителей, поддерживающие его. ↩︎