Или Node-red как паутина…

В прошлой статье мы добавили наше устройство в NODE-RED (далее NR) и HomeKit (далее – НК), настроили связь, получили обратный отклик, насладились моментом. Дальше больше..

Добавляем температуру в HomeKit

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

Сначала мы берем «ноду» «function» из предустановленного списка нод:

Соединяем с раннее построенной конфигурацией:

Заходим в настройки и прописываем следующую функцию:

var value = null;
if (msg.status === null) value = 'NO_RESPONSE';
else value = (msg.status.temp_dec)/10;
var msgNew = {};
msgNew.payload = {"CurrentTemperature":value};
return msgNew;

Копируем «ноду» НК и соединяем с функцией, в настройках выбираем «TemperatureSensor».

Нажимаем принять и радуемся.

Заходим в НК заходим в увлажнитель и выбираем «На отдельных плитках» .

Flows доступен по ссылке.

Добавляем на дашборд

На этом можно было бы закончить, но мы рассмотрим, как создать панель отображения и управления в web-интерфейсе. Для этого нам необходимо скачать и установить «node-red-dashboard».

И начинаем собирать кубики – сначала уже известная нам «function», и прописываем формулу:


if (msg.status === null) return null;
var msgNew = {};
msgNew.payload = msg.status.power=='on'?true:false;
node.status({fill:"grey",shape:"dot",text:msgNew.payload?'on':'off'});
return msgNew;

Далее берем «ноду» «switch» из набора «dashboard»:

Создаем группу и таблицу:

Остальное без изменений поля «Name» и  «Label» отвечают за название в HR и Web-интерфейсе соответственно.  Остальное можно не менять.

Далее берем «ноду» «switch» из набора «function»:

Ставим следующие настройки:

Далее берем «ноду» «out» из набора «miio»:

Выбираем наше устройство, выбираем наш режим (в данном случае «ВКЛ/ВЫКЛ»).

Получаем такую картину:

Переходим в Web-интерфейс по адресу http: // localhost: 1880 / ui и видим картину:

Получили кнопку при нажатии на которую включается и выключается наше устройство.

После добавления всех параметров устройства получаем следующий вид:

И в Web-интерфейсе:

Можно также добавить графики изменения температуры и влажности:

Только отображать они будут данные до перезагрузки NR и всего на определенное количество времени выстроенное в настройках (в примере это последние 12 часов с шагом обновления 5 секунд).

Итоговый Flows доступен по ссылке.

Спасибо за внимание прошу, сообщить стоит ли писать все так подробно?

Author

3 комментария

  1. Не полностью отработал. Помогите, пожалуйста , исправить две ошибки:
    ————————————
    1) Не выводится температура в ХК и в самом устройстве
    Функция:
    var value = null;
    if (msg.status === null) value = ‘NO_RESPONSE’;
    else value = (msg.status.temp_dec)/10;
    var msgNew = {};
    msgNew.payload = {«CurrentTemperature»:value};
    return msgNew;
    Дебаг:
    CurrentTemperature: NaN
    ————————————
    2) Не выводится влажность отдельным устройством
    Функция:
    if (msg.status === null) return null;
    var msgNew = {};
    msgNew.payload = msg.status.humidity;
    node.status({fill:»grey»,shape:»dot»,text:msgNew.payload +’%’});
    return msgNew;
    Дебаг:
    «Invalid payload type: number»
    ————————————
    Мне как новичку не удалось поправить.

Write A Comment