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. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe bei Skripte von request auf httpGet umbauen

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

Hilfe bei Skripte von request auf httpGet umbauen

Geplant Angeheftet Gesperrt Verschoben JavaScript
132 Beiträge 16 Kommentatoren 16.9k Aufrufe 12 Watching
  • Ä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.
  • NegaleinN Negalein

    @liv-in-sky

    //hier bitte konfigurieren
    //datenpunkt sollte vor skriptstart bereits existieren und mit Typ Text erstellt worden sein
    const dpPrices = "0_userdata.0.IQ_Sprit.IQ_Sprit";
    let user = "xxxxxxxxxx";
    let pass = "xxxxxxxxxx";
     
    //ab hier nix verändern
    const request = require("request");
    const cheerio = require("cheerio");
     
    let $;
    async function main() {
     
      var optionsLogin = {
        method: 'POST',
        url: "https://netservice.iqcard.at/de/login",
        body: "BENUID=" + user + "&PASSWT=" + pass + "&login-form-submit=login",
        jar: true,
        followRedirect: true,
        followAllRedirects: true,
        headers: {
          "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
          "accept-encoding": "gzip, deflate, br",
          "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
          "cache-control": "no-cache",
          "content-type": "application/x-www-form-urlencoded",
          "dnt": "1",
          "origin": "https://netservice.iqcard.at",
          "pragma": "no-cache",
          "sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Google Chrome\";v=\"108\"",
          "sec-ch-ua-mobile": "?0",
          "sec-ch-ua-platform": "\"Windows\"",
          "sec-fetch-dest": "empty",
          "sec-fetch-mode": "cors",
          "sec-fetch-site": "same-origin",
          "upgrade-insecure-requests": "1",
          "User-Agent": " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
          "cookie": "cAccept=true; NETSERVICE=true; IQCARDPASSWT=; IQCARDBENUID= ",
          "Referer": "https://netservice.iqcard.at/de/kunden"
        }
      };
      var optionsPriceinfo = {
        method: 'GET',
        url: "https://netservice.iqcard.at/de/netservice_preisinfo",
        jar: true,
        followRedirect: true,
        followAllRedirects: true,
        headers: {
          "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
          "accept-encoding": "gzip, deflate, br",
          "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
          "cache-control": "no-cache",
          "dnt": "1",
          "origin": "https://netservice.iqcard.at",
          "pragma": "no-cache",
          "sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Google Chrome\";v=\"108\"",
          "sec-ch-ua-mobile": "?0",
          "sec-ch-ua-platform": "\"Windows\"",
          "sec-fetch-dest": "empty",
          "sec-fetch-mode": "cors",
          "sec-fetch-site": "same-origin",
          "sec-fetch-user": "?1",
          "upgrade-insecure-requests": "1",
          "User-Agent": " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
          "Referer": "https://netservice.iqcard.at/de/netservice"
        }
      };
     
      request.jar();
      request.post(optionsLogin, () => {
        request.get(optionsPriceinfo, (error, response, body) => {
          let data = analyze(body);
          log(data);
          writeDatapoint(data);
        });
      });
     function writeDatapoint(data) {
       log("write dpPrices");
       setState(dpPrices,JSON.stringify(data));
     }
    }
    main()
     
    function analyze(body) {
      $ = cheerio.load(body);
      let countrys = $(".row > div > fieldset");
      let data = {}
      for (var i = 1; i < countrys.length; i++) {
        let country = getCountry(countrys[i]);
        data[country.countryname] = country;
      }
      return data;
    }
    function getCountry(country) {
      let data = {};
      data.services = {};
      data.info = "";
      data.countryname = $(country).find("> legend").text().trim();
      let sections = $(country).find(".panel .panel-heading");
      for (var i = 0; i < sections.length; i++) {
        let section = $(sections[i]);
        let title = section.text().trim();
        let fields = $(section.next().find("fieldset"));
        if (fields.length > 0) {
          data.services[title] = getGasPrices(fields);
        } else {
          data.services[title] = getOtherServices(section.next());
        }
      }
      if (sections.length == 0) data.info = $(country).contents().filter((i, el) => el.nodeType == 3).text().trim();
      return data;
    }
    function getGasPrices(fields) {
      let data = [];
      for (var i = 0; i < fields.contents().length; i++) {
        let field = fields.contents()[i];
        if (field.nodeType == 3 && field.data.replace(/\s/gm, "") != "") {
          let date = field.data.replace(/\s/gm, "");
          let price = $(field).next().text();
          data.push({ date: date, price: price });
        }
      }
      return data;
    }
    function getOtherServices(fields) {
      return fields.text().trim();
    }  
    
     
    schedule("59 * * * *", async function () {
       main();   
    });
    

    /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
       Drucker HP Tintenstand für iobroker ermitteln
      Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
      und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
      Author : looxer01 - 22.12.2015
      Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
      kosmetik ykuendig
    */
     
    // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
     
    var druckerIP       = '10.0.1.15';            // Drucker IP 
    var druckermod      = "HPOJ9012";                   // Drucker Modell - Strukturelement in den Variablen
    var TinteID         = "963";                  // Tinte - Tintenbezeichnung
    var TinteCyanBez    = "3JA05A";                // Bezeichnung fuer Cyan
    var TinteMagentaBez = "3JA06A";                // Bezeichnung fuer Magenta
    var TinteYellowBez  = "3JA07A";                // Bezeichnung fuer Yellow
    var TinteBlackBez   = "3JA17A";                // Bezeichnung fuer Black
     
    // ENDE der Einstellungen
     
    var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
    var request         = require('request');                                                   // Enabling for URL Request
    var cut0            = "dd:Capacity";                                                        // Marker für capacity
    var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
    var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
     
    var level_C  = 0;                                                                           // Tintenlevel
    var level_M  = 0;                                                                           // Tintenlevel
    var level_Y  = 0;                                                                           // Tintenlevel
    var level_K  = 0;                                                                           // Tintenlevel
     
    var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
    var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
    var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
    var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
     
    var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
    var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
    var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
    var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
     
    var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
    var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
    var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
    var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
     
    // Anlegen der Variablen
    createState(DruckIP,druckerIP);
    createState(DruckerName,druckermod);
    createState(Tinte,TinteID);
     
    createState(CyanInk,TinteCyanBez);
    createState(MagentaInk,TinteMagentaBez);
    createState(YellowInk,TinteYellowBez);
    createState(BlackInk,TinteBlackBez);
     
    createState(CyanLevel,0);
    createState(MagentaLevel,0);
    createState(YellowLevel,0);
    createState(BlackLevel),0;
     
    // Schedule für die Updates
    schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
    Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
     
    function Drucker () {
     
        request(druckerURL, function (error, response, body) {                              // Einlesen der XML Information
        if (!error && response.statusCode == 200) {                                         // error check
     
            // Farbe nummer 1  
            var TagEndMarker = '<'; 
            var null_position = body.indexOf(cut0) + cut0.length + 1 ;
            var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
            var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
            var zwei_position = body.indexOf(cut2)+ cut2.length  + 1;                       // zweite Position finden
            var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
            var eins_lastpos = eins_position;                                               // merken position eins
            var zwei_lastpos = zwei_position;                                               // merken position zwei
            
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            // Farbe nummer 2   
            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
            color =   body.substring(eins_position, eins_position+1) ;
            zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            // Farbe nummer 3   
            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
            color =   body.substring(eins_position, eins_position+1) ;
            zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            // Farbe nummer 4 
            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
            color =   body.substring(eins_position, eins_position+1) ;
            zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            log('Drucker Level  C ' + level_C  , "info");
            log('Drucker Level  M ' + level_M  , "info");
            log('Drucker Level  Y ' + level_Y  , "info");
            log('Drucker Level  K ' + level_K  , "info");
     
            // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
            setState(CyanLevel, level_C);
            setState(MagentaLevel, level_M);
            setState(YellowLevel, level_Y);
            setState(BlackLevel, level_K);
            setState(DruckIP, druckerIP);
     
        } else  {  //   if (!error && response.statusCode == 200) {
            log(error);
            log('Kein Drucker gefunden');
        }
     
        }); // end of request
     
    } // end of function
    

    var logging = true; 
    var debugging = false; 
    var debugging_response = false;       //nur im Fehlerfall auf true. Hiermit wird die Antwort der Internetadresse protokolliert
    var CCU_Version = 3;                  //Hier eine Zahl eintragen: 2 = CCU2 // 3 = CCU3 // 4 = Rasperrymatic
    //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
    const id_Version_installiert = "hm-rega.0.QEQ1301545.0.FIRMWARE_VERSION";
    //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
    const id_Version_Internet = '0_userdata.0.CCU3.Servicemeldungen.Verfuegbare_CCU-Firmware';
    const id_Update_Internet = '0_userdata.0.CCU3.Servicemeldungen.Update_verfuegbar';
     
     
    var observation = true;         //Dauerhafte Überwachung der Firmware (true = aktiv // false =inaktiv)
    var onetime = true;             //Prüft beim Scriptstart auf aktuelle Firmware
     
    //Prio für Pushover
    var prio_Firmware = 0;
     
     
    //Variablen für Pushover
    var sendpush = false;            //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
    var pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
    var pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
    var pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
    var pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
    let _prio;
    let _titel;
    let _message;
    var _device = 'TPhone';         //Welches Gerät soll die Nachricht bekommen
    //var _device = 'All'; 
     
    //Variablen für Telegram
    var sendtelegram = true;            //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt
    var user_telegram = '';             //User der die Nachricht bekommen soll
     
    //Variable zum verschicken der Servicemeldungen per eMail
    var sendmail = false;            //true = verschickt per email Nachrchten // false = email wird nicht benutzt
     
     
    // ab hier keine Änderung
     
    let _message_tmp;
    var request = require('request');
     
    function send_pushover_V4 (_device, _message, _titel, _prio) {
            if (_prio === 0){let pushover_Instanz =  pushover_Instanz0}
            else if (_prio == 1){pushover_Instanz =  pushover_Instanz1}
            else if (_prio == 2){pushover_Instanz =  pushover_Instanz2}
            else {pushover_Instanz =  pushover_Instanz3}
            sendTo(pushover_Instanz, { 
            device: _device,
            message: _message, 
            title: _titel, 
            priority: _prio,
            retry: 60,
            expire: 600,
            html: 1
        }); 
    }
     
    function send_telegram (_message, user_telegram) {
        sendTo('telegram.0', { 
            text: _message,
            user: user_telegram,
            parse_mode: 'HTML'
        }); 
    }
     
    function send_mail (_message) {
        sendTo("email", {
            //from:    "iobroker@mydomain.com",
            //to:      "aabbcc@gmail.com",
            subject: "Servicemeldung",
            text:    _message
        });
    }
     
    function func_Version(){
        var Version_Internet = getState(id_Version_Internet).val;
        var ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345';
        var ccu3 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=9A499D4429';
        var Raspi = 'https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js?_version_=CURRENT_VERSION';
        let ccu;
        if(CCU_Version == 3){ccu = ccu3;}
        else if(CCU_Version == 4){ccu = Raspi;}
        else {ccu = ccu2;}
        url = ccu;
     
        request({url : url},
     
            function (error, response, body) {
                var Version_installiert = (getState(id_Version_installiert).val).trim();
                var Version = body.split("'");
                if(error){
                    log('error: ' + error);
                } else {
                    if(Version_Internet === ''){
                        if(logging){
                            log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                        }
                        setState(id_Version_Internet,Version[1]);
                    }
                    
                    if(Version_installiert == Version[1]){
                        setState(id_Update_Internet,false);
                        if(logging){
                            log('Installierte Firmware '+Version_installiert  +' der CCU ist aktuell');
                        }
                    }
                    else{
                        setState(id_Update_Internet,true);
                        if(logging){
                            log('Installierte Firmware '+Version_installiert  +' der CCU ist nicht aktuell. Aktuell verfügbare Version: '+Version[1]);
                        }
                        
                        if(Version_Internet == Version[1]){
                            if(debugging){
                                log('[DEBUG] ' +'Version Internet hat sich nicht verändert');
                            }
                        } else {
                            if(debugging){
                                log('[DEBUG] ' +'Installierte Firmware der CCU ist nicht aktuell.');
                            }
                            setState(id_Version_Internet,Version[1]);
                             _message_tmp = 'Installierte Firmware der CCU ist nicht aktuell. Installiert: ' +Version_installiert +' --- Verfügbare Version: '+Version[1];
                            
                             //Push verschicken
                            if(sendpush){
                                _prio = prio_Firmware;
                                _titel = 'CCU-Firmware';
                                _message = _message_tmp;
                                send_pushover_V4(_device, _message, _titel, _prio);
                            }
                            if(sendtelegram){
                                _message = _message_tmp;
                                send_telegram(_message, user_telegram);
                            }
                            if(sendmail){
                                _message = _message_tmp;
                                send_mail(_message);
                            }
                        }         
                    }
            
                    if(debugging_response){
                        log('body: ' + body);
                        log('Länge ' + Version.length + ' --- Version: ' + Version[1]);
                        log('response: ' + JSON.stringify(response));
                    }
                }
            }
        );
    }
     
    if(observation){
        //Nachts einmalig ausführen 00:30 Schaltzeiten berechnen
        schedule("54 05 * * *", func_Version);
    }
     
    if(onetime){
        //beim Starten
        func_Version();
    }
    

    var request = require("request");
    
    var myJson = {};
    
    var pfad = "Fronius_Symo_Hybrid_Max.";
    
    //var idDAY_ENERGY        = pfad + "ENERGY_DAY";
    var idPAC               = pfad + "PAC";
    var idYEAR_ENERGY       = pfad + "ENERGY_YEAR";
    var idTOTAL_ENERGY      = pfad + "ENERGY_TOTAL";
    
    
    //createState(idDAY_ENERGY, 0, {
    //    name: 'Energie Tag',
    //    desc: 'Energie Tag',
    //    type: 'number',
    //    role: 'value',
    //    unit: 'Wh'
    //});
    
    createState(idPAC, 0, {
        name: 'Leistung',
        desc: 'Leistung',
        type: 'number',
        role: 'value',
        unit: 'W'
    });
    
    createState(idYEAR_ENERGY, 0, {
        name: 'Energie Jahr',
        desc: 'Energie Jahr',
        type: 'number',
        role: 'value',
        unit: 'Wh'
    });
    
    createState(idTOTAL_ENERGY, 0, {
        name: 'Energie Total',
        desc: 'Energie Total',
        type: 'number',
        role: 'value',
        unit: 'Wh'
    });
    
    
    
    
    function parseJson(text) {
        if (text === "") return {};
        try {
            json = JSON.parse(text);
        } catch (ex) {
            json = {};
        }
        if(!json) json = {};
        return json;
    }
    
    function readJson(url, callback) {
        request(url, function (err, state, body){
            if (body) {
                var json = parseJson(body);
                callback(null, json);
            } else {
                var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                log(error, "warn");  
                callback(error, null);
            }
        });
    }
    
    
    var url = 'http://10.0.1.90/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System';
    
    function main() {
        readJson(url, function(err,json) {
            if(!err) {
                myJson = json;
    //            log("DAY_ENERGY: "      + myJson.Body.Data.DAY_ENERGY.Values[1],"info");
                log("PAC: "             + myJson.Body.Data.PAC.Values[1],"info");
                log("YEAR_ENERGY: "     + myJson.Body.Data.YEAR_ENERGY.Values[1],"info");
                log("TOTAL_ENERGY: "    + myJson.Body.Data.TOTAL_ENERGY.Values[1],"info");
    //            setState(idDAY_ENERGY   ,myJson.Body.Data.DAY_ENERGY.Values[1]);
                setState(idPAC          ,myJson.Body.Data.PAC.Values[1]);
                setState(idYEAR_ENERGY  ,myJson.Body.Data.YEAR_ENERGY.Values[1]);
                setState(idTOTAL_ENERGY ,myJson.Body.Data.TOTAL_ENERGY.Values[1]);
            } else {
                log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                myJson = {};
            }
        });
    }
    
    schedule("*/10 * * * * *", function () { // alle 10 Sekunden die Werte abfragen
        main();
    });
    
    // Beim Skriptstart die Werte abfragen
    setTimeout(main,500);
    

    var request = require("request");
    
    var myJson = {};
    
    var pfad = "Fronius_Symo_Hybrid_Max.";
    
    var idDAY_ENERGY        = pfad + "ENERGY_DAY";
    //var idPAC               = pfad + "PAC";
    //var idYEAR_ENERGY       = pfad + "ENERGY_YEAR";
    //var idTOTAL_ENERGY      = pfad + "ENERGY_TOTAL";
    
    
    createState(idDAY_ENERGY, 0, {
        name: 'Energie Tag',
        desc: 'Energie Tag',
        type: 'number',
        role: 'value',
        unit: 'Wh'
    });
    
    //createState(idPAC, 0, {
    //    name: 'Leistung',
    //   desc: 'Leistung',
    //    type: 'number',
    //    role: 'value',
    //    unit: 'W'
    //});
    
    //createState(idYEAR_ENERGY, 0, {
    //    name: 'Energie Jahr',
    //    desc: 'Energie Jahr',
    //    type: 'number',
    //    role: 'value',
    //    unit: 'Wh'
    //});
    
    //createState(idTOTAL_ENERGY, 0, {
    //    name: 'Energie Total',
    //    desc: 'Energie Total',
    //    type: 'number',
    //    role: 'value',
    //    unit: 'Wh'
    //});
    
    
    
    
    function parseJson(text) {
        if (text === "") return {};
        try {
            json = JSON.parse(text);
        } catch (ex) {
            json = {};
        }
        if(!json) json = {};
        return json;
    }
    
    function readJson(url, callback) {
        request(url, function (err, state, body){
            if (body) {
                var json = parseJson(body);
                callback(null, json);
            } else {
                var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                log(error, "warn");  
                callback(error, null);
            }
        });
    }
    
    
    var url = 'http://10.0.1.90/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System';
    
    function main() {
        readJson(url, function(err,json) {
            if(!err) {
                myJson = json;
                log("DAY_ENERGY: "      + myJson.Body.Data.DAY_ENERGY.Values[1],"info");
    //            log("PAC: "             + myJson.Body.Data.PAC.Values[1],"info");
    //            log("YEAR_ENERGY: "     + myJson.Body.Data.YEAR_ENERGY.Values[1],"info");
    //            log("TOTAL_ENERGY: "    + myJson.Body.Data.TOTAL_ENERGY.Values[1],"info");
                setState(idDAY_ENERGY   ,myJson.Body.Data.DAY_ENERGY.Values[1]);
    //            setState(idPAC          ,myJson.Body.Data.PAC.Values[1]);
    //            setState(idYEAR_ENERGY  ,myJson.Body.Data.YEAR_ENERGY.Values[1]);
    //            setState(idTOTAL_ENERGY ,myJson.Body.Data.TOTAL_ENERGY.Values[1]);
            } else {
                log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                myJson = {};
            }
        });
    }
    
    schedule("59 23 * * *", function () { // täglich um 23 Uhr 59 Minuten
        main();
    });
    
    // Beim Skriptstart die Werte abfragen
    setTimeout(main,500);
    

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von
    #10

    @negalein

    Muss jetzt dann weg
    Komme Mittag wieder, wenn sich kein anderer findet, sehe ich mir das an

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    NegaleinN 1 Antwort Letzte Antwort
    0
    • liv-in-skyL liv-in-sky

      @negalein

      Muss jetzt dann weg
      Komme Mittag wieder, wenn sich kein anderer findet, sehe ich mir das an

      NegaleinN Offline
      NegaleinN Offline
      Negalein
      Global Moderator
      schrieb am zuletzt editiert von
      #11

      @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

      Komme Mittag wieder, wenn sich kein anderer findet, sehe ich mir das an

      Danke :hugging_face:

      ° Node.js: 20.17.0 NPM: 10.8.2
      ° Proxmox, Ubuntu 22.04.3 LTS
      ° Fixer ---> iob fix

      liv-in-skyL 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

        Komme Mittag wieder, wenn sich kein anderer findet, sehe ich mir das an

        Danke :hugging_face:

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #12

        @negalein

        die fronius scripte könntest du evtl selbst probieren - die sind ähnlich, wie das , was wir gerade gemacht hatten

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        NegaleinN 1 Antwort Letzte Antwort
        1
        • liv-in-skyL liv-in-sky

          @negalein

          die fronius scripte könntest du evtl selbst probieren - die sind ähnlich, wie das , was wir gerade gemacht hatten

          NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #13

          @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

          die fronius scripte könntest du evtl selbst probieren - die sind ähnlich, wie das , was wir gerade gemacht hatten

          würde es so funktionieren?

          //var request = require("request");
           
          var myJson = {};
           
          var pfad = "Fronius_Symo_Hybrid_Max.";
           
          //var idDAY_ENERGY        = pfad + "ENERGY_DAY";
          var idPAC               = pfad + "PAC";
          var idYEAR_ENERGY       = pfad + "ENERGY_YEAR";
          var idTOTAL_ENERGY      = pfad + "ENERGY_TOTAL";
           
           
          //createState(idDAY_ENERGY, 0, {
          //    name: 'Energie Tag',
          //    desc: 'Energie Tag',
          //    type: 'number',
          //    role: 'value',
          //    unit: 'Wh'
          //});
           
          createState(idPAC, 0, {
              name: 'Leistung',
              desc: 'Leistung',
              type: 'number',
              role: 'value',
              unit: 'W'
          });
           
          createState(idYEAR_ENERGY, 0, {
              name: 'Energie Jahr',
              desc: 'Energie Jahr',
              type: 'number',
              role: 'value',
              unit: 'Wh'
          });
           
          createState(idTOTAL_ENERGY, 0, {
              name: 'Energie Total',
              desc: 'Energie Total',
              type: 'number',
              role: 'value',
              unit: 'Wh'
          });
           
           
           
           
          function parseJson(text) {
              if (text === "") return {};
              try {
                  json = JSON.parse(text);
              } catch (ex) {
                  json = {};
              }
              if(!json) json = {};
              return json;
          }
           
          function readJson(url, callback) {
              httpGet(url, { timeout: 3000, responseType: 'text' },function(err,response) {
                  const body=response.data;
                      var json = parseJson(body);
                      callback(null, json);
                  } else {
                      var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                      log(error, "warn");  
                      callback(error, null);
                  }
              });
          }
           
           
          var url = 'http://10.0.1.90/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System';
           
          function main() {
              readJson(url, function(err,json) {
                  if(!err) {
                      myJson = json;
          //            log("DAY_ENERGY: "      + myJson.Body.Data.DAY_ENERGY.Values[1],"info");
                      log("PAC: "             + myJson.Body.Data.PAC.Values[1],"info");
                      log("YEAR_ENERGY: "     + myJson.Body.Data.YEAR_ENERGY.Values[1],"info");
                      log("TOTAL_ENERGY: "    + myJson.Body.Data.TOTAL_ENERGY.Values[1],"info");
          //            setState(idDAY_ENERGY   ,myJson.Body.Data.DAY_ENERGY.Values[1]);
                      setState(idPAC          ,myJson.Body.Data.PAC.Values[1]);
                      setState(idYEAR_ENERGY  ,myJson.Body.Data.YEAR_ENERGY.Values[1]);
                      setState(idTOTAL_ENERGY ,myJson.Body.Data.TOTAL_ENERGY.Values[1]);
                  } else {
                      log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                      myJson = {};
                  }
              });
          }
           
          schedule("*/10 * * * * *", function () { // alle 10 Sekunden die Werte abfragen
              main();
          });
           
          // Beim Skriptstart die Werte abfragen
          setTimeout(main,500);
          

          var request = require("request");
          

          geändert in

          //var request = require("request");
          

          und

              request(url, function (err, state, body){
                  if (body) {
          

          ersetz durch

              httpGet(url, { timeout: 3000, responseType: 'text' },function(err,response) {
                  const body=response.data;
          

          ° Node.js: 20.17.0 NPM: 10.8.2
          ° Proxmox, Ubuntu 22.04.3 LTS
          ° Fixer ---> iob fix

          paul53P 1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

            @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

            die fronius scripte könntest du evtl selbst probieren - die sind ähnlich, wie das , was wir gerade gemacht hatten

            würde es so funktionieren?

            //var request = require("request");
             
            var myJson = {};
             
            var pfad = "Fronius_Symo_Hybrid_Max.";
             
            //var idDAY_ENERGY        = pfad + "ENERGY_DAY";
            var idPAC               = pfad + "PAC";
            var idYEAR_ENERGY       = pfad + "ENERGY_YEAR";
            var idTOTAL_ENERGY      = pfad + "ENERGY_TOTAL";
             
             
            //createState(idDAY_ENERGY, 0, {
            //    name: 'Energie Tag',
            //    desc: 'Energie Tag',
            //    type: 'number',
            //    role: 'value',
            //    unit: 'Wh'
            //});
             
            createState(idPAC, 0, {
                name: 'Leistung',
                desc: 'Leistung',
                type: 'number',
                role: 'value',
                unit: 'W'
            });
             
            createState(idYEAR_ENERGY, 0, {
                name: 'Energie Jahr',
                desc: 'Energie Jahr',
                type: 'number',
                role: 'value',
                unit: 'Wh'
            });
             
            createState(idTOTAL_ENERGY, 0, {
                name: 'Energie Total',
                desc: 'Energie Total',
                type: 'number',
                role: 'value',
                unit: 'Wh'
            });
             
             
             
             
            function parseJson(text) {
                if (text === "") return {};
                try {
                    json = JSON.parse(text);
                } catch (ex) {
                    json = {};
                }
                if(!json) json = {};
                return json;
            }
             
            function readJson(url, callback) {
                httpGet(url, { timeout: 3000, responseType: 'text' },function(err,response) {
                    const body=response.data;
                        var json = parseJson(body);
                        callback(null, json);
                    } else {
                        var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                        log(error, "warn");  
                        callback(error, null);
                    }
                });
            }
             
             
            var url = 'http://10.0.1.90/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System';
             
            function main() {
                readJson(url, function(err,json) {
                    if(!err) {
                        myJson = json;
            //            log("DAY_ENERGY: "      + myJson.Body.Data.DAY_ENERGY.Values[1],"info");
                        log("PAC: "             + myJson.Body.Data.PAC.Values[1],"info");
                        log("YEAR_ENERGY: "     + myJson.Body.Data.YEAR_ENERGY.Values[1],"info");
                        log("TOTAL_ENERGY: "    + myJson.Body.Data.TOTAL_ENERGY.Values[1],"info");
            //            setState(idDAY_ENERGY   ,myJson.Body.Data.DAY_ENERGY.Values[1]);
                        setState(idPAC          ,myJson.Body.Data.PAC.Values[1]);
                        setState(idYEAR_ENERGY  ,myJson.Body.Data.YEAR_ENERGY.Values[1]);
                        setState(idTOTAL_ENERGY ,myJson.Body.Data.TOTAL_ENERGY.Values[1]);
                    } else {
                        log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                        myJson = {};
                    }
                });
            }
             
            schedule("*/10 * * * * *", function () { // alle 10 Sekunden die Werte abfragen
                main();
            });
             
            // Beim Skriptstart die Werte abfragen
            setTimeout(main,500);
            

            var request = require("request");
            

            geändert in

            //var request = require("request");
            

            und

                request(url, function (err, state, body){
                    if (body) {
            

            ersetz durch

                httpGet(url, { timeout: 3000, responseType: 'text' },function(err,response) {
                    const body=response.data;
            
            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #14

            @negalein sagte: ersetz durch
            Besser:

                httpGet(url, { timeout: 3000, responseType: 'text' }, function(err, response) {
                    if(!err) {
                        const body = response.data;
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            NegaleinN 1 Antwort Letzte Antwort
            2
            • paul53P paul53

              @negalein sagte: ersetz durch
              Besser:

                  httpGet(url, { timeout: 3000, responseType: 'text' }, function(err, response) {
                      if(!err) {
                          const body = response.data;
              
              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #15

              @paul53 sagte in Hilfe bei Skripte von request auf httpGet umbauen:

              Besser

              Danke, funktioniert. :)

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              1 Antwort Letzte Antwort
              0
              • NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                schrieb am zuletzt editiert von
                #16

                @paul53

                bei dem "Volkszähler-Script" bin ich jetzt schon mit dem Timeout auf 10000 rauf.
                Trotzdem kommt immer wieder die Warn-Meldung.

                Kann man diese Warn-Meldung unterdrücken?
                Oder besser mit dem Timeout testen, bis die Meldung nicht mehr kommt?

                ° Node.js: 20.17.0 NPM: 10.8.2
                ° Proxmox, Ubuntu 22.04.3 LTS
                ° Fixer ---> iob fix

                liv-in-skyL 1 Antwort Letzte Antwort
                0
                • NegaleinN Negalein

                  @paul53

                  bei dem "Volkszähler-Script" bin ich jetzt schon mit dem Timeout auf 10000 rauf.
                  Trotzdem kommt immer wieder die Warn-Meldung.

                  Kann man diese Warn-Meldung unterdrücken?
                  Oder besser mit dem Timeout testen, bis die Meldung nicht mehr kommt?

                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von
                  #17

                  @negalein bei einem timeout von 10 sekunden denke ich, dass es evtl ein andres problem gibt - eigentlich sind 2000-4000 schon zu lange -

                  kannst du mal den volkszähler neustarten - ansonsten fällt mir gerade nix dazu ein

                  kommt der fehler immer? wenn ja, funktioniert es ein paarmal und ab einem zeitpunkt dann nicht mehr - oder funktioniert es immer wieder mal ?

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  HomoranH NegaleinN 2 Antworten Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @negalein bei einem timeout von 10 sekunden denke ich, dass es evtl ein andres problem gibt - eigentlich sind 2000-4000 schon zu lange -

                    kannst du mal den volkszähler neustarten - ansonsten fällt mir gerade nix dazu ein

                    kommt der fehler immer? wenn ja, funktioniert es ein paarmal und ab einem zeitpunkt dann nicht mehr - oder funktioniert es immer wieder mal ?

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #18

                    @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                    eigentlich sind 2000-4000 schon zu lange -

                    ehrlich?
                    ich hatte mit dem Wiffi bei 2000 auch einige timeout exceeded, nach Erhöhung auf 4000 bisher keinen einzigen mehr.
                    Später hab ich gesehen, dass im Originalskript 3000 msec timeout eingestellt waren.

                    ich denke dass es u.a. auch auf das Netzwerk und das angesprochene Gerät ankommt.
                    Beim Wiffi ist WLAN und ESP im Spiel.

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    liv-in-skyL 2 Antworten Letzte Antwort
                    0
                    • HomoranH Homoran

                      @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                      eigentlich sind 2000-4000 schon zu lange -

                      ehrlich?
                      ich hatte mit dem Wiffi bei 2000 auch einige timeout exceeded, nach Erhöhung auf 4000 bisher keinen einzigen mehr.
                      Später hab ich gesehen, dass im Originalskript 3000 msec timeout eingestellt waren.

                      ich denke dass es u.a. auch auf das Netzwerk und das angesprochene Gerät ankommt.
                      Beim Wiffi ist WLAN und ESP im Spiel.

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #19

                      @homoran

                      ja ehrlich - ein device , dass solange braucht ist seltsam

                      wobei ich auch bei den sonoffs mit httpget immer auf 4000 gehe, da ich sonst fehler habe -

                      ich bin mir nicht sicher, ob diese 2000 wirklich 2 sekunden reine abfrage sind oder ob das irgendwie mehr beinhaltet

                      selbst das auslesen eines unifi controllers mit massig daten dauert keine 2 sekunden (wenn das netwerk in ordnung ist)

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      haus-automatisierungH 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                        eigentlich sind 2000-4000 schon zu lange -

                        ehrlich?
                        ich hatte mit dem Wiffi bei 2000 auch einige timeout exceeded, nach Erhöhung auf 4000 bisher keinen einzigen mehr.
                        Später hab ich gesehen, dass im Originalskript 3000 msec timeout eingestellt waren.

                        ich denke dass es u.a. auch auf das Netzwerk und das angesprochene Gerät ankommt.
                        Beim Wiffi ist WLAN und ESP im Spiel.

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #20

                        @homoran sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                        WLAN und ESP i

                        das vermute ich auch - da ist aber dann die frage, ob es mit dem alten request auch immer zu fehlern gekommen ist (das script war auf "alle 2 sekunde abfrage" gestellt

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL liv-in-sky

                          @homoran

                          ja ehrlich - ein device , dass solange braucht ist seltsam

                          wobei ich auch bei den sonoffs mit httpget immer auf 4000 gehe, da ich sonst fehler habe -

                          ich bin mir nicht sicher, ob diese 2000 wirklich 2 sekunden reine abfrage sind oder ob das irgendwie mehr beinhaltet

                          selbst das auslesen eines unifi controllers mit massig daten dauert keine 2 sekunden (wenn das netwerk in ordnung ist)

                          haus-automatisierungH Online
                          haus-automatisierungH Online
                          haus-automatisierung
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #21

                          @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                          ich bin mir nicht sicher, ob diese 2000 wirklich 2 sekunden reine abfrage sind oder ob das irgendwie mehr beinhaltet

                            // `timeout` specifies the number of milliseconds before the request times out.
                            // If the request takes longer than `timeout`, the request will be aborted.
                          

                          Was meinst Du mit "reine Abfrage"? Es geht einfach um die Zeit, in welcher auf eine Antwort vom Server gewartet wird. 2 Sekunden ist ja schon eine Ewigkeit.

                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                          📚 Meine inoffizielle ioBroker Dokumentation

                          liv-in-skyL 1 Antwort Letzte Antwort
                          0
                          • haus-automatisierungH haus-automatisierung

                            @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                            ich bin mir nicht sicher, ob diese 2000 wirklich 2 sekunden reine abfrage sind oder ob das irgendwie mehr beinhaltet

                              // `timeout` specifies the number of milliseconds before the request times out.
                              // If the request takes longer than `timeout`, the request will be aborted.
                            

                            Was meinst Du mit "reine Abfrage"? Es geht einfach um die Zeit, in welcher auf eine Antwort vom Server gewartet wird. 2 Sekunden ist ja schon eine Ewigkeit.

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #22

                            @haus-automatisierung das dachte ich auch - aber irgendwie sind doch diese zeiten zu lange - was war den ein timeout bei dem request ? weißt du das

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            haus-automatisierungH 1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL liv-in-sky

                              @negalein bei einem timeout von 10 sekunden denke ich, dass es evtl ein andres problem gibt - eigentlich sind 2000-4000 schon zu lange -

                              kannst du mal den volkszähler neustarten - ansonsten fällt mir gerade nix dazu ein

                              kommt der fehler immer? wenn ja, funktioniert es ein paarmal und ab einem zeitpunkt dann nicht mehr - oder funktioniert es immer wieder mal ?

                              NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #23

                              @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                              kommt der fehler immer? wenn ja, funktioniert es ein paarmal und ab einem zeitpunkt dann nicht mehr - oder funktioniert es immer wieder mal ?

                              alle 10 Minuten. Und zur vollen Stunde 1x in 1 Minute.

                              wenn es so bleibt, kann ich mit den 336 Warns in 24 Std. leben! :grin:

                              Werde den Timeout mal etwas runtersetzen und beobachten.

                              kannst du mal den volkszähler neustarten

                              schon gdemacht, ohne Auswirkung

                              @homoran sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                              ich denke dass es u.a. auch auf das Netzwerk und das angesprochene Gerät ankommt.

                              Der Pi hängt mit LAN im Netz.
                              Meldungen kommen erst seit httpGet.

                              @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                              das vermute ich auch - da ist aber dann die frage, ob es mit dem alten request auch immer zu fehlern gekommen ist (das script war auf "alle 2 sekunde abfrage" gestellt

                              siehe oben

                              ° Node.js: 20.17.0 NPM: 10.8.2
                              ° Proxmox, Ubuntu 22.04.3 LTS
                              ° Fixer ---> iob fix

                              liv-in-skyL 1 Antwort Letzte Antwort
                              0
                              • NegaleinN Negalein

                                @liv-in-sky

                                //hier bitte konfigurieren
                                //datenpunkt sollte vor skriptstart bereits existieren und mit Typ Text erstellt worden sein
                                const dpPrices = "0_userdata.0.IQ_Sprit.IQ_Sprit";
                                let user = "xxxxxxxxxx";
                                let pass = "xxxxxxxxxx";
                                 
                                //ab hier nix verändern
                                const request = require("request");
                                const cheerio = require("cheerio");
                                 
                                let $;
                                async function main() {
                                 
                                  var optionsLogin = {
                                    method: 'POST',
                                    url: "https://netservice.iqcard.at/de/login",
                                    body: "BENUID=" + user + "&PASSWT=" + pass + "&login-form-submit=login",
                                    jar: true,
                                    followRedirect: true,
                                    followAllRedirects: true,
                                    headers: {
                                      "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
                                      "accept-encoding": "gzip, deflate, br",
                                      "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                                      "cache-control": "no-cache",
                                      "content-type": "application/x-www-form-urlencoded",
                                      "dnt": "1",
                                      "origin": "https://netservice.iqcard.at",
                                      "pragma": "no-cache",
                                      "sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Google Chrome\";v=\"108\"",
                                      "sec-ch-ua-mobile": "?0",
                                      "sec-ch-ua-platform": "\"Windows\"",
                                      "sec-fetch-dest": "empty",
                                      "sec-fetch-mode": "cors",
                                      "sec-fetch-site": "same-origin",
                                      "upgrade-insecure-requests": "1",
                                      "User-Agent": " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
                                      "cookie": "cAccept=true; NETSERVICE=true; IQCARDPASSWT=; IQCARDBENUID= ",
                                      "Referer": "https://netservice.iqcard.at/de/kunden"
                                    }
                                  };
                                  var optionsPriceinfo = {
                                    method: 'GET',
                                    url: "https://netservice.iqcard.at/de/netservice_preisinfo",
                                    jar: true,
                                    followRedirect: true,
                                    followAllRedirects: true,
                                    headers: {
                                      "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
                                      "accept-encoding": "gzip, deflate, br",
                                      "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
                                      "cache-control": "no-cache",
                                      "dnt": "1",
                                      "origin": "https://netservice.iqcard.at",
                                      "pragma": "no-cache",
                                      "sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Google Chrome\";v=\"108\"",
                                      "sec-ch-ua-mobile": "?0",
                                      "sec-ch-ua-platform": "\"Windows\"",
                                      "sec-fetch-dest": "empty",
                                      "sec-fetch-mode": "cors",
                                      "sec-fetch-site": "same-origin",
                                      "sec-fetch-user": "?1",
                                      "upgrade-insecure-requests": "1",
                                      "User-Agent": " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
                                      "Referer": "https://netservice.iqcard.at/de/netservice"
                                    }
                                  };
                                 
                                  request.jar();
                                  request.post(optionsLogin, () => {
                                    request.get(optionsPriceinfo, (error, response, body) => {
                                      let data = analyze(body);
                                      log(data);
                                      writeDatapoint(data);
                                    });
                                  });
                                 function writeDatapoint(data) {
                                   log("write dpPrices");
                                   setState(dpPrices,JSON.stringify(data));
                                 }
                                }
                                main()
                                 
                                function analyze(body) {
                                  $ = cheerio.load(body);
                                  let countrys = $(".row > div > fieldset");
                                  let data = {}
                                  for (var i = 1; i < countrys.length; i++) {
                                    let country = getCountry(countrys[i]);
                                    data[country.countryname] = country;
                                  }
                                  return data;
                                }
                                function getCountry(country) {
                                  let data = {};
                                  data.services = {};
                                  data.info = "";
                                  data.countryname = $(country).find("> legend").text().trim();
                                  let sections = $(country).find(".panel .panel-heading");
                                  for (var i = 0; i < sections.length; i++) {
                                    let section = $(sections[i]);
                                    let title = section.text().trim();
                                    let fields = $(section.next().find("fieldset"));
                                    if (fields.length > 0) {
                                      data.services[title] = getGasPrices(fields);
                                    } else {
                                      data.services[title] = getOtherServices(section.next());
                                    }
                                  }
                                  if (sections.length == 0) data.info = $(country).contents().filter((i, el) => el.nodeType == 3).text().trim();
                                  return data;
                                }
                                function getGasPrices(fields) {
                                  let data = [];
                                  for (var i = 0; i < fields.contents().length; i++) {
                                    let field = fields.contents()[i];
                                    if (field.nodeType == 3 && field.data.replace(/\s/gm, "") != "") {
                                      let date = field.data.replace(/\s/gm, "");
                                      let price = $(field).next().text();
                                      data.push({ date: date, price: price });
                                    }
                                  }
                                  return data;
                                }
                                function getOtherServices(fields) {
                                  return fields.text().trim();
                                }  
                                
                                 
                                schedule("59 * * * *", async function () {
                                   main();   
                                });
                                

                                /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
                                   Drucker HP Tintenstand für iobroker ermitteln
                                  Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
                                  und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
                                  Author : looxer01 - 22.12.2015
                                  Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
                                  kosmetik ykuendig
                                */
                                 
                                // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
                                 
                                var druckerIP       = '10.0.1.15';            // Drucker IP 
                                var druckermod      = "HPOJ9012";                   // Drucker Modell - Strukturelement in den Variablen
                                var TinteID         = "963";                  // Tinte - Tintenbezeichnung
                                var TinteCyanBez    = "3JA05A";                // Bezeichnung fuer Cyan
                                var TinteMagentaBez = "3JA06A";                // Bezeichnung fuer Magenta
                                var TinteYellowBez  = "3JA07A";                // Bezeichnung fuer Yellow
                                var TinteBlackBez   = "3JA17A";                // Bezeichnung fuer Black
                                 
                                // ENDE der Einstellungen
                                 
                                var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
                                var request         = require('request');                                                   // Enabling for URL Request
                                var cut0            = "dd:Capacity";                                                        // Marker für capacity
                                var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
                                var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
                                 
                                var level_C  = 0;                                                                           // Tintenlevel
                                var level_M  = 0;                                                                           // Tintenlevel
                                var level_Y  = 0;                                                                           // Tintenlevel
                                var level_K  = 0;                                                                           // Tintenlevel
                                 
                                var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
                                var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
                                var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
                                var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
                                 
                                var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
                                var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
                                var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
                                var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
                                 
                                var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
                                var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
                                var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
                                var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
                                 
                                // Anlegen der Variablen
                                createState(DruckIP,druckerIP);
                                createState(DruckerName,druckermod);
                                createState(Tinte,TinteID);
                                 
                                createState(CyanInk,TinteCyanBez);
                                createState(MagentaInk,TinteMagentaBez);
                                createState(YellowInk,TinteYellowBez);
                                createState(BlackInk,TinteBlackBez);
                                 
                                createState(CyanLevel,0);
                                createState(MagentaLevel,0);
                                createState(YellowLevel,0);
                                createState(BlackLevel),0;
                                 
                                // Schedule für die Updates
                                schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
                                Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
                                 
                                function Drucker () {
                                 
                                    request(druckerURL, function (error, response, body) {                              // Einlesen der XML Information
                                    if (!error && response.statusCode == 200) {                                         // error check
                                 
                                        // Farbe nummer 1  
                                        var TagEndMarker = '<'; 
                                        var null_position = body.indexOf(cut0) + cut0.length + 1 ;
                                        var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
                                        var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
                                        var zwei_position = body.indexOf(cut2)+ cut2.length  + 1;                       // zweite Position finden
                                        var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
                                        var eins_lastpos = eins_position;                                               // merken position eins
                                        var zwei_lastpos = zwei_position;                                               // merken position zwei
                                        
                                 
                                        if("C" == color){ level_C  = level_string; }
                                        if("M" == color){ level_M  = level_string; }
                                        if("Y" == color){ level_Y  = level_string; }
                                        if("K" == color){ level_K  = level_string; }
                                 
                                        eins_lastpos = eins_position + 10;
                                        zwei_lastpos = zwei_position + 10;               
                                 
                                        // Farbe nummer 2   
                                        eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
                                        color =   body.substring(eins_position, eins_position+1) ;
                                        zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
                                        level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
                                 
                                        if("C" == color){ level_C  = level_string; }
                                        if("M" == color){ level_M  = level_string; }
                                        if("Y" == color){ level_Y  = level_string; }
                                        if("K" == color){ level_K  = level_string; }
                                 
                                        eins_lastpos = eins_position + 10;
                                        zwei_lastpos = zwei_position + 10;               
                                 
                                        // Farbe nummer 3   
                                        eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
                                        color =   body.substring(eins_position, eins_position+1) ;
                                        zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
                                        level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
                                 
                                        if("C" == color){ level_C  = level_string; }
                                        if("M" == color){ level_M  = level_string; }
                                        if("Y" == color){ level_Y  = level_string; }
                                        if("K" == color){ level_K  = level_string; }
                                 
                                        eins_lastpos = eins_position + 10;
                                        zwei_lastpos = zwei_position + 10;               
                                 
                                        // Farbe nummer 4 
                                        eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
                                        color =   body.substring(eins_position, eins_position+1) ;
                                        zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
                                        level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
                                 
                                        if("C" == color){ level_C  = level_string; }
                                        if("M" == color){ level_M  = level_string; }
                                        if("Y" == color){ level_Y  = level_string; }
                                        if("K" == color){ level_K  = level_string; }
                                 
                                        eins_lastpos = eins_position + 10;
                                        zwei_lastpos = zwei_position + 10;               
                                 
                                        log('Drucker Level  C ' + level_C  , "info");
                                        log('Drucker Level  M ' + level_M  , "info");
                                        log('Drucker Level  Y ' + level_Y  , "info");
                                        log('Drucker Level  K ' + level_K  , "info");
                                 
                                        // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
                                        setState(CyanLevel, level_C);
                                        setState(MagentaLevel, level_M);
                                        setState(YellowLevel, level_Y);
                                        setState(BlackLevel, level_K);
                                        setState(DruckIP, druckerIP);
                                 
                                    } else  {  //   if (!error && response.statusCode == 200) {
                                        log(error);
                                        log('Kein Drucker gefunden');
                                    }
                                 
                                    }); // end of request
                                 
                                } // end of function
                                

                                var logging = true; 
                                var debugging = false; 
                                var debugging_response = false;       //nur im Fehlerfall auf true. Hiermit wird die Antwort der Internetadresse protokolliert
                                var CCU_Version = 3;                  //Hier eine Zahl eintragen: 2 = CCU2 // 3 = CCU3 // 4 = Rasperrymatic
                                //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
                                const id_Version_installiert = "hm-rega.0.QEQ1301545.0.FIRMWARE_VERSION";
                                //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
                                const id_Version_Internet = '0_userdata.0.CCU3.Servicemeldungen.Verfuegbare_CCU-Firmware';
                                const id_Update_Internet = '0_userdata.0.CCU3.Servicemeldungen.Update_verfuegbar';
                                 
                                 
                                var observation = true;         //Dauerhafte Überwachung der Firmware (true = aktiv // false =inaktiv)
                                var onetime = true;             //Prüft beim Scriptstart auf aktuelle Firmware
                                 
                                //Prio für Pushover
                                var prio_Firmware = 0;
                                 
                                 
                                //Variablen für Pushover
                                var sendpush = false;            //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
                                var pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
                                var pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
                                var pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
                                var pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
                                let _prio;
                                let _titel;
                                let _message;
                                var _device = 'TPhone';         //Welches Gerät soll die Nachricht bekommen
                                //var _device = 'All'; 
                                 
                                //Variablen für Telegram
                                var sendtelegram = true;            //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt
                                var user_telegram = '';             //User der die Nachricht bekommen soll
                                 
                                //Variable zum verschicken der Servicemeldungen per eMail
                                var sendmail = false;            //true = verschickt per email Nachrchten // false = email wird nicht benutzt
                                 
                                 
                                // ab hier keine Änderung
                                 
                                let _message_tmp;
                                var request = require('request');
                                 
                                function send_pushover_V4 (_device, _message, _titel, _prio) {
                                        if (_prio === 0){let pushover_Instanz =  pushover_Instanz0}
                                        else if (_prio == 1){pushover_Instanz =  pushover_Instanz1}
                                        else if (_prio == 2){pushover_Instanz =  pushover_Instanz2}
                                        else {pushover_Instanz =  pushover_Instanz3}
                                        sendTo(pushover_Instanz, { 
                                        device: _device,
                                        message: _message, 
                                        title: _titel, 
                                        priority: _prio,
                                        retry: 60,
                                        expire: 600,
                                        html: 1
                                    }); 
                                }
                                 
                                function send_telegram (_message, user_telegram) {
                                    sendTo('telegram.0', { 
                                        text: _message,
                                        user: user_telegram,
                                        parse_mode: 'HTML'
                                    }); 
                                }
                                 
                                function send_mail (_message) {
                                    sendTo("email", {
                                        //from:    "iobroker@mydomain.com",
                                        //to:      "aabbcc@gmail.com",
                                        subject: "Servicemeldung",
                                        text:    _message
                                    });
                                }
                                 
                                function func_Version(){
                                    var Version_Internet = getState(id_Version_Internet).val;
                                    var ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345';
                                    var ccu3 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=9A499D4429';
                                    var Raspi = 'https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js?_version_=CURRENT_VERSION';
                                    let ccu;
                                    if(CCU_Version == 3){ccu = ccu3;}
                                    else if(CCU_Version == 4){ccu = Raspi;}
                                    else {ccu = ccu2;}
                                    url = ccu;
                                 
                                    request({url : url},
                                 
                                        function (error, response, body) {
                                            var Version_installiert = (getState(id_Version_installiert).val).trim();
                                            var Version = body.split("'");
                                            if(error){
                                                log('error: ' + error);
                                            } else {
                                                if(Version_Internet === ''){
                                                    if(logging){
                                                        log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                                                    }
                                                    setState(id_Version_Internet,Version[1]);
                                                }
                                                
                                                if(Version_installiert == Version[1]){
                                                    setState(id_Update_Internet,false);
                                                    if(logging){
                                                        log('Installierte Firmware '+Version_installiert  +' der CCU ist aktuell');
                                                    }
                                                }
                                                else{
                                                    setState(id_Update_Internet,true);
                                                    if(logging){
                                                        log('Installierte Firmware '+Version_installiert  +' der CCU ist nicht aktuell. Aktuell verfügbare Version: '+Version[1]);
                                                    }
                                                    
                                                    if(Version_Internet == Version[1]){
                                                        if(debugging){
                                                            log('[DEBUG] ' +'Version Internet hat sich nicht verändert');
                                                        }
                                                    } else {
                                                        if(debugging){
                                                            log('[DEBUG] ' +'Installierte Firmware der CCU ist nicht aktuell.');
                                                        }
                                                        setState(id_Version_Internet,Version[1]);
                                                         _message_tmp = 'Installierte Firmware der CCU ist nicht aktuell. Installiert: ' +Version_installiert +' --- Verfügbare Version: '+Version[1];
                                                        
                                                         //Push verschicken
                                                        if(sendpush){
                                                            _prio = prio_Firmware;
                                                            _titel = 'CCU-Firmware';
                                                            _message = _message_tmp;
                                                            send_pushover_V4(_device, _message, _titel, _prio);
                                                        }
                                                        if(sendtelegram){
                                                            _message = _message_tmp;
                                                            send_telegram(_message, user_telegram);
                                                        }
                                                        if(sendmail){
                                                            _message = _message_tmp;
                                                            send_mail(_message);
                                                        }
                                                    }         
                                                }
                                        
                                                if(debugging_response){
                                                    log('body: ' + body);
                                                    log('Länge ' + Version.length + ' --- Version: ' + Version[1]);
                                                    log('response: ' + JSON.stringify(response));
                                                }
                                            }
                                        }
                                    );
                                }
                                 
                                if(observation){
                                    //Nachts einmalig ausführen 00:30 Schaltzeiten berechnen
                                    schedule("54 05 * * *", func_Version);
                                }
                                 
                                if(onetime){
                                    //beim Starten
                                    func_Version();
                                }
                                

                                var request = require("request");
                                
                                var myJson = {};
                                
                                var pfad = "Fronius_Symo_Hybrid_Max.";
                                
                                //var idDAY_ENERGY        = pfad + "ENERGY_DAY";
                                var idPAC               = pfad + "PAC";
                                var idYEAR_ENERGY       = pfad + "ENERGY_YEAR";
                                var idTOTAL_ENERGY      = pfad + "ENERGY_TOTAL";
                                
                                
                                //createState(idDAY_ENERGY, 0, {
                                //    name: 'Energie Tag',
                                //    desc: 'Energie Tag',
                                //    type: 'number',
                                //    role: 'value',
                                //    unit: 'Wh'
                                //});
                                
                                createState(idPAC, 0, {
                                    name: 'Leistung',
                                    desc: 'Leistung',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'W'
                                });
                                
                                createState(idYEAR_ENERGY, 0, {
                                    name: 'Energie Jahr',
                                    desc: 'Energie Jahr',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'Wh'
                                });
                                
                                createState(idTOTAL_ENERGY, 0, {
                                    name: 'Energie Total',
                                    desc: 'Energie Total',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'Wh'
                                });
                                
                                
                                
                                
                                function parseJson(text) {
                                    if (text === "") return {};
                                    try {
                                        json = JSON.parse(text);
                                    } catch (ex) {
                                        json = {};
                                    }
                                    if(!json) json = {};
                                    return json;
                                }
                                
                                function readJson(url, callback) {
                                    request(url, function (err, state, body){
                                        if (body) {
                                            var json = parseJson(body);
                                            callback(null, json);
                                        } else {
                                            var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                                            log(error, "warn");  
                                            callback(error, null);
                                        }
                                    });
                                }
                                
                                
                                var url = 'http://10.0.1.90/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System';
                                
                                function main() {
                                    readJson(url, function(err,json) {
                                        if(!err) {
                                            myJson = json;
                                //            log("DAY_ENERGY: "      + myJson.Body.Data.DAY_ENERGY.Values[1],"info");
                                            log("PAC: "             + myJson.Body.Data.PAC.Values[1],"info");
                                            log("YEAR_ENERGY: "     + myJson.Body.Data.YEAR_ENERGY.Values[1],"info");
                                            log("TOTAL_ENERGY: "    + myJson.Body.Data.TOTAL_ENERGY.Values[1],"info");
                                //            setState(idDAY_ENERGY   ,myJson.Body.Data.DAY_ENERGY.Values[1]);
                                            setState(idPAC          ,myJson.Body.Data.PAC.Values[1]);
                                            setState(idYEAR_ENERGY  ,myJson.Body.Data.YEAR_ENERGY.Values[1]);
                                            setState(idTOTAL_ENERGY ,myJson.Body.Data.TOTAL_ENERGY.Values[1]);
                                        } else {
                                            log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                                            myJson = {};
                                        }
                                    });
                                }
                                
                                schedule("*/10 * * * * *", function () { // alle 10 Sekunden die Werte abfragen
                                    main();
                                });
                                
                                // Beim Skriptstart die Werte abfragen
                                setTimeout(main,500);
                                

                                var request = require("request");
                                
                                var myJson = {};
                                
                                var pfad = "Fronius_Symo_Hybrid_Max.";
                                
                                var idDAY_ENERGY        = pfad + "ENERGY_DAY";
                                //var idPAC               = pfad + "PAC";
                                //var idYEAR_ENERGY       = pfad + "ENERGY_YEAR";
                                //var idTOTAL_ENERGY      = pfad + "ENERGY_TOTAL";
                                
                                
                                createState(idDAY_ENERGY, 0, {
                                    name: 'Energie Tag',
                                    desc: 'Energie Tag',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'Wh'
                                });
                                
                                //createState(idPAC, 0, {
                                //    name: 'Leistung',
                                //   desc: 'Leistung',
                                //    type: 'number',
                                //    role: 'value',
                                //    unit: 'W'
                                //});
                                
                                //createState(idYEAR_ENERGY, 0, {
                                //    name: 'Energie Jahr',
                                //    desc: 'Energie Jahr',
                                //    type: 'number',
                                //    role: 'value',
                                //    unit: 'Wh'
                                //});
                                
                                //createState(idTOTAL_ENERGY, 0, {
                                //    name: 'Energie Total',
                                //    desc: 'Energie Total',
                                //    type: 'number',
                                //    role: 'value',
                                //    unit: 'Wh'
                                //});
                                
                                
                                
                                
                                function parseJson(text) {
                                    if (text === "") return {};
                                    try {
                                        json = JSON.parse(text);
                                    } catch (ex) {
                                        json = {};
                                    }
                                    if(!json) json = {};
                                    return json;
                                }
                                
                                function readJson(url, callback) {
                                    request(url, function (err, state, body){
                                        if (body) {
                                            var json = parseJson(body);
                                            callback(null, json);
                                        } else {
                                            var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                                            log(error, "warn");  
                                            callback(error, null);
                                        }
                                    });
                                }
                                
                                
                                var url = 'http://10.0.1.90/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System';
                                
                                function main() {
                                    readJson(url, function(err,json) {
                                        if(!err) {
                                            myJson = json;
                                            log("DAY_ENERGY: "      + myJson.Body.Data.DAY_ENERGY.Values[1],"info");
                                //            log("PAC: "             + myJson.Body.Data.PAC.Values[1],"info");
                                //            log("YEAR_ENERGY: "     + myJson.Body.Data.YEAR_ENERGY.Values[1],"info");
                                //            log("TOTAL_ENERGY: "    + myJson.Body.Data.TOTAL_ENERGY.Values[1],"info");
                                            setState(idDAY_ENERGY   ,myJson.Body.Data.DAY_ENERGY.Values[1]);
                                //            setState(idPAC          ,myJson.Body.Data.PAC.Values[1]);
                                //            setState(idYEAR_ENERGY  ,myJson.Body.Data.YEAR_ENERGY.Values[1]);
                                //            setState(idTOTAL_ENERGY ,myJson.Body.Data.TOTAL_ENERGY.Values[1]);
                                        } else {
                                            log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                                            myJson = {};
                                        }
                                    });
                                }
                                
                                schedule("59 23 * * *", function () { // täglich um 23 Uhr 59 Minuten
                                    main();
                                });
                                
                                // Beim Skriptstart die Werte abfragen
                                setTimeout(main,500);
                                

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                schrieb am zuletzt editiert von
                                #24

                                @negalein

                                bitte testen CCu3 script

                                var logging = true; 
                                var debugging = false; 
                                var debugging_response = false;       //nur im Fehlerfall auf true. Hiermit wird die Antwort der Internetadresse protokolliert
                                var CCU_Version = 3;                  //Hier eine Zahl eintragen: 2 = CCU2 // 3 = CCU3 // 4 = Rasperrymatic
                                //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
                                const id_Version_installiert = "hm-rega.0.QEQ1301545.0.FIRMWARE_VERSION";
                                //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
                                const id_Version_Internet = '0_userdata.0.CCU3.Servicemeldungen.Verfuegbare_CCU-Firmware';
                                const id_Update_Internet = '0_userdata.0.CCU3.Servicemeldungen.Update_verfuegbar';
                                
                                
                                var observation = true;         //Dauerhafte Überwachung der Firmware (true = aktiv // false =inaktiv)
                                var onetime = true;             //Prüft beim Scriptstart auf aktuelle Firmware
                                
                                //Prio für Pushover
                                var prio_Firmware = 0;
                                
                                
                                //Variablen für Pushover
                                var sendpush = false;            //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
                                var pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
                                var pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
                                var pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
                                var pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
                                let _prio;
                                let _titel;
                                let _message;
                                var _device = 'TPhone';         //Welches Gerät soll die Nachricht bekommen
                                //var _device = 'All'; 
                                
                                //Variablen für Telegram
                                var sendtelegram = true;            //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt
                                var user_telegram = '';             //User der die Nachricht bekommen soll
                                
                                //Variable zum verschicken der Servicemeldungen per eMail
                                var sendmail = false;            //true = verschickt per email Nachrchten // false = email wird nicht benutzt
                                
                                
                                // ab hier keine Änderung
                                
                                let _message_tmp;
                                //var request = require('request');
                                
                                function send_pushover_V4 (_device, _message, _titel, _prio) {
                                       if (_prio === 0){let pushover_Instanz =  pushover_Instanz0}
                                       else if (_prio == 1){pushover_Instanz =  pushover_Instanz1}
                                       else if (_prio == 2){pushover_Instanz =  pushover_Instanz2}
                                       else {pushover_Instanz =  pushover_Instanz3}
                                       sendTo(pushover_Instanz, { 
                                       device: _device,
                                       message: _message, 
                                       title: _titel, 
                                       priority: _prio,
                                       retry: 60,
                                       expire: 600,
                                       html: 1
                                   }); 
                                }
                                
                                function send_telegram (_message, user_telegram) {
                                   sendTo('telegram.0', { 
                                       text: _message,
                                       user: user_telegram,
                                       parse_mode: 'HTML'
                                   }); 
                                }
                                
                                function send_mail (_message) {
                                   sendTo("email", {
                                       //from:    "iobroker@mydomain.com",
                                       //to:      "aabbcc@gmail.com",
                                       subject: "Servicemeldung",
                                       text:    _message
                                   });
                                }
                                
                                function func_Version(){
                                   var Version_Internet = getState(id_Version_Internet).val;
                                   var ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345';
                                   var ccu3 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=9A499D4429';
                                   var Raspi = 'https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js?_version_=CURRENT_VERSION';
                                   let ccu;
                                   if(CCU_Version == 3){ccu = ccu3;}
                                   else if(CCU_Version == 4){ccu = Raspi;}
                                   else {ccu = ccu2;}
                                   let url = ccu;
                                
                                  // request({url : url},
                                   httpGet(url,  function (error, response) {
                                           var Version_installiert = (getState(id_Version_installiert).val).trim();
                                           var Version = response.data.split("'");
                                           if(error){
                                               log('error: ' + error);
                                           } else {
                                               if(Version_Internet === ''){
                                                   if(logging){
                                                       log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                                                   }
                                                   setState(id_Version_Internet,Version[1]);
                                               }
                                               
                                               if(Version_installiert == Version[1]){
                                                   setState(id_Update_Internet,false);
                                                   if(logging){
                                                       log('Installierte Firmware '+Version_installiert  +' der CCU ist aktuell');
                                                   }
                                               }
                                               else{
                                                   setState(id_Update_Internet,true);
                                                   if(logging){
                                                       log('Installierte Firmware '+Version_installiert  +' der CCU ist nicht aktuell. Aktuell verfügbare Version: '+Version[1]);
                                                   }
                                                   
                                                   if(Version_Internet == Version[1]){
                                                       if(debugging){
                                                           log('[DEBUG] ' +'Version Internet hat sich nicht verändert');
                                                       }
                                                   } else {
                                                       if(debugging){
                                                           log('[DEBUG] ' +'Installierte Firmware der CCU ist nicht aktuell.');
                                                       }
                                                       setState(id_Version_Internet,Version[1]);
                                                        _message_tmp = 'Installierte Firmware der CCU ist nicht aktuell. Installiert: ' +Version_installiert +' --- Verfügbare Version: '+Version[1];
                                                       
                                                        //Push verschicken
                                                       if(sendpush){
                                                           _prio = prio_Firmware;
                                                           _titel = 'CCU-Firmware';
                                                           _message = _message_tmp;
                                                           send_pushover_V4(_device, _message, _titel, _prio);
                                                       }
                                                       if(sendtelegram){
                                                           _message = _message_tmp;
                                                           send_telegram(_message, user_telegram);
                                                       }
                                                       if(sendmail){
                                                           _message = _message_tmp;
                                                           send_mail(_message);
                                                       }
                                                   }         
                                               }
                                       
                                               if(debugging_response){
                                                   log('body: ' + response.data);
                                                   log('Länge ' + Version.length + ' --- Version: ' + Version[1]);
                                                   log('response: ' + JSON.stringify(response.data));
                                               }
                                           }
                                       }
                                   );
                                }
                                
                                if(observation){
                                   //Nachts einmalig ausführen 00:30 Schaltzeiten berechnen
                                   schedule("54 05 * * *", func_Version);
                                }
                                
                                if(onetime){
                                   //beim Starten
                                   func_Version();
                                }
                                
                                

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                NegaleinN 1 Antwort Letzte Antwort
                                1
                                • liv-in-skyL liv-in-sky

                                  @haus-automatisierung das dachte ich auch - aber irgendwie sind doch diese zeiten zu lange - was war den ein timeout bei dem request ? weißt du das

                                  haus-automatisierungH Online
                                  haus-automatisierungH Online
                                  haus-automatisierung
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #25

                                  @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                  aber irgendwie sind doch diese zeiten zu lange

                                  Kannst Du ja mal mit curl o.ä. messen wie lange die Antwort dauert. Default bei request war glaube ich 0. Aber alleine für die asynchronen Funktionen (mit Promises) muss ich ja einen default Timeout angeben, da sonst ein Script ggf. "für immer" hängen bleibt und wartet.

                                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                  📚 Meine inoffizielle ioBroker Dokumentation

                                  liv-in-skyL NegaleinN 2 Antworten Letzte Antwort
                                  0
                                  • NegaleinN Negalein

                                    @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                    kommt der fehler immer? wenn ja, funktioniert es ein paarmal und ab einem zeitpunkt dann nicht mehr - oder funktioniert es immer wieder mal ?

                                    alle 10 Minuten. Und zur vollen Stunde 1x in 1 Minute.

                                    wenn es so bleibt, kann ich mit den 336 Warns in 24 Std. leben! :grin:

                                    Werde den Timeout mal etwas runtersetzen und beobachten.

                                    kannst du mal den volkszähler neustarten

                                    schon gdemacht, ohne Auswirkung

                                    @homoran sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                    ich denke dass es u.a. auch auf das Netzwerk und das angesprochene Gerät ankommt.

                                    Der Pi hängt mit LAN im Netz.
                                    Meldungen kommen erst seit httpGet.

                                    @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                    das vermute ich auch - da ist aber dann die frage, ob es mit dem alten request auch immer zu fehlern gekommen ist (das script war auf "alle 2 sekunde abfrage" gestellt

                                    siehe oben

                                    liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    schrieb am zuletzt editiert von
                                    #26

                                    @negalein sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                    Der Pi hängt mit LAN im Netz.
                                    Meldungen kommen erst seit httpGet.

                                    @haus-automatisierung

                                    wenn das vorher lief und jetzt nicht - was könnte das sein - leider keine ahnung

                                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                    1 Antwort Letzte Antwort
                                    0
                                    • liv-in-skyL liv-in-sky

                                      @negalein

                                      bitte testen CCu3 script

                                      var logging = true; 
                                      var debugging = false; 
                                      var debugging_response = false;       //nur im Fehlerfall auf true. Hiermit wird die Antwort der Internetadresse protokolliert
                                      var CCU_Version = 3;                  //Hier eine Zahl eintragen: 2 = CCU2 // 3 = CCU3 // 4 = Rasperrymatic
                                      //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
                                      const id_Version_installiert = "hm-rega.0.QEQ1301545.0.FIRMWARE_VERSION";
                                      //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
                                      const id_Version_Internet = '0_userdata.0.CCU3.Servicemeldungen.Verfuegbare_CCU-Firmware';
                                      const id_Update_Internet = '0_userdata.0.CCU3.Servicemeldungen.Update_verfuegbar';
                                      
                                      
                                      var observation = true;         //Dauerhafte Überwachung der Firmware (true = aktiv // false =inaktiv)
                                      var onetime = true;             //Prüft beim Scriptstart auf aktuelle Firmware
                                      
                                      //Prio für Pushover
                                      var prio_Firmware = 0;
                                      
                                      
                                      //Variablen für Pushover
                                      var sendpush = false;            //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
                                      var pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
                                      var pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
                                      var pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
                                      var pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
                                      let _prio;
                                      let _titel;
                                      let _message;
                                      var _device = 'TPhone';         //Welches Gerät soll die Nachricht bekommen
                                      //var _device = 'All'; 
                                      
                                      //Variablen für Telegram
                                      var sendtelegram = true;            //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt
                                      var user_telegram = '';             //User der die Nachricht bekommen soll
                                      
                                      //Variable zum verschicken der Servicemeldungen per eMail
                                      var sendmail = false;            //true = verschickt per email Nachrchten // false = email wird nicht benutzt
                                      
                                      
                                      // ab hier keine Änderung
                                      
                                      let _message_tmp;
                                      //var request = require('request');
                                      
                                      function send_pushover_V4 (_device, _message, _titel, _prio) {
                                             if (_prio === 0){let pushover_Instanz =  pushover_Instanz0}
                                             else if (_prio == 1){pushover_Instanz =  pushover_Instanz1}
                                             else if (_prio == 2){pushover_Instanz =  pushover_Instanz2}
                                             else {pushover_Instanz =  pushover_Instanz3}
                                             sendTo(pushover_Instanz, { 
                                             device: _device,
                                             message: _message, 
                                             title: _titel, 
                                             priority: _prio,
                                             retry: 60,
                                             expire: 600,
                                             html: 1
                                         }); 
                                      }
                                      
                                      function send_telegram (_message, user_telegram) {
                                         sendTo('telegram.0', { 
                                             text: _message,
                                             user: user_telegram,
                                             parse_mode: 'HTML'
                                         }); 
                                      }
                                      
                                      function send_mail (_message) {
                                         sendTo("email", {
                                             //from:    "iobroker@mydomain.com",
                                             //to:      "aabbcc@gmail.com",
                                             subject: "Servicemeldung",
                                             text:    _message
                                         });
                                      }
                                      
                                      function func_Version(){
                                         var Version_Internet = getState(id_Version_Internet).val;
                                         var ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345';
                                         var ccu3 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=9A499D4429';
                                         var Raspi = 'https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js?_version_=CURRENT_VERSION';
                                         let ccu;
                                         if(CCU_Version == 3){ccu = ccu3;}
                                         else if(CCU_Version == 4){ccu = Raspi;}
                                         else {ccu = ccu2;}
                                         let url = ccu;
                                      
                                        // request({url : url},
                                         httpGet(url,  function (error, response) {
                                                 var Version_installiert = (getState(id_Version_installiert).val).trim();
                                                 var Version = response.data.split("'");
                                                 if(error){
                                                     log('error: ' + error);
                                                 } else {
                                                     if(Version_Internet === ''){
                                                         if(logging){
                                                             log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                                                         }
                                                         setState(id_Version_Internet,Version[1]);
                                                     }
                                                     
                                                     if(Version_installiert == Version[1]){
                                                         setState(id_Update_Internet,false);
                                                         if(logging){
                                                             log('Installierte Firmware '+Version_installiert  +' der CCU ist aktuell');
                                                         }
                                                     }
                                                     else{
                                                         setState(id_Update_Internet,true);
                                                         if(logging){
                                                             log('Installierte Firmware '+Version_installiert  +' der CCU ist nicht aktuell. Aktuell verfügbare Version: '+Version[1]);
                                                         }
                                                         
                                                         if(Version_Internet == Version[1]){
                                                             if(debugging){
                                                                 log('[DEBUG] ' +'Version Internet hat sich nicht verändert');
                                                             }
                                                         } else {
                                                             if(debugging){
                                                                 log('[DEBUG] ' +'Installierte Firmware der CCU ist nicht aktuell.');
                                                             }
                                                             setState(id_Version_Internet,Version[1]);
                                                              _message_tmp = 'Installierte Firmware der CCU ist nicht aktuell. Installiert: ' +Version_installiert +' --- Verfügbare Version: '+Version[1];
                                                             
                                                              //Push verschicken
                                                             if(sendpush){
                                                                 _prio = prio_Firmware;
                                                                 _titel = 'CCU-Firmware';
                                                                 _message = _message_tmp;
                                                                 send_pushover_V4(_device, _message, _titel, _prio);
                                                             }
                                                             if(sendtelegram){
                                                                 _message = _message_tmp;
                                                                 send_telegram(_message, user_telegram);
                                                             }
                                                             if(sendmail){
                                                                 _message = _message_tmp;
                                                                 send_mail(_message);
                                                             }
                                                         }         
                                                     }
                                             
                                                     if(debugging_response){
                                                         log('body: ' + response.data);
                                                         log('Länge ' + Version.length + ' --- Version: ' + Version[1]);
                                                         log('response: ' + JSON.stringify(response.data));
                                                     }
                                                 }
                                             }
                                         );
                                      }
                                      
                                      if(observation){
                                         //Nachts einmalig ausführen 00:30 Schaltzeiten berechnen
                                         schedule("54 05 * * *", func_Version);
                                      }
                                      
                                      if(onetime){
                                         //beim Starten
                                         func_Version();
                                      }
                                      
                                      

                                      NegaleinN Offline
                                      NegaleinN Offline
                                      Negalein
                                      Global Moderator
                                      schrieb am zuletzt editiert von Negalein
                                      #27

                                      @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                      bitte testen CCu3 script

                                      Danke, perfekt.
                                      Infos wurden sofort ausgelesen.

                                      ° Node.js: 20.17.0 NPM: 10.8.2
                                      ° Proxmox, Ubuntu 22.04.3 LTS
                                      ° Fixer ---> iob fix

                                      1 Antwort Letzte Antwort
                                      0
                                      • haus-automatisierungH haus-automatisierung

                                        @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                        aber irgendwie sind doch diese zeiten zu lange

                                        Kannst Du ja mal mit curl o.ä. messen wie lange die Antwort dauert. Default bei request war glaube ich 0. Aber alleine für die asynchronen Funktionen (mit Promises) muss ich ja einen default Timeout angeben, da sonst ein Script ggf. "für immer" hängen bleibt und wartet.

                                        liv-in-skyL Offline
                                        liv-in-skyL Offline
                                        liv-in-sky
                                        schrieb am zuletzt editiert von
                                        #28

                                        @haus-automatisierung sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                        Aber alleine für die asynchronen Funktionen (mit Promises) muss ich ja einen default Timeout angeben, da sonst ein Script ggf. "für immer" hängen bleibt und wartet.

                                        absolut verständlich !

                                        kann es sein, das bei den 2 sekunden irgendwie der ganze npm modul zeitraum gemessen wird ?

                                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                        haus-automatisierungH 1 Antwort Letzte Antwort
                                        0
                                        • haus-automatisierungH haus-automatisierung

                                          @liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                          aber irgendwie sind doch diese zeiten zu lange

                                          Kannst Du ja mal mit curl o.ä. messen wie lange die Antwort dauert. Default bei request war glaube ich 0. Aber alleine für die asynchronen Funktionen (mit Promises) muss ich ja einen default Timeout angeben, da sonst ein Script ggf. "für immer" hängen bleibt und wartet.

                                          NegaleinN Offline
                                          NegaleinN Offline
                                          Negalein
                                          Global Moderator
                                          schrieb am zuletzt editiert von Negalein
                                          #29

                                          @haus-automatisierung sagte in Hilfe bei Skripte von request auf httpGet umbauen:

                                          curl

                                          curl -v http://10.0.1.93/middleware.php/data.json?from=now&uuid[]=bc3edcd0-24c4-11ea-b257-bdbd9553c516&uuid[]=deda8550-24c4-11ea-b402-275ee0956365

                                          oder ist das so falsch?

                                          ° Node.js: 20.17.0 NPM: 10.8.2
                                          ° Proxmox, Ubuntu 22.04.3 LTS
                                          ° Fixer ---> iob fix

                                          liv-in-skyL 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          811

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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