Navigation

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

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    U
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 2
    • Best 0
    • Groups 0

    urian

    @urian

    0
    Reputation
    13
    Profile views
    2
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    urian Follow

    Latest posts made by urian

    • RE: Request in Adapter verliert Daten

      Hallo,

      es liegt nicht an dem debug.log. Diese Zeile zeigt nur an, das, dass die Datei geschrieben wurde.

      Die Daten sind in der Variable data und sind korrekt in einen String gepackt.

      Ich glaube fast das man den gesamten Ablauf in diesen Request packen muss und die weiteren Requests

      geschachtelt.

      Wirft bei mir eine Frage auf: Muss bei jedem Durchlauf (Abfrage Zähler) die gesamte oauth Prozedur wiederholt werden?

      Gruß Guido

      posted in Entwicklung
      U
      urian
    • Request in Adapter verliert Daten

      Hallo Zusammen,

      da ich seit kurzen über drei Discovergy Zähler verfüge, möchte ich diese mit IOBROKER über die neue Discovergy API auslesen.

      Mein Script scheitert aktuell an dem Request. Der Request wird aufgerufen und es wird auch der ConsumerKey abgeholt.

      Innerhalb des Request übergebe ich die Daten an eine globale Variable DAPI_Token. Sobald der Request verlassen wird sind die Daten weg.

      Die Funktion zum Speichern der Token wird fehlerfrei aufgerufen, aber es wird keine Datei erstellt.

      Wo liegt mein (Gedanken) Fehler?

      Danke für die Hilfe

      //***********************************************************************************************************************
      //***********************************************************************************************************************
      //***
      //***  iobroker.doscovergy Adapter
      //***
      //***  Adapter for reading Discovergy electricity meters via the API
      //***
      //***  API Documentation:  https://api.discovergy.com/docs/
      //***
      //***  (c) 2017 
      //***
      //***********************************************************************************************************************
      //***********************************************************************************************************************
      
      "use strict";
      
      //***
      //*** INIT
      //***
      var debug = true;
      var DAPIconnected = false;
      var DAPISignin = true;
      
      var utils   = require(__dirname + '/lib/utils');
      
      var adapter = utils.adapter('discovergy');
      
      var request = require('request');
      
      var DAPI_Constants = {
          BaseUrl    : 'https://api.discovergy.com/public/v1/',
          ClientName : 'iobroker.discovergy',
          TokenFile  : adapter.adapterDir + '/' + adapter.namespace + '.token.json'
      }
      
      var DAPI_Token = {
          ConsumerKey:''
      };
      
      var DAPI_MeterData = {};
      
      //***
      //*** is called when adapter shuts down - callback has to be called under any circumstances!
      //***
      adapter.on('unload', function (callback) {
          try {
              adapter.log.info('cleaned everything up...');
              callback();
          } catch (e) {
              callback();
          }
      });
      
      //***
      //*** is called when databases are connected and adapter received configuration.
      //*** start here!
      adapter.on('ready', function () {
          main();
      });
      
      function main() {
      
          //***
          //*** Gespeichertes Token lesen oder neuen consumer token paar erzeugen
          //***
          Fn_DAPIReadTokenFile();
      
      } // END main
      
      function Fn_DAPIReadTokenFile () {
      
          var FunctionName = 'Fn_DAPIReadTokenFile';
          var TokenRead = false;
      
          //*** Gespeichertes Token aus Datei lesen
          try {
              adapter.readFile(DAPI_Constants.TokenFile, 'utf8', function (error, data) {
                  if ( !error ) {
                      DAPI_Token = JSON.parse(data);
                      if ( debug ) console.log(FunctionName + ' - Read: ' + DAPI_Constants.TokenFile);
                      var TokenRead = true;
                  } else {
                      adapter.log.error(FunctionName + ' - error: ', error);                               // Error beim Einlesen
                      adapter.stop;
                  }
              });
          } catch (e) {
              if ( debug ) console.log(FunctionName + ' - ERROR TRY: ', e);
          } // END try
      
          if ( !TokenRead ) Fn_DAPIGetConsumerToken();
      
      } // END function Fn_DAPIReadTokenFile
      
      function Fn_DAPIWriteTokenFile () {
      
          var FunctionName = 'Fn_DAPIWriteTokenFile';
      
          var data = JSON.stringify(DAPI_Token);
          try {
              adapter.writeFile(DAPI_Constants.TokenFile, data, function (error) {});
              if ( debug ) console.log(FunctionName + ' - Write:');
          } catch (e) {
              adapter.log.error(FunctionName + ' - ERROR TRY : ' + e);        
          }
      
      } // END function Fn_DAPIWriteToken
      
      function Fn_DAPIGetConsumerToken () {
      
          var FunctionName = 'Fn_DAPIGetConsumerToken';
      
          var Data;
          var RequestOptions = {                 
              method: 'POST',             
              uri: DAPI_Constants.BaseUrl + 'oauth1/consumer_token',
              body: "client=" + DAPI_Constants.ClientName,
              headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
          }; // END RequestOptions   
      
          try {
              request(RequestOptions, function (error, response, body) {
                  if (!error && response.statusCode == 200) {              // kein Fehler, Inhalt in body
                      if ( debug ) console.log(FunctionName + ' - body: ', body);
                      Data = JSON.parse(body);
                      if ( debug ) console.log(FunctionName + ' - Data key:', Data.key);
                      if ( debug ) console.log(FunctionName + ' - Data secret:', Data.secret);
                      DAPI_Token.ConsumerKey = Data.key;
                      DAPI_Token.ConsumerKeySecret = Data.secret;
                      DAPI_Token.Client = Data.owner;
                      if ( debug ) console.log(FunctionName + ' - Token key:', DAPI_Token.ConsumerKey);
                      if ( debug ) console.log(FunctionName + ' - Token secret:', DAPI_Token.ConsumerKeySecret);
                      Fn_DAPIWriteTokenFile();
                  } else {
                      adapter.log.error(FunctionName + ' - error: ', error);                               // Error beim Einlesen
                      adapter.stop;
                  } 
              });
          } catch (e) {
              adapter.log.error(FunctionName + ' - Fehler TRY: ' + e);
              adapter.stop;
          }
      
      } // END function Fn_DAPIGetConsumerToken
      
      

      Debug-Ausgabe in VS-Code

      Fn_DAPIGetConsumerToken - body: {"key":"h2hn832rg4fgl4e1828caljlu0","secret":"notc9uh6j8l86lhr203cb290eg","owner":"iobroker.discovergy","attributes":{},"principal":null}

      Fn_DAPIGetConsumerToken - Data key: h2hn832rg4fgl4e1828caljlu0

      Fn_DAPIGetConsumerToken - Data secret: notc9uh6j8l86lhr203cb290eg

      Fn_DAPIGetConsumerToken - Token key: h2hn832rg4fgl4e1828caljlu0

      Fn_DAPIGetConsumerToken - Token secret: notc9uh6j8l86lhr203cb290eg

      Fn_DAPIWriteTokenFile - Write:
      3973_iobroker.discovergy.rar

      posted in Entwicklung
      U
      urian
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo