Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    712

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Скрипт для Thingspeak

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
3 Beiträge 2 Kommentatoren 2.8k 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

        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
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        459

        Online

        32.9k

        Benutzer

        83.0k

        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