Датчик освещенности
В одной из предыдущих статей я рассказал как реализовал включение света в прихожей в зависимости от расчетной освещенности с помощью ноды sunrise в Node-Red. Но, уже упоминал, что способ рабочий, однако похоже точность расчетов хромает и, естессно, не учитываются другие погодные условия - например, в при пасмурном небе, освещенность точно ниже, чем при ясном небе. Еще есть нюансы, например, в моем случае. У меня окна выходят на север и летом солнце довольно продолжительное время почти всю ночь светит мне в окна (при ясном небе), а днем наоборот. В-общем, без датчика освещенности не обойтись. Закрепил его, добавив в систему HA, как и все подобные ZigBee-устройства, в прихожей. После этого на закладке "Коридор" добавил карточку с объектом "Датчик света прихожая" с параметрами освещенности и заряда батареи. Параметр освещенности мне необходим для того, чтобы засечь его показания при разных условиях.
По первым замерам выяснил, что освещенность в темноте без света составляет 0 lx, при включенном свете 104 lx, при дневном в зимнее пасмурное обеденное время 2 lx. Не знаю дотянется ли до 50lx в солнечную погоду, но пока взял за порог срабатывания именно 50lx, а там будем делать посмотреть, сколько будет для комфортного дневного освещения без лепиздричества.
Итак, ранее мы в Node Red создали поток, который выставлял значение глобальной переменной в зависимости от светлого или темного времени суток. Изменим немного данный поток для использования датчика освещенности, оставив возможность использования и предыдущего варианта решения. Добавляем ноду "events: state", в которой будем проверять значение параметра освещенности - больше 50 или меньше, не забыв отключить ноду "switch" в ее свойствах.
Не забываем нажать кнопку "Развернуть" в правом верхнем углу. Напомню, что порог в 50 lx взял наобум, буду наблюдать.
Проверка (мониторинг доступности) сетевого устройства
Бывает по какой-либо причине перестает быть доступно какое-либо устройство в сети и надо предпринять какие-либо действия по исправлению ситуации в кротчайшие сроки. В моем случае самым критичным является сервер видеонаблюдения. Попробуем создать автоматизацию для отслеживания его с помощью ping'а. Делать это будем делать в NodeRed. Создаем поток "Видеонаблюдение", на который выносим ноду "ping". В свойствах указываем адрес устройства и промежуток времени, через который устройство будет пинговаться (я выбрал раз в 10 минут).
Результатом на выходе будет логическая "ложь", если устройство не ответило, и логической "истиной" в обратном случае (обязательно прочитайте в конце статьи раздел Важно далее - есть нюанс). Добавляем ноду "switch", где будем обрабатывать приходящее значение.
<<< Подборка статей на этом канале про Home Assistant >>>
Далее, если у вас не установлен плагин telegram входим в меню в правом вернем углу, в пункт "Управление палитрой", на закладке установить в поле поиска вводим название node-red-contrib-telegrambot, жмем кнопку "Установить". Добавляем появившуюся ноду "sender". Настраиваем в зависимости от того, какие параметры вы настроили для своего Telegram-бота (например, как мы в одной из предыдущих статей).
Если вы думаете, что все так просто, то ошибаетесь. Нам нужно обработать каждую полученную ветку, для чего добавляем два узла "change".
Обе эти ноды должны приходить на вход ноды "function" со следующим текстом функции (приведу еще текстом, так как в скриншот не влазивает), которая подготовит сообщение для отправки в телегу:
msg.payload = {chatId :93****92, type : 'message', content : msg.payload};
return msg;
Но, вспомним, что в настройках пинга мы указали периодичность в 600 сек. В-итоге, мы будем получать сообщения в телегу каждые 10 минут. Чтобы этого не было, добавим ноду "filter", с настройками, при которых он будет пропускать сообщение дальше только в том случае, если оно отличается от предыдущего поступившего. Т.е. если предыдущее сообщение было "Видеосервер доступен", то такое же сообщение через 10 мин отослано не будет.
Важно
Пробы с нодами "inject" прошли на ура: при отсылке "true" или "false" на вход ноды "switch" все отрабатывало как и ожидалось. Однако при работе с нодой "ping" все работало только наполовину. Помогло подключение нод "debug". С их помощью я понял свою ошибку при переводе описания ноды "ping": в случае недоступности узла она действительно выдает на выходе "false", но вот в случае доступности она выдает не как я предполагал "true", а число - время пинга в миллисекундах... В связи с этим пришлось поменять настройку узла "switch".
Продолжим настраивать HA в следующих статьях, поэтому
Ставьте лайки, оставляйте комментарии, страница в VK, подписывайтесь на канал, присоединяйтесь в Telegram чтобы ничего не пропустить!
#умныйдом #календарь #HA #HomeAssistant #сделайсам #минипк #неттоп #nettop #HACS #nodered #node-red #nodered #dwainsdashboard #dwains #dashboard #планшет #ibeacon #bluetooth #ssl #защита #визуализация #3D #ping #мониторинг