Siemens LOGO, Home assistant, или моё видение умного дома
Привет! Меня зовут Максим, и работаю я DevOps инженером. Год назад я купил квартиру в новостройке, а это значит что я волен полностью все сделать под себя. Профессия обязывает всё автоматизировать, и мне это очень нравится, поэтому я не упустил возможность отыграться даже тут.
Siemens LOGO: short cook book
Итак, рассмотрим мой проект освещения:
Дизайнер нарисовал всё достаточно красиво, но я терпеть не могу проходные выключатели. Это просто сущее зло — ты смотришь на выключатель, он вроде бы выключен, но свет горит. Бесит! Поэтому останавливаемся на связке ПЛК Siemens LOGO + не фиксируемые выключатели. Siemens был взят версии 8.3 с 2 модулями расширений, выключатели взял Schneider Electric AtlasDesign двухклавишные и одноклавишные по вкусу.
Далее устанавливаем программу Siemens LOGO commfort и делаем схему переключений:
Разберем пример переключений на схеме кабинета.
Схема подключения в кабинете
На схеме мы видим 2 группы света (Q10 — основной свет & Q8 — подсветка карниза), которые включаются кнопками (I10 & I11 — первый узел кнопок внутри и I12 I13 второй узел около входа в кабинет) и 2 интернет входа с некоторой обвязкой. Также логическое ИЛИ (B023 & B024) объединяют входы в один провод и подключают к стабильному реле (B002 & B011) на управляющий вход.
Итого, схема следующая: при нажатии кнопки, мы даём сигнал на стабильное реле на переключение его состояния. Оно в свою очередь включает выход и передаёт сигнал на интернет выход для отслеживания состояния лампочки. Довольно простая схема получается, но к стабильному реле подключены ещё какие-то флаги на выход сброса сигнала — что это? А это ничто иное как мастер выключатель! На выходе из квартиры стоит кнопка, по нажатию которой мы сбрасываем все реле на состояние выключено. Обычно мастер-выключатель делают через контактор, но в такой схеме если ваша женщина выходит из квартиры раньше чем вы просыпаетесь и жмёт этот выключатель — это значит что все освещение перестанет работать. В нашем же случае такая ситуация исключена, так как мы не жёстко отключаем питание на свет контактором, а именно выключаем каждый потребитель. Так и запишем, и добавим на схему наш мастер-выключатель.
Схема подключения мастер-выключателя
Теперь немного разберемся с интернет входами.
Home assistant + Siemens Logo: ModBus
Для того чтобы управлять нашим LOGO нам надо настроить ModBus шину на контроллере: Для этого заходим в основные настройки контроллера, и активируем галку Allow ModBus acess
Далее переходим в настройки уже Home Assistant, а именно нас интересует файл configuration.yaml. Создаём там следующий блоке
modbus:
name: hub1
type: tcp
host: 192.168.31.2 # Адрес нашего Siemens
port: 510 # Порт modbus.
lights:
...
Эмпирическим путём вычислил что на стандартном 509 порту есть странные задержки — иногда HA не может прочитать и записать на этом порту. Поэтому переключился на порт выше, с ним проблем уже не наблюдал.
Разбираемся дальше. Блок lights собственно и содержит наши все лампочки, и нам надо его настроить. Создаём блок с названием зоны, которой хотим управлять, и прописываем адрес на шине modbus. Адреса у siemens logo расположены следующим образом:
Address on HA | Address on Siemens |
8 | v1.0 |
9 | v1.1 |
10 | v1.2 |
11 | v1.3 |
12 | v1.4 |
13 | v1.5 |
14 | v1.6 |
15 | v1.7 |
16 | v2.0 |
17 | v2.1 |
18 | v2.2 |
19 | v2.3 |
20 | v2.4 |
21 | v2.5 |
22 | v2.6 |
23 | v2.7 |
24 | v3.0 |
Я для удобства решил использовать первый бит как обозначение группы, второй бит 0 — управляющий, 1 — для обратной связи. Таким образом у нас получается следующие переключатели для света и подсветки в кабинете:
- name: "Свет в кабинете"
address: 24 # v3.0
write_type: coil
command_on: 1
command_off: 1
scan_interval: 1
verify:
address: 25 # v3.1
state_on: 1
state_off: 0
delay: 1
- name: "Подсветка в кабинете"
address: 32
write_type: coil
command_on: 1
command_off: 1
scan_interval: 1
verify:
address: 33
state_on: 1
state_off: 0
delay: 1
Но что у нас на схеме за такая интересная обвязка?
А это ничто иное как костыль обыкновенный. Мы из переключателя делаем не фиксируемую кнопку. По умолчанию HA посылает по modbus переключение сигнала. Но в этом случае нам надо будет дважды переключить состояние чтобы выключить свет. Поэтому мы сделали минимальную задержку блоком B026 и наш бит обратно переключаем в нулевое состояние. Поэтому в настройках кнопки в HA мы указываем что и для включения и для выключения (command_on/off) у нас должно на modbus улететь единица. А для того чтобы HA правильно показывал состояния света по факту мы должны прикрутить обратную связь с LOGO. Для этого по выходу мы ставим ещё один интернет-флаг (NQ5 & NQ6) которые будут принимать на себя фактическое состояние выхода, и отдавать его в HA. HA в свою очередь получает это состояние в блоке verify по соседнему адресу modbus. Надеюсь понятно обрисовал=)
Когда применяем конфиг в HA у нас появляется новое устройство типа лампочка, которую вы уже можете применять как вашей душе угодно. Для себя я реализовал блоки управления в каждой комнате. Получилось примерно так:
Карточка комнаты в HA
Siemens LOGO: From zero to Hero! — UDF блоки
Далее я вам ещё расскажу про UDF блоки. По сути это готовые пресеты компонентов, которые далее применяем как один блок.
Я не люблю пианино кнопок, поэтому хочу сократить их количество до минимума. Для этого я создал UDF блок с названием Clicker. Что он делает? Он позволяет управлять одной кнопкой несколькими устройствами. Например, у нас есть свет и подсветка в коридоре. Обычно я пользуюсь всегда подсветкой, а свет включаю только тогда когда собираюсь выходить из дома и надо привести себя в порядок перед зеркалом. В этом случае как раз и поможет нам наш UDF блок: одно короткое нажатие включает подсветку, два нажатия включает свет. Долгое удержание кнопки включает оба освещения. Выглядит блок так:
UDF блок Clicker
Сначала в нём сложно разобраться, но по сути тут несколько таймеров и триггеров, которые считают как долго нажата кнопка и сколько раз, и в зависимости от этого подают импульс на тот или иной выход. Принцип поэтапно расписывать не буду, но если что, оставлю ссылку на его скачивание. Вы сможете с помощью симуляции сами посмотреть как он работает.
Блок создали, давайте его используем в реальном примере! Как уже говорил, что такой блок я хочу использовать в коридоре, давайте и рассмотрим такой вариант. Рисуем схему коридора:
Что мы имеем? Кнопки I2 I3 I16 это наши одноклавишные выключатели в прихожей, спальне и гостиной, откуда мы можем попасть в коридор. Они объединены логическим блоком ИЛИ, и потом идут на вход в наш UDF блок U002. У блока 3 выхода: первый включает подсветку, второй включает свет, третий включает всё освещение. Интернет выходы подключены как в обычной схеме напрямую к реле. им не нужен кликер. И вот мы можем рулить освещением коридора по одной кнопке в каждой комнате! При этом нет несчастных проходных выключателей с положением «суперпозиции» когда выключатель не отражает реального включения света.
Siemens LOGO: автоматизируем зал заседаний
Раз у нас все подключено к LOGO, Почему бы не автоматизировать такую вещь как вентилятор в санузле? Обычно о необходимости его включения мы вспоминаем когда «заседание» в самом разгаре. И да, мы вроде бы подключили все к HA, но опять таки, из душа включать вентиляцию не то чтобы было удобно даже через телефон. Поэтому рисуем схему нашего санузла:
Итак, что мы видим: занкомую схему освещения через наш UDF блок, и крайне непонятную схему включения вентилятора. На самом деле ничего страшного тут нет — мы берем сигнал включения света, пропускаем через таймер отсрочки, и если в течении 5 минут мы не выключили свет — значит мы на долго и надо бы включить вытяжку. Мелочь -, а приятно)
На этом я думаю закончить первую часть моего рассказа про мой новый дом, Думаю я её обязательно дополню фотографиями и видео. Предлагаю к скачиванию схему моего дома, а также мой UDF блок что были описанны в данном посте. Обязательно задавайте интересующие вас вопросы в комментарии, постараюсь на них ответить.