Добавить в корзинуПозвонить
Найти в Дзене
SAV LABS

Мастер кнопка. Первые шаги с MQTT в Node Red. Умный дом Home Assistant

Залежалась уже физическая кнопка, которую я использовал на старой квартире. Решил задействовать ее на новой. Первое, что пришло в голову - сделать из нее мастер-кнопку, которая будет включать/выключать устройства при соответствующем нажатии. Однако, эксперимент "в лоб" так же, как я описывал в другой статье, с помощью NodeRed у меня не получился. Насколько я понимал тогда, проблема заключалась в том, что ранее все устройства были подключены через ZHA, а сейчас через Z2M, поэтому ловить события узлом "events:all" с указанием event_type = zha_event не получится. Сначала решил воспользоваться возможностью создать автоматизацию в UI-мастере. Идем в Настройки->Автоматизации, жмем кнопку создания автоматизации, а далее кнопку создания новой автоматизации с нуля. В качестве триггера выбираем событие одинарного нажатия нашей мастер-кнопки, а действие при этом - выключение выключателя света в прихожей. Аналогично создаем вторую автоматизацию на двойное нажатие кнопки для включения. Так как мы м
Оглавление

Залежалась уже физическая кнопка, которую я использовал на старой квартире. Решил задействовать ее на новой. Первое, что пришло в голову - сделать из нее мастер-кнопку, которая будет включать/выключать устройства при соответствующем нажатии. Однако, эксперимент "в лоб" так же, как я описывал в другой статье, с помощью NodeRed у меня не получился. Насколько я понимал тогда, проблема заключалась в том, что ранее все устройства были подключены через ZHA, а сейчас через Z2M, поэтому ловить события узлом "events:all" с указанием event_type = zha_event не получится.

Автоматизации

Сначала решил воспользоваться возможностью создать автоматизацию в UI-мастере. Идем в Настройки->Автоматизации, жмем кнопку создания автоматизации, а далее кнопку создания новой автоматизации с нуля.

В качестве триггера выбираем событие одинарного нажатия нашей мастер-кнопки, а действие при этом - выключение выключателя света в прихожей.

Аналогично создаем вторую автоматизацию на двойное нажатие кнопки для включения. Так как мы можем привязать к каждому нажатию несколько действий, называем автоматизацию, не привязываясь к какому-то конкретному.

-3

<<< Подборка статей на этом канале про Home Assistant >>>

Делается все просто, но все-таки хочется все делать в Node Red.

Вернемся в Node Red

Для работы с MQTT в Node Red есть соответствующие узлы

-4

Чтобы прочитать кнопку нам понадобится узел "mqtt in" - он будет слушать сообщения с топиками от кнопки. Первое что нам нужно сделать, это узнать топики от кнопки - темы сообщений от кнопки, которые нам интересны. Для этого засекаем текущее время и делаем на кнопке одинарное, двойное и долгое нажатия. Ну, с некоторой паузой между ними... Далее идем в Настройки -> Интеграции -> Устройства и ищем в списке нашу кнопку. Кликнув на ней открываем страничку "MQTT info" в разделе "Устройство". На этой страничке в разделе "Объекты" ищем подраздел "Subscribed topics" ("подписанные" топики).

<<< Подборка статей на этом канале про Lada Vesta >>>

Подчеркнутое - топик (тема) сообщения, обведенное овалом - параметр со значением. В данном случае были получены сообщения с топиком "zigbee2mqtt/Мастер кнопка", а параметр "action" (действие, событие) имел значение "single" и "double" ("hold" не поместился на скриншоте), что означает одинарное и двойное нажатие. Аналогичные данные мы можем получить, если зайдем в логи Zigbee2MQTT.

Добавляем в поток Node Red узел "mqtt in". В его настройках добавляем новый сервер (в данном случае это локальный сервер HA), адрес "localhost", имя пользователя и пароль указываем пользователя HA (можно создать отдельно для этого). В свойствах самого узла указываем топик, который нам нужно слушать (в данном случае мы его определили чуть раньше - "zigbee2mqtt/Мастер кнопка")

Добавляем узел "switch", который рассортирует приходящие сообщения с параметром "action", а узлы "action" будут выполнять необходимое действие с нужным устройством.

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

Интересно

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

Продолжим настраивать HA в следующих статьях, поэтому

Ставьте лайки, оставляйте комментарии, страница в VK, подписывайтесь на канал, присоединяйтесь в Telegram , присоединяйтесь в MAX чтобы ничего не пропустить!

-9

#умныйдом #календарь #HA #HomeAssistant #сделайсам #минипк #неттоп #nettop #HACS #nodered #node-red #nodered #dwainsdashboard #dwains #dashboard #планшет #ibeacon #bluetooth #ssl #защита #визуализация #3D #bluetooth #колонка #speaker #календарь #ptz #тепло #актуатор #клапан #радиатор #увлажнитель #очиститель #пылесос #мастеркнопка #mqtt