NEWS
Скрипт для Thingspeak
-
Thingspeak - это облачный сервис приема данных, анализа и их визуализации.
Приложение для андройда ThingView
https://play.google.com/store/apps/deta … view&hl=ru
Api отправки данных на сервер читаем тут.
https://www.mathworks.com/help/thingspe ... -feed.html
Можно передавать на один "канал" до 8 значений.
! api_key (строка) - Записать ключ API для конкретного канала.
! field1 - Поле 1 данных (опционально)
! field2 - Поле 2 данных (опционально)
! field3 - Поле 3 данных (опционально)
! Field4 - Поле 4 данных (опционально)
! Field5 - Поле 5 данных (опционально)
! field6 - Поле 6 данных (опционально)
! field7 - Поле 7 данных (опционально)
! field8 - Поле 8 данных (опционально)
! Lat (десятичное) - широта в градусах (опционально)
! long (десятичное) - Долгота в градусах (опционально)
! elevation (целое число) - Высота в метрах (опционально)
! status (строка) - Сообщение о состоянии обновления (необязательно)
! Twitter (строка) - имя пользователя Twitter связана с ThingTweet (опционально)
! tweet (строка) - обновление статуса Twitter; см Обновление Twitter статуса для получения дополнительной информации (опционально)
! created_at (DateTime) - Дата, когда запись была создана, в формате ISO 8601, например: 2014-12-31 23:59:59. Время зоны могут быть заданы с помощью параметра часового пояса (опция)Скрипт отправки данных на сервер.
schedule("*/1 * * * *", function () { //запускаем наш скрипт каждые 1 мин var request = require('request'); var field1 = getState ("mqtt.0.admin.ESP00F3F006.sensors.dsw1"/*admin/ESP00F3F006/sensors/dsw1*/).val; //берем значение из iobroker и заносим в переменную var field2 = getState ("mqtt.0.admin.ESP00F3F006.sensors.dhth1"/*admin/ESP00F3F006/sensors/dhth1*/).val; var field3 = getState ("mqtt.0.admin.ESP00F3F006.sensors.bmpp"/*admin/ESP00F3F006/sensors/bmpp*/).val; var field4 = getState ("mqtt.0.admin.ESP00F3F006.sensors.adc"/*admin/ESP00F3F006/sensors/adc*/).val; var field5 = getState ("mqtt.0.admin.ESP00F3F637.sensors.dsw1"/*admin/ESP00F3F637/sensors/dsw1*/).val; var field6 = getState ("mqtt.0.admin.ESP00F3F637.sensors.dsw2"/*admin/ESP00F3F637/sensors/dsw2*/).val; var field7 = getState ("mqtt.0.admin.ESP00F3F637.gpio.input14"/*admin/ESP00F3F637/gpio/input14*/).val; var field8 = getState ("admin.0.info.updatesNumber"/*Number of adapters to update*/).val; var channel_id = 12345; // id канала на thingspeak var api_key = "1234567890ABCDEF"; // api_key ключ "канала" на отправку данных на сервер, получаем после регистрации request({ //Отправляем запрос на thingspeak url: 'https://api.thingspeak.com/update.json', //URL api thingspeak method: 'POST', // Метод POST json: { "api_key":api_key, // api ключ "channel_id": channel_id, // id канала "field1": field1, //Значение поле1 для отправки на сервер "field2": field2, //Значение поле2 для отправки на сервер "field3": field3, //Значение поле3 для отправки на сервер "field4": field4, //Значение поле4 для отправки на сервер "field5": field5, //Значение поле5 для отправки на сервер "field6": field6, //Значение поле6 для отправки на сервер "field7": field7, //Значение поле7 для отправки на сервер "field8": field8, //Значение поле8 для отправки на сервер "created_at": null, // Дата, когда запись была создана. если не указывать сервер поставит дату приема данных } }, function(error, response, body){ //обрабатываем результат if(error) { log(error); //выводим в лог в случаи ошибки ответа от сервера } else { log(JSON.stringify(body)); //выводим в лог ответа в виде строки. } }); });Скрипт приема данных от сервера.
schedule("*/5 * * * *", function () { //запускаем наш скрипт каждые 5 мин createState('Thingspeak.field1', ''); //создаем переменную field1 в iobroker createState('Thingspeak.field2', ''); //т.д... createState('Thingspeak.field3', ''); createState('Thingspeak.field4', ''); createState('Thingspeak.field5', ''); createState('Thingspeak.field6', ''); createState('Thingspeak.field7', ''); createState('Thingspeak.field8', ''); var request = require('request'); var id_chennal = 12345; //Создаем переменную и записываем в нее нужный нам номер id канала Thingspeak request({ //Отправляем запрос на Thingspeak url: "https://api.thingspeak.com/channels/"+id_chennal+"/feeds.json?results=1", //URL api Thingspeak method: 'GET', // Метод GET }, function(error, response, body){ //обрабатываем результат if(error) { log(error); //выводим в лог в случаи ошибки ответа от сервера } else { //log(body); //выводим в лог ответа в виде строки. var jsob_obj = JSON.parse(body); //преобразуем json ответ от сервера в объект var field1 = jsob_obj.feeds[0].field1; //вытаскиваем значения field1 из ответа от сервера var field2 = jsob_obj.feeds[0].field2; //т.д... var field3 = jsob_obj.feeds[0].field3; var field4 = jsob_obj.feeds[0].field4; var field5 = jsob_obj.feeds[0].field5; var field6 = jsob_obj.feeds[0].field6; var field7 = jsob_obj.feeds[0].field7; var field8 = jsob_obj.feeds[0].field8; setState("javascript.0.Thingspeak.field1"/*Thingspeak.field1*/, field1); // записывает значения field1 в переменную iobroker setState("javascript.0.Thingspeak.field2"/*Thingspeak.field2*/, field2); // т.д... setState("javascript.0.Thingspeak.field3"/*Thingspeak.field3*/, field3); setState("javascript.0.Thingspeak.field4"/*Thingspeak.field4*/, field4); setState("javascript.0.Thingspeak.field5"/*Thingspeak.field5*/, field5); setState("javascript.0.Thingspeak.field6"/*Thingspeak.field6*/, field6); setState("javascript.0.Thingspeak.field7"/*Thingspeak.field7*/, field7); setState("javascript.0.Thingspeak.field8"/*Thingspeak.field8*/, field8); } }); }); -
Можно сделать типа моста между ioброкерами. (альтернатива MQTT :D )
Или использовать как удаленное управление, включить или ввыключить устройства, отправив запрос с любого браузера (предварительно конечно нужно знать номер канала и api_key) :D
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden