З
Заметки Красного
@BlogReD655 подп.
2.7Kпросмотров
21 января 2026 г.
📷 ФотоScore: 2.9K
🔄 NarodMon + 🐙spruthub! Перезагрузка Когда-то в далёком 2020 году я писал на sprut.ai статью «Обмен данными между NarodMon.ru и Умным домом». С тех пор утекло немало времени, технологии шагнули вперёд, и пришла пора немного обновить данные. Сегодня расскажу, как получать значения с абсолютно любого датчика Народмон (температура, влажность, давление и др.) и прокидывать их в 🐙spruthub или использовать в автоматизациях. 🛠 Алгоритм действий: 1️⃣ Создаем виртуальное устройство с необходимыми сервисами (данными, которые хотим получать: например, t°, влажность, давление). 2️⃣ Генерируем уникальный ключ myUuid (можно воспользоваться сервисом md5.cz). 3️⃣ Получаем apiKey в профиле Народмона (раздел «Мои приложения»). 4️⃣ Пишем блочный сценарий в spruthub. 📍 Кстати, кому интересно, вот мой датчик на карте: https://narodmon.ru/D8453 Ниже прикладываю пример сценария, чтобы вы могли повторить это у себя 👇 // Задаем адрес и параметры, чтобы сервер Народмона понял, кто мы и что хотим var myUuid = "828340156557612155d28b55694a"; var apiKey = "97VFtNcZ"; var devId = 398; var url = "https://narodmon.ru/api?cmd=sensorsOnDevice&api_key=" + apiKey + "&uuid=" + myUuid + "&id=" + devId + "&lang=en"; try { // Отправляем запрос и получаем ответ (текст) var response = HttpClient.GET(url).send().getBody(); // Превращаем текст в понятный скрипту объект (JSON) var j = JSON.parse(response); // Создаем переменнные, куда будем складывать найденные значения var temp; // Для температуры var hum; // Для влажности var press; // Для давления // Проверяем, прислал ли сервер список сенсоров if (j.sensors) { // Пробегаем по всему списку сенсоров циклом for (var i = 0; i < j.sensors.length; i++) { var s = j.sensors[i]; // Текущий сенсор, на который смотрим // Если ID совпадает с нужным, кладем значение в переменную if (s.id == 5268) { temp = s.value; } if (s.id == 5269) { hum = s.value; } if (s.id == 5267) { press = s.value; } } } // Записываем данные в устройство, ТОЛЬКО если мы их нашли (не undefined) // Это защита: если датчик пропал из ответа, мы не затрем старое значение пустотой if (temp !== undefined) { Hub.getAccessory(640).getService(HS.TemperatureSensor).getCharacteristic(HC.CurrentTemperature).setValue(temp); } if (hum !== undefined) { Hub.getAccessory(640).getService(HS.HumiditySensor).getCharacteristic(HC.CurrentRelativeHumidity).setValue(hum); } if (press !== undefined) { Hub.getAccessory(640).getService(HS.C_AtmosphericPressureSensor).getCharacteristic(HC.C_CurrentAtmosphericPressure).setValue(press); } // Вывод в лог для контроля (можно убрать потом) console.log("Narodmon Update: T=" + temp + "; H=" + hum + "; P=" + press); } catch (e) { console.log("Error in script: " + e); } #iot #spruthub #narodmon #умныйдом #nodered #diy
2.7K
просмотров
2992
символов
Да
эмодзи
Да
медиа

Другие посты @BlogReD

Все посты канала →
🔄 NarodMon + 🐙spruthub! Перезагрузка Когда-то в далёком 20 — @BlogReD | PostSniper