Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Parser

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @Homoran last edited by

      @Homoran

      wir haben die maximal 5 möglichen Meldungen jeweils in einen separaten Datenpunkt geschrieben. Um es im JSON-Table widget anzuzeigen, muss man daraus ein array (also eine Liste) machen, was du ja dann auch mit den eckigen Klammern gemacht hast. Nur würde in der Tabelle ja nie mehr wie ein Eintrag stehen.
      Daher habe ich den code ein wenig erweitert (2 Zeilen wo msgs vorkommt). jetzt wird dir noch zusätzlich in einen weiteren Datenpunkt die erzeugte Liste aller Meldungen geschrieben. Diesen Datenpunkt kannst du nun für das JSON table widget verwenden.
      Leider konnte ich da so nicht direkt testen, müsste aber passen.

      var domain = '192.168.138.103'; // domain or ip without http:// or https:// 
      var url = '/api/dxs.json';
      var datenpunkt = '0_userdata.0.Solaranlage.Info';
      //var datenpunkt = 'javascript.0.info';
       
      var msgs = [
      {"code":"3000","type":"Störung Updateprozess","description":"Interne Systemstörung","action":"Update des Wechselrichters durchführen."},
      {"code":"3003","type":"Interne Kommunikationsstörung","description":"Interne Kommunikationsstörung","action":"zwischen Netzüberwachung und Steuerung Internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten kontrollieren"},
      {"code":"3006","type":"Interne Systemstörung ","description":"Interne Systemstörung bzgl. Leistungsabregelung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf. Support"},
      {"code":"3010","type":"Interne Kommunikationsstörung","description":"Interne Kommunikationsstörung","action":"zwischen Steuerung und Kommunkationsplatine Kontrollieren Sie die Uhrzeiteinstellung, Funktionalität der Kommunikationsplatine und weiterer Kommunikationseinstellungen. Wechselrichter schaltet trotz fehlerhaftem Zeitstempel auf"},
      {"code":"3011","type":"Interne Temperaturstörung","description":"Interne Systemstörung","action":"Support"},
      {"code":"3012","type":"Störung Varistor","description":"DC-Varistor defekt","action":"Defekten Varistor tauschen"},
      {"code":"3013","type":"Interne Temperaturstörung","description":"Übertemperatur AC/DC an Leistungsstufe","action":"Installationsbedingungen und Lüfter kontrollieren"},
      {"code":"3014","type":"Interne Temperaturstörung","description":"Übertemperatur Prozessor","action":"Installationsbedingungen und Lüfter kontrollieren"},
      {"code":"3017","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3018","type":"Information","description":"Leistungsabregelung durch externe Vorgaben (Netzbetreiber)","action":"Keine Maßnahme notwendig"},
      {"code":"3019","type":"Externe Netzstörung","description":"Leistungsabregelung aufgrund eines Netzfehlers (erhöhte Netzfrequenz)","action":"Support"},
      {"code":"3020","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3021","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3022","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3023","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3024","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3025","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3026","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3027","type":"Interne Temperaturstörung","description":"Interne Systemstörung","action":"Support"},
      {"code":"3028","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3029","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3030","type":"Interne Temperaturstörung","description":"Übertemperatur AC/DC an Leistungsstufe","action":"Installationsbedingungen und Lüfter kontrollieren"},
      {"code":"3031","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach Prüfung durch und schaltet generell auf"},
      {"code":"3032","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3033","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3034","type":"Interne Systemstörung ","description":"Interner Zwischenkreisfehler","action":"Das Gerät neu starten"},
      {"code":"3035","type":"Interne Systemstörung ","description":"Interner Zwischenkreisfehler","action":"Das Gerät neu starten"},
      {"code":"3036","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3037","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3038","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3039","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3045","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach Prüfung durch und schaltet generell auf"},
      {"code":"3046","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach Prüfung durch und schaltet generell auf"},
      {"code":"3047","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3048","type":"Interne Kommunikationsstörung","description":"Interner Kommunikationsfehler","action":"Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten"},
      {"code":"3049","type":"Interne Kommunikationsstörung","description":"Interner Kommunikationsfehler","action":"Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten"},
      {"code":"3050","type":"Interne Kommunikationsstörung","description":"Interner Kommunikationsfehler","action":"Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten"},
      {"code":"3051","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3052","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3053","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3054","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"3055","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
      {"code":"3056","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3057","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Generatorinstallation/ -auslegung kontrollieren"},
      {"code":"3059","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Ggf. falsche Ländereinstellung. Support kontaktieren"},
      {"code":"3060","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
      {"code":"3061","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3062","type":"Interne Temperaturstörung","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3063","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3064","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3065","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3066","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktiere"},
      {"code":"3068","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
      {"code":"3070","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
      {"code":"3071","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
      {"code":"3072","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
      {"code":"3073","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
      {"code":"3074","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
      {"code":"3075","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
      {"code":"3076","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Die AC-Spannung ist gegebenenfalls zu niedrig"},
      {"code":"3079","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
      {"code":"3080","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
      {"code":"3082","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3083","type":"Information","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig1"},
      {"code":"3084","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
      {"code":"3085","type":"Interne Temperaturstörung","description":"Übertemperatur Prozessor","action":"Installationsbedingungen und Lüfter kontrollieren1 "},
      {"code":"3086","type":"Information","description":"Leistungsabregelung aufgrund eines Netzfehlers (erhöhte AC-Spannung)","action":"Support"},
      {"code":"3087","type":"Interne Systemstörung ","description":"Interner Systemfehler","action":"Support kontaktieren"},
      {"code":"3088","type":"Interne Systemstörung ","description":"Lüftereinheit verschmutzt","action":"Lüftereinheit reinigen"},
      {"code":"3089","type":"Interne Systemstörung ","description":"Lüftereinheit verschmutzt","action":"Lüftereinheit reinigen"},
      {"code":"3090","type":"Interne Systemstörung ","description":"Interner Systemfehler","action":"Support kontaktieren"},
      {"code":"3091","type":"Interne Systemstörung ","description":"Lüfter nicht korrekt angeschlossen","action":"Lüfter-Steckverbindungen prüfe"},
      {"code":"3092","type":"Interne Systemstörung ","description":"Lüfter nicht korrekt angeschlossen","action":"Lüfter-Steckverbindungen prüfe"},
      {"code":"3093","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
      {"code":"3094","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
      {"code":"3095","type":"Interne Parametrierungsstörung","description":"Falsche Kalibrierung","action":"Support kontaktiere"},
      {"code":"3096","type":"Information","description":"Falsche Dimensionierung der PV-Generator","action":"Generatorinstallation/ -auslegung kontrolliere"},
      {"code":"3097","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
      {"code":"3098","type":"Information","description":"Netz nicht vorhanden","action":"Keine Maßnahme notwendig"},
      {"code":"3101","type":"Information","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3102","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3103","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3104","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
      {"code":"3105","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
      {"code":"3106","type":"Information","description":"Falsche Eingabe am KomBoard oder falsche Verdrahtung","action":"Eingabe oder Verdrahtung korriegieren"},
      {"code":"4100","type":"Interne Systemstörung ","description":"Interner Softwarefehler","action":"Support"},
      {"code":"4101","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L1","action":"Support"},
      {"code":"4102","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L2","action":"Support"},
      {"code":"4103","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L3","action":"Support"},
      {"code":"4104","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L1","action":"Support"},
      {"code":"4105","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L2","action":"Support"},
      {"code":"4106","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L3","action":"Support"},
      {"code":"4110","type":"Interne Systemstörung ","description":"Interner Softwarefehler","action":"Support"},
      {"code":"4121","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4122","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4130","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4131","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4150","type":"Information","description":"Erhöhte Netzfrequenz. Oft gehäuftes Auftreten am Morgen und am Abend.","action":"Installation kontrollieren"},
      {"code":"4151","type":"Externe Netzstörung","description":"Zu niedrige Netzfrequenz","action":"Installation kontrollieren"},
      {"code":"4157","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Keine Maßnahme notwendig"},
      {"code":"4158","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Installation kontrollieren"},
      {"code":"4159","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Installation kontrollieren"},
      {"code":"4160","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Installation kontrollieren"},
      {"code":"4161","type":"Externe Netzstörung","description":"Zu niedrige Netzfrequenz","action":"Installation kontrollieren"},
      {"code":"4170","type":"Information","description":"Eine Phase ist nicht angeschlossen. Ein Sicherungsautomat wurde nicht eingeschaltet.","action":"Installation kontrollieren"},
      {"code":"4180","type":"Externe Netzstörung","description":"PE-Leitung nicht angeschlossen","action":"Installation kontrollieren"},
      {"code":"4181","type":"Externe Netzstörung","description":"PE-Leitung nicht angeschlossen","action":"Installation kontrollieren "},
      {"code":"4185","type":"Interne Systemstörung ","description":"Interner Softwarefehler","action":"Support1 "},
      {"code":"4200","type":"Externe Netzstörung","description":"Erhöhte Netzspannung","action":"Installation kontrollieren "},
      {"code":"4201","type":"Externe Netzstörung","description":"Zu niedrige Netzspannung","action":"Installation kontrollieren "},
      {"code":"4210","type":"Externe Netzstörung","description":"Erhöhte Netzspannung","action":"Installation kontrollieren "},
      {"code":"4211","type":"Externe Netzstörung","description":"Zu niedrige Netzspannung","action":"Installation kontrollieren "},
      {"code":"4220","type":"Externe Netzstörung","description":"Spannungsmittelwert der letzten 10 Min. zu groß","action":"Installation kontrollieren "},
      {"code":"4221","type":"Externe Netzstörung","description":"Spannungsmittelwert der letzten 10 Min. zu groß","action":"Installation kontrollieren "},
      {"code":"4290","type":"Externe Netzstörung","description":"Die Netzfrequenz hat sich zu schnell verändert.","action":"Generatorinstallation kontrollieren "},
      {"code":"4300","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4301","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4302","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4303","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4304","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4321","type":"Interne Parametrierungsstörung","description":"Defektes EEPROM unerlaubte Speicherzugriffe","action":"Support"},
      {"code":"4322","type":"Interne Parametrierungsstörung","description":"Softwarefehler","action":"Support kontaktieren"},
      {"code":"4323","type":"Interne Parametrierungsstörung","description":"Fehlerstrom","action":"Support"},
      {"code":"4324","type":"Interne Parametrierungsstörung","description":"Parameterfehler","action":"Support"},
      {"code":"4325","type":"Interne Parametrierungsstörung","description":"Parameterfehler","action":"Support"},
      {"code":"4340","type":"-","description":"","action":""},
      {"code":"4354","type":"Externer Fehlerstrom","description":"Fehlerstrom","action":"Generatorinstallation kontrollieren "},
      {"code":"4360","type":"-","description":"","action":""},
      {"code":"4421","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
      {"code":"4422","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren. "},
      {"code":"4424","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
      {"code":"4425","type":"Interne Parametrierungsstörung","description":"Parameterfehler","action":"Support "},
      {"code":"4450","type":"Externe Isolationsfehler","description":"Isolationsfehler","action":"Generatorinstallation kontrollieren "},
      {"code":"4451","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren "},
      {"code":"4475","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
      {"code":"4476","type":"Information","description":"Schwache PV-Versorgung (z.B. morgens)","action":"Keine Maßnahme notwendig "},
      {"code":"4800","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
      {"code":"4801","type":"Interne Systemstörung ","description":"Isolationsfehler","action":"Support "},
      {"code":"4802","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
      {"code":"4803","type":"Interne Systemstörung ","description":"Isolationsfehler","action":"Support "},
      {"code":"4804","type":"Interne Systemstörung ","description":"Isolationsfehler","action":"Support "},
      {"code":"4805","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
      {"code":"4810","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
      {"code":"4850","type":"Interne Systemstörung ","description":"EVU","action":"Support "},
      {"code":"4870","type":"-","description":"","action":""},
      {"code":"7500","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
      {"code":"7503","type":"Information","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"}
      ];
       
       
       
      function getEvents() {
         //log('getEvents');
         var keys = [];
         var key1 = 234881792;
         var key2 = 234881537;  
         keys.push(key1);
         for (var i=0;i<10;i++) {
             keys.push(key2+i);
         }
       
         pikorequest(keys, function(response){
             //log('events: '+ JSON.stringify(response));
             var item,len;
             var msgs = [];
             if (typeof response === 'string') response = JSON.parse(response);
             item = getResponseId(response,234881792);
             len = item.value;
             for (var i=0;i<len;i++) {
                 item = getResponseId(response,234881537+i);
                 var d,date,code,env;
                 d = item.value;
                 date = timeConverter((d[0] << 0) + (d[1] << 8) + (d[2] << 16) + (d[3] << 24));
                 code = (d[4] << 0) + (d[5] << 8);
                 env = ("0000"+((d[6] << 0) + (d[7] << 8)).toString(16)).toLocaleUpperCase().substr(-4,4)+'h';
                 var msg = msgs.find(item => item.code==code);
                 msg.date=date;
                 var msgtext = 'Code: '+msg.code+' Typ: '+msg.type+' Beschreibung: '+msg.description+' Maßnahme: '+msg.action
                 //log('message' + i+1 + ': ' + date + ' '  + code + ' '  + env + ' '+msgtext);
                 //log("Datenpunkt: "+ datenpunkt+i + " Fehlermeldung: " + msgtext + true/*ack*/);
                 setState(datenpunkt+i,`[` + JSON.stringify(msg) +`]`, true/*ack*/);
                 msgs.push(msg);
             }
             setState(datenpunkt, JSON.stringify(msgs) , true/*ack*/);
          });
      }
       
      function pikorequest(keys,callback) {
         //log('pikorequest');
         if (keys.length==0) {
             //log('request error: No keys ');
             return;     
         }
       
         var query = '';
       
         for (var i = 0; i < keys.length; i++) { 
             query += '&dxsEntries=' + keys[i];
         }
       
         var req_url = 'http://' + domain + url + '?sessionid=iobroker' + query;
         //log ('query: '+req_url);
       
         request(
             { method: 'GET',
             uri: req_url,
             }
         , function (error, response, body) {
                     //log('error: ' + error);
                     //log('Status: '+ response.statusCode);
                     //log('response: '+ JSON.stringify(response));
                     //response.body = '{"dxsEntries":[{"dxsId":234881792,"value":1},{"dxsId":234881537,"value":[207,217,88,94,63,16,2,0]},{"dxsId":234881538,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881539,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881540,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881541,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881542,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881543,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881544,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881545,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881546,"value":[0,0,0,0,0,0,0,0]}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}';
                     //response.statusCode = 200;
                     //error = false;
       
                 if (!error && response.statusCode == 200) {
                     //log('request ok: ');
                     //log('Status: '+ response.statusCode);
                     //log('response: '+ JSON.stringify(response));
                     callback(response.body);
                 } else {
                     log('request nok: ');
                     //log('Status: '+ response.statusCode);
                     //log('error: ' + error);
                 }
             }
         );
      }
      function getResponseId(response,id) {
         return response.dxsEntries.find( item => item.dxsId === id );
      }
      function timeConverter(UNIX_timestamp){
       var a = new Date(UNIX_timestamp * 1000);
       var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
       var year = a.getFullYear();
       var month = months[a.getMonth()];
       var date = a.getDate();
       var hour = ('0'+a.getHours()).slice(-2);
       var min = ('0'+a.getMinutes()).slice(-2);
       var sec = ('0'+a.getSeconds()).slice(-2);
       var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
       return time;
       log (time);
      }
      schedule("* * * * *", getEvents);
      
      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @OliverIO last edited by Homoran

        Erst noch einmal ein herzliches dankeschön!
        @OliverIO sagte in Parser:

        wir haben die maximal 5 möglichen Meldungen jeweils in einen separaten Datenpunkt geschrieben

        nicht wirklich:
        in den 10! (0-9) Datenpunkten steht immer die selbe Meldung an verschiedenen Terminen

        @OliverIO sagte in Parser:

        Nur würde in der Tabelle ja nie mehr wie ein Eintrag stehen.

        genau!
        und bräuchte ich dann ein Array mit Arrays?

        @OliverIO sagte in Parser:

        jetzt wird dir noch zusätzlich in einen weiteren Datenpunkt die erzeugte Liste aller Meldungen geschrieben.

        Habe das Skript übernommen, gestartet.
        Ein weiterer Datenpunkt wird nicht angelegt - muss ich das machen? Wäre kein Problem, aber ich habe im Code nach setState gesucht und nichts neues gefunden 😞

        EDIT:
        ist es diese Stelle setState(datenpunkt, JSON.stringify(msgs) , true/*ack*/); ?
        also Solaranlage.Info ohne 0-9?

        Habe ich jetzt angelegt - aber passiert (bis jetzt noch) nichts

        EDIT2:
        habe jetzt jede Minute folgende Meldung im log: javascript.0 2020-09-01 11:16:00.059 error (32463) Error in request callback: TypeError: Cannot set property 'date' of undefined

        finde dazu aber sonst nichts

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @Homoran last edited by

          @Homoran
          In einer schleifen werden ja alle Meldungen durchlaufen.
          In Zeile 188 wir die einzelne Nachricht dem Array msgs hinzugefügt.
          Wenn die Schleife fertig ist wird das Array msgs in Zeile 190 in den datenpunkt geschrieben.

          Die Fehlermeldung hat ersteinmal nichts mit den neuen Zeilen zu tun. Schaue mal im JavaScript Adapter nach wo er da einen Fehler anzeigt.

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @OliverIO last edited by

            @OliverIO sagte in Parser:

            Schaue mal im JavaScript Adapter nach wo er da einen Fehler anzeigt.

            Da finde ich ja nichts 😞

            Auf jeden Fall tritt die Fehlermeldung nur auf, wenn das neue Skript läuft.Ddebug bringt auch nicht mehr Infos.

            @OliverIO sagte in Parser:

            Wenn die Schleife fertig ist wird das Array msgs in Zeile 190 in den datenpunkt geschrieben.

            Der wird leider nicht befüllt

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @Homoran last edited by

              @Homoran
              Welcher datentyp hat der neue datenpunkt?
              Es sollte string sein. Wenn da date drin steht dann ist das der Fehler

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @OliverIO last edited by

                @OliverIO sagte in Parser:

                Es sollte string sein.

                solte es 😉

                ist es auch:

                {
                  "from": "system.adapter.admin.0",
                  "user": "system.user.admin",
                  "ts": 1598950989875,
                  "common": {
                    "name": "Info",
                    "role": "",
                    "type": "string",
                    "desc": "Manuell erzeugt",
                    "def": "",
                    "read": true,
                    "write": true
                  },
                  "native": {},
                  "acl": {
                    "object": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator",
                    "state": 1636
                  },
                  "_id": "0_userdata.0.Solaranlage.Info",
                  "type": "state"
                }
                
                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @Homoran last edited by

                  @Homoran

                  war mein fehler. msgs hatte ich ja schon für die ganzen Meldungen verwendet.
                  habe nun an den relevanten stellen zu msga umbenannt.

                  var domain = '192.168.138.103'; // domain or ip without http:// or https:// 
                  var url = '/api/dxs.json';
                  var datenpunkt = '0_userdata.0.Solaranlage.Info';
                  //var datenpunkt = 'javascript.0.info';
                   
                  var msgs = [
                  {"code":"3000","type":"Störung Updateprozess","description":"Interne Systemstörung","action":"Update des Wechselrichters durchführen."},
                  {"code":"3003","type":"Interne Kommunikationsstörung","description":"Interne Kommunikationsstörung","action":"zwischen Netzüberwachung und Steuerung Internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten kontrollieren"},
                  {"code":"3006","type":"Interne Systemstörung ","description":"Interne Systemstörung bzgl. Leistungsabregelung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf. Support"},
                  {"code":"3010","type":"Interne Kommunikationsstörung","description":"Interne Kommunikationsstörung","action":"zwischen Steuerung und Kommunkationsplatine Kontrollieren Sie die Uhrzeiteinstellung, Funktionalität der Kommunikationsplatine und weiterer Kommunikationseinstellungen. Wechselrichter schaltet trotz fehlerhaftem Zeitstempel auf"},
                  {"code":"3011","type":"Interne Temperaturstörung","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3012","type":"Störung Varistor","description":"DC-Varistor defekt","action":"Defekten Varistor tauschen"},
                  {"code":"3013","type":"Interne Temperaturstörung","description":"Übertemperatur AC/DC an Leistungsstufe","action":"Installationsbedingungen und Lüfter kontrollieren"},
                  {"code":"3014","type":"Interne Temperaturstörung","description":"Übertemperatur Prozessor","action":"Installationsbedingungen und Lüfter kontrollieren"},
                  {"code":"3017","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3018","type":"Information","description":"Leistungsabregelung durch externe Vorgaben (Netzbetreiber)","action":"Keine Maßnahme notwendig"},
                  {"code":"3019","type":"Externe Netzstörung","description":"Leistungsabregelung aufgrund eines Netzfehlers (erhöhte Netzfrequenz)","action":"Support"},
                  {"code":"3020","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3021","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3022","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3023","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3024","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3025","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3026","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3027","type":"Interne Temperaturstörung","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3028","type":"Externe Generatorstörung","description":"Überspannung am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3029","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3030","type":"Interne Temperaturstörung","description":"Übertemperatur AC/DC an Leistungsstufe","action":"Installationsbedingungen und Lüfter kontrollieren"},
                  {"code":"3031","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach Prüfung durch und schaltet generell auf"},
                  {"code":"3032","type":"Externe Generatorstörung","description":"Überstrom am PV-Generator","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3033","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3034","type":"Interne Systemstörung ","description":"Interner Zwischenkreisfehler","action":"Das Gerät neu starten"},
                  {"code":"3035","type":"Interne Systemstörung ","description":"Interner Zwischenkreisfehler","action":"Das Gerät neu starten"},
                  {"code":"3036","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3037","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3038","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3039","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3045","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach Prüfung durch und schaltet generell auf"},
                  {"code":"3046","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach Prüfung durch und schaltet generell auf"},
                  {"code":"3047","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3048","type":"Interne Kommunikationsstörung","description":"Interner Kommunikationsfehler","action":"Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten"},
                  {"code":"3049","type":"Interne Kommunikationsstörung","description":"Interner Kommunikationsfehler","action":"Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten"},
                  {"code":"3050","type":"Interne Kommunikationsstörung","description":"Interner Kommunikationsfehler","action":"Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten"},
                  {"code":"3051","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3052","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3053","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3054","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"3055","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
                  {"code":"3056","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3057","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Generatorinstallation/ -auslegung kontrollieren"},
                  {"code":"3059","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Ggf. falsche Ländereinstellung. Support kontaktieren"},
                  {"code":"3060","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
                  {"code":"3061","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3062","type":"Interne Temperaturstörung","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3063","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3064","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3065","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3066","type":"Interne Parametrierungsstörung","description":"Interne Systemstörung","action":"Support kontaktiere"},
                  {"code":"3068","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
                  {"code":"3070","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
                  {"code":"3071","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
                  {"code":"3072","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
                  {"code":"3073","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
                  {"code":"3074","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
                  {"code":"3075","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
                  {"code":"3076","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Die AC-Spannung ist gegebenenfalls zu niedrig"},
                  {"code":"3079","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
                  {"code":"3080","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Das Gerät neu starten"},
                  {"code":"3082","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3083","type":"Information","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig1"},
                  {"code":"3084","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren"},
                  {"code":"3085","type":"Interne Temperaturstörung","description":"Übertemperatur Prozessor","action":"Installationsbedingungen und Lüfter kontrollieren1 "},
                  {"code":"3086","type":"Information","description":"Leistungsabregelung aufgrund eines Netzfehlers (erhöhte AC-Spannung)","action":"Support"},
                  {"code":"3087","type":"Interne Systemstörung ","description":"Interner Systemfehler","action":"Support kontaktieren"},
                  {"code":"3088","type":"Interne Systemstörung ","description":"Lüftereinheit verschmutzt","action":"Lüftereinheit reinigen"},
                  {"code":"3089","type":"Interne Systemstörung ","description":"Lüftereinheit verschmutzt","action":"Lüftereinheit reinigen"},
                  {"code":"3090","type":"Interne Systemstörung ","description":"Interner Systemfehler","action":"Support kontaktieren"},
                  {"code":"3091","type":"Interne Systemstörung ","description":"Lüfter nicht korrekt angeschlossen","action":"Lüfter-Steckverbindungen prüfe"},
                  {"code":"3092","type":"Interne Systemstörung ","description":"Lüfter nicht korrekt angeschlossen","action":"Lüfter-Steckverbindungen prüfe"},
                  {"code":"3093","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
                  {"code":"3094","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
                  {"code":"3095","type":"Interne Parametrierungsstörung","description":"Falsche Kalibrierung","action":"Support kontaktiere"},
                  {"code":"3096","type":"Information","description":"Falsche Dimensionierung der PV-Generator","action":"Generatorinstallation/ -auslegung kontrolliere"},
                  {"code":"3097","type":"Interne Parametrierungsstörung","description":"Falsche Parametrierung","action":"Support kontaktiere"},
                  {"code":"3098","type":"Information","description":"Netz nicht vorhanden","action":"Keine Maßnahme notwendig"},
                  {"code":"3101","type":"Information","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3102","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3103","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3104","type":"Interne Systemstörung ","description":"Interne AC-Systemstörung","action":"Gerät führt mehrfach eine Prüfung durch und schaltet generell auf"},
                  {"code":"3105","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"},
                  {"code":"3106","type":"Information","description":"Falsche Eingabe am KomBoard oder falsche Verdrahtung","action":"Eingabe oder Verdrahtung korriegieren"},
                  {"code":"4100","type":"Interne Systemstörung ","description":"Interner Softwarefehler","action":"Support"},
                  {"code":"4101","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L1","action":"Support"},
                  {"code":"4102","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L2","action":"Support"},
                  {"code":"4103","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L3","action":"Support"},
                  {"code":"4104","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L1","action":"Support"},
                  {"code":"4105","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L2","action":"Support"},
                  {"code":"4106","type":"Interne Systemstörung ","description":"Erhöhter DC-Strom L3","action":"Support"},
                  {"code":"4110","type":"Interne Systemstörung ","description":"Interner Softwarefehler","action":"Support"},
                  {"code":"4121","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4122","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4130","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4131","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4150","type":"Information","description":"Erhöhte Netzfrequenz. Oft gehäuftes Auftreten am Morgen und am Abend.","action":"Installation kontrollieren"},
                  {"code":"4151","type":"Externe Netzstörung","description":"Zu niedrige Netzfrequenz","action":"Installation kontrollieren"},
                  {"code":"4157","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Keine Maßnahme notwendig"},
                  {"code":"4158","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Installation kontrollieren"},
                  {"code":"4159","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Installation kontrollieren"},
                  {"code":"4160","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Installation kontrollieren"},
                  {"code":"4161","type":"Externe Netzstörung","description":"Zu niedrige Netzfrequenz","action":"Installation kontrollieren"},
                  {"code":"4170","type":"Information","description":"Eine Phase ist nicht angeschlossen. Ein Sicherungsautomat wurde nicht eingeschaltet.","action":"Installation kontrollieren"},
                  {"code":"4180","type":"Externe Netzstörung","description":"PE-Leitung nicht angeschlossen","action":"Installation kontrollieren"},
                  {"code":"4181","type":"Externe Netzstörung","description":"PE-Leitung nicht angeschlossen","action":"Installation kontrollieren "},
                  {"code":"4185","type":"Interne Systemstörung ","description":"Interner Softwarefehler","action":"Support1 "},
                  {"code":"4200","type":"Externe Netzstörung","description":"Erhöhte Netzspannung","action":"Installation kontrollieren "},
                  {"code":"4201","type":"Externe Netzstörung","description":"Zu niedrige Netzspannung","action":"Installation kontrollieren "},
                  {"code":"4210","type":"Externe Netzstörung","description":"Erhöhte Netzspannung","action":"Installation kontrollieren "},
                  {"code":"4211","type":"Externe Netzstörung","description":"Zu niedrige Netzspannung","action":"Installation kontrollieren "},
                  {"code":"4220","type":"Externe Netzstörung","description":"Spannungsmittelwert der letzten 10 Min. zu groß","action":"Installation kontrollieren "},
                  {"code":"4221","type":"Externe Netzstörung","description":"Spannungsmittelwert der letzten 10 Min. zu groß","action":"Installation kontrollieren "},
                  {"code":"4290","type":"Externe Netzstörung","description":"Die Netzfrequenz hat sich zu schnell verändert.","action":"Generatorinstallation kontrollieren "},
                  {"code":"4300","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4301","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4302","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4303","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4304","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4321","type":"Interne Parametrierungsstörung","description":"Defektes EEPROM unerlaubte Speicherzugriffe","action":"Support"},
                  {"code":"4322","type":"Interne Parametrierungsstörung","description":"Softwarefehler","action":"Support kontaktieren"},
                  {"code":"4323","type":"Interne Parametrierungsstörung","description":"Fehlerstrom","action":"Support"},
                  {"code":"4324","type":"Interne Parametrierungsstörung","description":"Parameterfehler","action":"Support"},
                  {"code":"4325","type":"Interne Parametrierungsstörung","description":"Parameterfehler","action":"Support"},
                  {"code":"4340","type":"-","description":"","action":""},
                  {"code":"4354","type":"Externer Fehlerstrom","description":"Fehlerstrom","action":"Generatorinstallation kontrollieren "},
                  {"code":"4360","type":"-","description":"","action":""},
                  {"code":"4421","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
                  {"code":"4422","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren. "},
                  {"code":"4424","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support"},
                  {"code":"4425","type":"Interne Parametrierungsstörung","description":"Parameterfehler","action":"Support "},
                  {"code":"4450","type":"Externe Isolationsfehler","description":"Isolationsfehler","action":"Generatorinstallation kontrollieren "},
                  {"code":"4451","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support kontaktieren "},
                  {"code":"4475","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
                  {"code":"4476","type":"Information","description":"Schwache PV-Versorgung (z.B. morgens)","action":"Keine Maßnahme notwendig "},
                  {"code":"4800","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
                  {"code":"4801","type":"Interne Systemstörung ","description":"Isolationsfehler","action":"Support "},
                  {"code":"4802","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
                  {"code":"4803","type":"Interne Systemstörung ","description":"Isolationsfehler","action":"Support "},
                  {"code":"4804","type":"Interne Systemstörung ","description":"Isolationsfehler","action":"Support "},
                  {"code":"4805","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
                  {"code":"4810","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
                  {"code":"4850","type":"Interne Systemstörung ","description":"EVU","action":"Support "},
                  {"code":"4870","type":"-","description":"","action":""},
                  {"code":"7500","type":"Interne Systemstörung ","description":"Interne Systemstörung","action":"Support "},
                  {"code":"7503","type":"Information","description":"Interne Systemstörung","action":"Keine Maßnahme notwendig"}
                  ];
                   
                   
                   
                  function getEvents() {
                     //log('getEvents');
                     var keys = [];
                     var key1 = 234881792;
                     var key2 = 234881537;  
                     keys.push(key1);
                     for (var i=0;i<10;i++) {
                         keys.push(key2+i);
                     }
                   
                     pikorequest(keys, function(response){
                         //log('events: '+ JSON.stringify(response));
                         var item,len;
                         var msga = [];
                         if (typeof response === 'string') response = JSON.parse(response);
                         item = getResponseId(response,234881792);
                         len = item.value;
                         for (var i=0;i<len;i++) {
                             item = getResponseId(response,234881537+i);
                             var d,date,code,env;
                             d = item.value;
                             date = timeConverter((d[0] << 0) + (d[1] << 8) + (d[2] << 16) + (d[3] << 24));
                             code = (d[4] << 0) + (d[5] << 8);
                             env = ("0000"+((d[6] << 0) + (d[7] << 8)).toString(16)).toLocaleUpperCase().substr(-4,4)+'h';
                             var msg = msgs.find(item => item.code==code);
                             msg.date=date;
                             var msgtext = 'Code: '+msg.code+' Typ: '+msg.type+' Beschreibung: '+msg.description+' Maßnahme: '+msg.action
                             //log('message' + i+1 + ': ' + date + ' '  + code + ' '  + env + ' '+msgtext);
                             //log("Datenpunkt: "+ datenpunkt+i + " Fehlermeldung: " + msgtext + true/*ack*/);
                             setState(datenpunkt+i,`[` + JSON.stringify(msg) +`]`, true/*ack*/);
                             msga.push(msg);
                         }
                         setState(datenpunkt, JSON.stringify(msga) , true/*ack*/);
                      });
                  }
                   
                  function pikorequest(keys,callback) {
                     //log('pikorequest');
                     if (keys.length==0) {
                         //log('request error: No keys ');
                         return;     
                     }
                   
                     var query = '';
                   
                     for (var i = 0; i < keys.length; i++) { 
                         query += '&dxsEntries=' + keys[i];
                     }
                   
                     var req_url = 'http://' + domain + url + '?sessionid=iobroker' + query;
                     //log ('query: '+req_url);
                   
                     request(
                         { method: 'GET',
                         uri: req_url,
                         }
                     , function (error, response, body) {
                                 //log('error: ' + error);
                                 //log('Status: '+ response.statusCode);
                                 //log('response: '+ JSON.stringify(response));
                                 //response.body = '{"dxsEntries":[{"dxsId":234881792,"value":1},{"dxsId":234881537,"value":[207,217,88,94,63,16,2,0]},{"dxsId":234881538,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881539,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881540,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881541,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881542,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881543,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881544,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881545,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881546,"value":[0,0,0,0,0,0,0,0]}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}';
                                 //response.statusCode = 200;
                                 //error = false;
                   
                             if (!error && response.statusCode == 200) {
                                 //log('request ok: ');
                                 //log('Status: '+ response.statusCode);
                                 //log('response: '+ JSON.stringify(response));
                                 callback(response.body);
                             } else {
                                 log('request nok: ');
                                 //log('Status: '+ response.statusCode);
                                 //log('error: ' + error);
                             }
                         }
                     );
                  }
                  function getResponseId(response,id) {
                     return response.dxsEntries.find( item => item.dxsId === id );
                  }
                  function timeConverter(UNIX_timestamp){
                   var a = new Date(UNIX_timestamp * 1000);
                   var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
                   var year = a.getFullYear();
                   var month = months[a.getMonth()];
                   var date = a.getDate();
                   var hour = ('0'+a.getHours()).slice(-2);
                   var min = ('0'+a.getMinutes()).slice(-2);
                   var sec = ('0'+a.getSeconds()).slice(-2);
                   var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
                   return time;
                   log (time);
                  }
                  schedule("* * * * *", getEvents);
                  
                  Homoran 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @OliverIO last edited by

                    @OliverIO sagte in Parser:

                    msgs hatte ich ja schon für die ganzen Meldungen verwendet.

                    Das hatte ich zwar gesehen, aber nicht so richtig verarbeitet 😉

                    Habe jetzt das neue Skript übernommen.
                    Läuft ohne Fehler (wenn man das js-interne debug abschaltet 😉 )

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                      @OliverIO sagte in Parser:

                      habe nun an den relevanten stellen zu msga umbenannt.

                      sorry, leider noch ein Fehler.

                      Der Datenpunkt wird zwar beschrieben, es ist auch eine Liste von Events, aber...

                      ArrayInArray_KostalEvents.png

                      Alle Zeilen enthalten den gleichen event 😞

                      EDIT:
                      habe mir das Ganze nochmals näher angesehen. Es ist im Prinzip der älteste event, der in Info9 geschrieben wird

                      Kostal_msga.png

                      EDIT2:
                      bin bei der Suche nach der Ursache auf den Code aus Zeile 182 gestoßen:

                      var msg = msgs.find(item => item.code==code);
                      

                      Verstehe den Code zwar nicht, aber ich fürchte das ist die Ursache, weil nachher msg in das Array msga gepusht wird, und der code von allen Meldungen ja gleich ist.

                      Dabei kam mir wieder dein Satz in den Sinn:

                      @OliverIO sagte in Parser:

                      @Homoran
                      wir haben die maximal 5 möglichen Meldungen jeweils in einen separaten Datenpunkt geschrieben.

                      und genau das passiert ja nicht. es werden bei gleichem Code und anderem Datum die Werte in die entsprechenden Datenpunkte geschrieben.

                      OliverIO 1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Homoran last edited by

                        @Homoran

                        Tausche Zeile 188 von
                        msga.push(msg);

                        Nach
                        msga.push(JSON.parse(JSON.stringify(msg)));

                        Das Problem hat was Mit JavaScript Referenzen Auf Objekte zu tun.
                        Diese Lösung ist nicht schön funktioniert aber.
                        Evtl erhalten wir ja in JS mal eine echte deep object copy function.

                        Homoran 1 Reply Last reply Reply Quote 1
                        • Homoran
                          Homoran Global Moderator Administrators @OliverIO last edited by

                          @OliverIO sagte in Parser:

                          @Homoran
                          Tausche Zeile 188 von
                          msga.push(msg);
                          Nach
                          msga.push(JSON.parse(JSON.stringify(msg)));

                          DANKE!!!

                          Kostal_msga_02.png

                          klappt!

                          @OliverIO sagte in Parser:

                          Diese Lösung ist nicht schön funktioniert aber.

                          Ersteres ist mir doch egal 😂 der Rest war wichtig.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          867
                          Online

                          31.6k
                          Users

                          79.5k
                          Topics

                          1.3m
                          Posts

                          parser
                          3
                          108
                          5729
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo