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(JSON.parse(JSON.stringify(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);