Погода с OpenWeatherMap на Node-RED в HomeKit

15 февраля 2020, 10:09

В русскоязычном интернете пока мало статей о такой среде программирования, как Node-RED. Данная статья покажет, на примере создания с помощью Node-RED, погодного информера и добавление его в умный дом HomeKit полностью в графическом виде, без написания какого-либо кода.
Предполагается, что Node-RED у вас уже установлен. Если нет, тогда перейдите по ссылке и установите любой удобный для вас вариант - на компьютер, Raspberry, WB и т.д. В моем случае, Node-RED установлен на WB. Данный flow  требует установки дополнительных библиотек, скачать которые можно по ссылке.

Вот наглядный образец моего флоу.

Как видите, не так много элементов. Так что для новичков в этом деле - самое то.

Начнем с того, что пройдем регистрацию на сайте OpenWeatherMap для получения ключа api. Также здесь можно взять нужную широту и долготу.

Прошли регистрацию, ждем ключ на электронную почту, который может задержаться. Я получил на следующий день. Теперь перейдем к Node-Red.

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

Жмем деплой для активации флоу и смотрим - под каждой вкладкой появятся ваши показания.

Идем в кит и добавляем наш новый виртуальный метео датчик. Мост будет называться WeatherHB, код сопряжения вы указали при настройке. Вот и все, ловим показания для вашего места проживания.

Давление, как вы видите, в мм ртутного столба, кит их не отображает, поэтому данные в люксах.

Для тех, кто заинтересовался повторением данного алгоритма, выкладываю flow, который у меня работает и не дает сбоев.

[{"id":"b4dd91ee.24e39","type":"tab","label":"Weather","disabled":false,"info":""},{"id":"7db723f0.304fd4","type":"inject","z":"b4dd91ee.24e39","name":"20 min","topic":"","payload":"","payloadType":"date","repeat":"1200","crontab":"","once":true,"onceDelay":"0","x":100,"y":100,"wires":[["9821c705.ce458"]]},{"id":"1e475542.59d013","type":"debug","z":"b4dd91ee.24e39","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","x":650,"y":40,"wires":[]},{"id":"9821c705.ce458","type":"openweathermap","z":"b4dd91ee.24e39","name":"OpenWeatherMap","wtype":"current","lon":"","lat":"","city":"Bataysk","country":"Russia","language":"ru","x":310,"y":100,"wires":[["1e475542.59d013","1b018384.019c2c","ad85c24d.85bc4","d67aacad.47681"]]},{"id":"1b018384.019c2c","type":"function","z":"b4dd91ee.24e39","name":"Температура","func":"var characteristic = {};\n\ncharacteristic.CurrentTemperature = (msg.payload.tempc)*1.0^0;\nglobal.set (\"Temperature\",characteristic.CurrentTemperature);\nnode.status({fill:\"green\",shape:\"ring\",\"text\": msg.payload.tempc});\nmsg.payload = characteristic;\nreturn msg;","outputs":1,"noerr":0,"x":650,"y":105,"wires":[["d1ab8ae5.ca7a08"]]},{"id":"ad85c24d.85bc4","type":"function","z":"b4dd91ee.24e39","name":"Влажность","func":"var characteristic = {};\ncharacteristic.CurrentRelativeHumidity = msg.payload.humidity;\nglobal.set (\"Humidity\",characteristic.CurrentRelativeHumidity);\nnode.status({fill:\"green\",shape:\"ring\",\"text\": msg.payload.humidity});\nmsg.payload = characteristic;\nreturn msg;","outputs":1,"noerr":0,"x":640,"y":180,"wires":[["dc4bcb0c.070ab"]]},{"id":"d67aacad.47681","type":"function","z":"b4dd91ee.24e39","name":"Давление","func":"var characteristic = {};\ncharacteristic.CurrentAmbientLightLevel = ((msg.payload.pressure*0.75 - 13.5)*1.0^0);\nglobal.set (\"Pressure\",characteristic.CurrentAmbientLightLevel);\nnode.status({fill:\"green\",shape:\"ring\",\"text\": (msg.payload.pressure*0.75 - 13.5)*1.0^0});\nmsg.payload = characteristic;\nreturn msg;","outputs":1,"noerr":0,"x":640,"y":255,"wires":[["461ef01.501af1"]]},{"id":"d1ab8ae5.ca7a08","type":"homekit-service","z":"b4dd91ee.24e39","isParent":true,"bridge":"9d55c626.65a7b","accessoryCategory":"SENSOR","parentService":"","name":"Temperature","serviceName":"TemperatureSensor","topic":"","filter":false,"manufacturer":"Default Manufacturer","model":"Default Model","serialNo":"Default Serial Number","cameraConfigVideoProcessor":"","cameraConfigSource":"","cameraConfigStillImageSource":"","cameraConfigMaxStreams":"","cameraConfigMaxWidth":"","cameraConfigMaxHeight":"","cameraConfigMaxFPS":"","cameraConfigMaxBitrate":"","cameraConfigVideoCodec":"","cameraConfigAudioCodec":"","cameraConfigAudio":false,"cameraConfigPacketSize":"","cameraConfigVerticalFlip":false,"cameraConfigHorizontalFlip":false,"cameraConfigMapVideo":"","cameraConfigMapAudio":"","cameraConfigVideoFilter":"","cameraConfigAdditionalCommandLine":"","cameraConfigDebug":false,"cameraConfigSnapshotOutput":"disabled","characteristicProperties":"{}","x":865,"y":105,"wires":[[],[]]},{"id":"dc4bcb0c.070ab","type":"homekit-service","z":"b4dd91ee.24e39","isParent":true,"bridge":"9d55c626.65a7b","accessoryCategory":"SENSOR","parentService":"","name":"Humidity","serviceName":"HumiditySensor","topic":"","filter":false,"manufacturer":"Default Manufacturer","model":"Default Model","serialNo":"Default Serial Number","cameraConfigVideoProcessor":"","cameraConfigSource":"","cameraConfigStillImageSource":"","cameraConfigMaxStreams":"","cameraConfigMaxWidth":"","cameraConfigMaxHeight":"","cameraConfigMaxFPS":"","cameraConfigMaxBitrate":"","cameraConfigVideoCodec":"","cameraConfigAudioCodec":"","cameraConfigAudio":false,"cameraConfigPacketSize":"","cameraConfigVerticalFlip":false,"cameraConfigHorizontalFlip":false,"cameraConfigMapVideo":"","cameraConfigMapAudio":"","cameraConfigVideoFilter":"","cameraConfigAdditionalCommandLine":"","cameraConfigDebug":false,"cameraConfigSnapshotOutput":"disabled","characteristicProperties":"{}","x":855,"y":180,"wires":[[],[]]},{"id":"461ef01.501af1","type":"homekit-service","z":"b4dd91ee.24e39","isParent":true,"bridge":"9d55c626.65a7b","accessoryCategory":"SENSOR","parentService":"","name":"Atmospheric Pressure","serviceName":"LightSensor","topic":"","filter":false,"manufacturer":"Default Manufacturer","model":"Default Model","serialNo":"Default Serial Number","cameraConfigVideoProcessor":"","cameraConfigSource":"","cameraConfigStillImageSource":"","cameraConfigMaxStreams":"","cameraConfigMaxWidth":"","cameraConfigMaxHeight":"","cameraConfigMaxFPS":"","cameraConfigMaxBitrate":"","cameraConfigVideoCodec":"","cameraConfigAudioCodec":"","cameraConfigAudio":false,"cameraConfigPacketSize":"","cameraConfigVerticalFlip":false,"cameraConfigHorizontalFlip":false,"cameraConfigMapVideo":"","cameraConfigMapAudio":"","cameraConfigVideoFilter":"","cameraConfigAdditionalCommandLine":"","cameraConfigDebug":false,"cameraConfigSnapshotOutput":"disabled","characteristicProperties":"{}","x":895,"y":255,"wires":[[],[]]},{"id":"10f7af7d.b6b539","type":"comment","z":"b4dd91ee.24e39","name":"Open weather map","info":"","x":110,"y":40,"wires":[]},{"id":"9d55c626.65a7b","type":"homekit-bridge","z":"","bridgeName":"WeatherHB","pinCode":"190-00-190","port":"","allowInsecureRequest":false,"manufacturer":"Default Manufacturer","model":"Default Model","serialNo":"Default Serial Number","customMdnsConfig":false,"mdnsMulticast":true,"mdnsInterface":"","mdnsPort":"","mdnsIp":"","mdnsTtl":"","mdnsLoopback":true,"mdnsReuseAddr":true,"allowMessagePassthrough":true}]

Огромная благодарность Евгению Лузину за подсказки ))))


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Gülahmet Müslim (axyskus)
    Gülahmet Müslim (axyskus) 2 дня назад

    то что доктор прописал 👍👍👍

К списку статей

Скидки для сообщества

Wiren Board

+7 495 150-66-19
Промокод:
SPRUTDELIVERY
Размер скидки:
0%
Вы получите бесплатную доставку.

Похожие статьи

30 августа 2019, 07:28
Несколько нетривиальных способов использования датчика открытия окон/дверей от Xiaomi/Aqara.
09 января 2019, 17:34
Небольшая статья о том, зачем нужна малина, почему автоматизации в HomeKit это не очень хорошо и чем USB стик лучше отдельного шлюза.
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
09 ноября 2018, 17:31
В данной статье рассматривается определенный подход инсталляции и конфигурации базовой среды, для последующей возможности простой, в плане настройки, автоматизации УД с помощью симбиоза HomeAssistant и Node-RED.
23 сентября 2019, 08:52
Node-RED - пошаговая инструкция для новичков.
18 апреля 2019, 09:07
Раньше, я был глуп и уверен, что zigbee-модули не услышат датчики на больших расстояниях. Я ошибался…
03 марта 2019, 20:17
Описание подключения стыкуемых модулей к контроллеру Wiren Board
13 марта 2019, 20:16
Описание подключения Modbus модулей к контроллеру Wiren Board
24 сентября 2019, 16:07
Цикл статей. Создание комфортного проживания в загородном доме по мнению дилетанта. Первая часть: "Управление климатом в комнате с радиаторным отоплением при помощи сенсорной панели термостата"
25 февраля 2019, 15:34
Устанавливаем Node Red и подключаем к нему DeCONZ.