Siemens LOGO, Home assistant, или моё видение умного дома

Привет! Меня зовут Максим, и работаю я DevOps инженером. Год назад я купил квартиру в новостройке, а это значит что я волен полностью все сделать под себя. Профессия обязывает всё автоматизировать, и мне это очень нравится, поэтому я не упустил возможность отыграться даже тут.

Siemens LOGO: short cook book

Итак, рассмотрим мой проект освещения:

3f4d4e8ec09b97626a420ed472bd18f7.png

Дизайнер нарисовал всё достаточно красиво, но я терпеть не могу проходные выключатели. Это просто сущее зло — ты смотришь на выключатель, он вроде бы выключен, но свет горит. Бесит! Поэтому останавливаемся на связке ПЛК 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

3743f2e104d1b06dd050a923f5ca89d3.png

Далее переходим в настройки уже 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

Но что у нас на схеме за такая интересная обвязка?

ef258e8fd4535d69794ac0e5e03baf2e.png

А это ничто иное как костыль обыкновенный. Мы из переключателя делаем не фиксируемую кнопку. По умолчанию HA посылает по modbus переключение сигнала. Но в этом случае нам надо будет дважды переключить состояние чтобы выключить свет. Поэтому мы сделали минимальную задержку блоком B026 и наш бит обратно переключаем в нулевое состояние. Поэтому в настройках кнопки в HA мы указываем что и для включения и для выключения (command_on/off) у нас должно на modbus улететь единица. А для того чтобы HA правильно показывал состояния света по факту мы должны прикрутить обратную связь с LOGO. Для этого по выходу мы ставим ещё один интернет-флаг (NQ5 & NQ6) которые будут принимать на себя фактическое состояние выхода, и отдавать его в HA. HA в свою очередь получает это состояние в блоке verify по соседнему адресу modbus. Надеюсь понятно обрисовал=)

Когда применяем конфиг в HA у нас появляется новое устройство типа лампочка, которую вы уже можете применять как вашей душе угодно. Для себя я реализовал блоки управления в каждой комнате. Получилось примерно так:

Карточка комнаты в HA

Карточка комнаты в HA

Siemens LOGO: From zero to Hero! — UDF блоки

Далее я вам ещё расскажу про UDF блоки. По сути это готовые пресеты компонентов, которые далее применяем как один блок.

Я не люблю пианино кнопок, поэтому хочу сократить их количество до минимума. Для этого я создал UDF блок с названием Clicker. Что он делает? Он позволяет управлять одной кнопкой несколькими устройствами. Например, у нас есть свет и подсветка в коридоре. Обычно я пользуюсь всегда подсветкой, а свет включаю только тогда когда собираюсь выходить из дома и надо привести себя в порядок перед зеркалом. В этом случае как раз и поможет нам наш UDF блок: одно короткое нажатие включает подсветку, два нажатия включает свет. Долгое удержание кнопки включает оба освещения. Выглядит блок так:

UDF блок Clicker

UDF блок Clicker

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

Блок создали, давайте его используем в реальном примере! Как уже говорил, что такой блок я хочу использовать в коридоре, давайте и рассмотрим такой вариант. Рисуем схему коридора:

5fa21ed5f6d3e29a922bb9d185779ddb.png

Что мы имеем? Кнопки I2 I3 I16 это наши одноклавишные выключатели в прихожей, спальне и гостиной, откуда мы можем попасть в коридор. Они объединены логическим блоком ИЛИ, и потом идут на вход в наш UDF блок U002. У блока 3 выхода: первый включает подсветку, второй включает свет, третий включает всё освещение. Интернет выходы подключены как в обычной схеме напрямую к реле. им не нужен кликер. И вот мы можем рулить освещением коридора по одной кнопке в каждой комнате! При этом нет несчастных проходных выключателей с положением «суперпозиции» когда выключатель не отражает реального включения света.

Siemens LOGO: автоматизируем зал заседаний

Раз у нас все подключено к LOGO, Почему бы не автоматизировать такую вещь как вентилятор в санузле? Обычно о необходимости его включения мы вспоминаем когда «заседание» в самом разгаре. И да, мы вроде бы подключили все к HA, но опять таки, из душа включать вентиляцию не то чтобы было удобно даже через телефон. Поэтому рисуем схему нашего санузла:

602c14b7c205d1d989b92eb0c6b21c91.png

Итак, что мы видим: занкомую схему освещения через наш UDF блок, и крайне непонятную схему включения вентилятора. На самом деле ничего страшного тут нет — мы берем сигнал включения света, пропускаем через таймер отсрочки, и если в течении 5 минут мы не выключили свет — значит мы на долго и надо бы включить вытяжку. Мелочь -, а приятно)

На этом я думаю закончить первую часть моего рассказа про мой новый дом, Думаю я её обязательно дополню фотографиями и видео. Предлагаю к скачиванию схему моего дома, а также мой UDF блок что были описанны в данном посте. Обязательно задавайте интересующие вас вопросы в комментарии, постараюсь на них ответить.

© Habrahabr.ru