Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Скрипт для Thingspeak

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Скрипт для Thingspeak

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bondrogeen last edited by

      Thingspeak - это облачный сервис приема данных, анализа и их визуализации.

      https://thingspeak.com/

      Приложение для андройда 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);
      
          }
      });
      });
      
      
      1 Reply Last reply Reply Quote 0
      • V
        vtec last edited by

        Отправку понимаю, можно в облаке визуализацию строить.

        А для каких целей прием? Пример можно?

        1 Reply Last reply Reply Quote 0
        • B
          bondrogeen last edited by

          Можно сделать типа моста между ioброкерами. (альтернатива MQTT 😄 )

          Или использовать как удаленное управление, включить или ввыключить устройства, отправив запрос с любого браузера (предварительно конечно нужно знать номер канала и api_key) 😄

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          664
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          2647
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo