Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. hfhausen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    H
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 1
    • Best 0
    • Groups 0

    hfhausen

    @hfhausen

    0
    Reputation
    18
    Profile views
    1
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    hfhausen Follow

    Latest posts made by hfhausen

    • Datenupload nach openSenseMap

      Hallo,

      hier mal mein (erstes) Script, um Daten bei openSenseMap.org hochzuladen.

      Wer Außentemperatur, Luftfeuchte, Niederschlag und andere Werte im iobroker als Datenpunkte hat, kann diese mit dem Script bei openSenseMap hochladen.

      Man benötigt einen Account bei openSenseMap und muss darin eine senseBox registrieren. Dabei definiert man welche Werte erfasst werden sollen (Temp,Luftfeuchte,…).

      Im Dashboard unter Script kann man die SENSEBOX_ID und die IDs der Sensoren auslesen.

      Im Script muss folgendes ergänzt werden:

      SENSEBOX_ID

      ARRAY_ID

      Array_Objects

      Das Scriptbeispiel ist hat hier vier Sensoren.

      //  Upload data to opensensemap
      //  https://opensensemap.org/
      var http = require('http'); 
      var server = "ingress.opensensemap.org";
      // senseBox ID
      // hier aendern!!
      var SENSEBOX_ID  = "SENSEBOX_ID";
      // Array of Sensor_IDs
      // hier aendern!!
      var ARRAY_ID = [ "Sensor_ID1" ,
                       "Sensor_ID2" ,
                       "Sensor_ID3" ,
                       "Sensor_ID4" ];                  
       // Array of Dataobjects
       // hier aendern!!
      var Array_Objects  = [   "javascript.0.Messdaten.xxxxx1" ,
                               "javascript.0.Messdaten.xxxxx2" ,
                               "javascript.0.Messdaten.xxxxx3" ,
                               "javascript.0.Messdaten.xxxxx4" ];       
      
      var optionsTemplate = {
          host: server,
          port: 80,
          path: null,
          method: 'POST',
          headers: {
              'Content-Type': 'application/json;charset=UTF-8',
              'Connection': 'close'
          }
      };
      function httpPost(options)
      {
          log('INFO: OpenSenseMap Start' , 'info');
      
          var dataTemplate = "";
          for (i = 0; i < ARRAY_ID.length; i++)
          {
            optionsTemplate.path = "/boxes/" + SENSEBOX_ID + "/" + ARRAY_ID[i] ;
            dataTemplate =  '{ "value": ' +  getState(Array_Objects[i]).val  + ' }';
      
            log('path: ' + optionsTemplate.path  , 'info');
            log('data: ' + dataTemplate , 'info');
      
            httpSaveData(options, dataTemplate );
          }
      }
      function httpSaveData(options, data )
      {
          options.headers['Content-Length'] = data.length;
      
          var req = http.request(options, function(res) {
              log('http Status: ' + res.statusCode);
              log('HEADERS: ' + JSON.stringify(res.headers), (res.statusCode != 201 ? 'warn' : 'info'));
      
              var bodyChunks  = [];
              res.on('data', function(chunk) {
                  bodyChunks.push(chunk);
              }).on('end', function() {
                  var body = Buffer.concat(bodyChunks);
                  log('body: ' + body);
              });
          });
      
          req.on('error', function(e) {
              log('ERROR: ' + e.message, 'warn');
          });
          req.write( data )  ;
          req.end();
      }
      // Alle 5 Minuten 
      schedule("*/5 * * * *", function(){ httpPost(optionsTemplate)});
      //httpPost(optionsTemplate );
      

      Gruß
      Harry[/i][/i]

      posted in Skripten / Logik
      H
      hfhausen
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo