Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Скрипт для Thingspeak

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    702

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Скрипт для Thingspeak

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
3 Beiträge 2 Kommentatoren 2.7k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    bondrogeen
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • V Offline
      V Offline
      vtec
      schrieb am zuletzt editiert von
      #2

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

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

      1 Antwort Letzte Antwort
      0
      • B Offline
        B Offline
        bondrogeen
        schrieb am zuletzt editiert von
        #3

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

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

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        770

        Online

        32.5k

        Benutzer

        81.6k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe