NEWS
Parser
-
@Homoran
Nein nur den einen Abruf,
der das Ergebnis hatte, was du im Post#29 gesendet hast -
in deinem screenshot oben sehe ich davon mehrere zeilen.
wenn der fehlercode in der oberfläche nach angezeigt wird, dann sind dieses aufrufe auch noch da -
Nein nur den einen Abruf,
der das Ergebnis hatte, was du im Post#29 gesendet hastoops,
da hatten sich unsere Posts (meiner und dein Edit) überschnitten.
ich hatte den Inhalt, als ich auf einen Eintrag im Networkprotokoll geklickt hatte.Der Eintrag hieß:
http://192.168.138.103/api/dxs.json?dxsEntries=234881792&dxsEntries=234881537&dxsEntries=234881538&dxsEntries=234881539&dxsEntries=234881540&dxsEntries=234881541&dxsEntries=234881542&dxsEntries=234881543&dxsEntries=234881544&dxsEntries=234881545&dxsEntries=234881546&sessionId=3341479126
das Ergebnis:
{"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}}
Verwendest du da ein UserID/Passwort um dich auf der Oberfläche anzumelden?
Ja
-
genau das kopieren
dann ein neuen tab öffen
die dev tools öffnen (F12)
dann das in die adresszeile des browsers eintragen
dann schauen, ob im networkreiter der dev tools ein fehler auftauchtdann genau das selbe am besten im inkognito modus des browser wiederholen
mich interessiert, ob dann ein fehler kommt und ob wir uns um authentifizierung (anmelden) kümmern müssen. -
@OliverIO
I'll try my very bestNochmals den Link geöffnet. Network:
dann im Incognito:
In dem Reiter Console vom Incognito:
Hinweis auf die Credentials kam ja schon hier:
scheint sich aber nur auf die WebUI zu beziehen
-
@Homoran
Sieht super aus, für Json benötigen wir kein Passwort,
Die Daten kommen auch so.Für heut machen wir Schluss, ich Bau dir morgen einen rudimentären skriptrahmen, der die Daten abruft und als debug ausgibt.
Und dann sind wir schon recht schnell bei der Ausgabe als datenpunkt.Du musst mir mal noch erklären was die beiden Zahlen bedeuten.
Eins ist der Fehler Code, aber was ist die 2. Zahl die hier 2 heißt?Weil du willst die Zahlen ja in irgendeinen Text umwandeln.
Du hast da ein Verzeichnis? -
Für heut machen wir Schluss, ich Bau dir morgen einen rudimentären skriptrahmen, der die Daten abruft und als debug ausgibt.
Und dann sind wir schon recht schnell bei der Ausgabe als datenpunkt.Klingt gut,
Ab morgen muss ich aber für ein paar Tage auf Dienstreise. Mal sehen ob ich heute abend noch Zeit finde.was ist die 2. Zahl die hier 2 heißt?
meinst du die 00002h ??
ich nahm an, dass das auch ein Fehlercode in Hex seiDu hast da ein Verzeichnis?
Ja, leider nur als Scan vom Solarteur, müsste also alle Zahlen und Beschreibungen abtippen.
Ich werde das genau so machen wie bei den Betriebsstatusmeldungen (https://www.loxwiki.eu/pages/viewpage.action?pageId=28803569) und sukzessive das Übersetzungsskript erweitern.
Die verlinkte Seite kannte ich damals nicht - 7 ist übrigens Isolationsmessung )EDIT: vielleicht ist das aber auch die Dauer?? Aber das ging etwa von 09:00 bis 13:00
-
Musst nicht tippen, konnte die Tabelle aus dem PDF extrahieren
3000 Störung Updateprozess Interne Systemstörung Update des Wechselrichters durchführen. 3003 Interne Kommunikationsstörung Interne Kommunikationsstörung zwischen Netzüberwachung und Steuerung Internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten kontrollieren1 3006 Interne Systemstörung Interne Systemstörung bzgl. Leistungsabregelung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf. Support1 3010 Interne Kommunikationsstörung Interne Kommunikationsstörung zwischen Steuerung und Kommunkationsplatine Kontrollieren Sie die Uhrzeiteinstellung, Funktionalität der Kommunikationsplatine und weiterer Kommunikationseinstellungen. Wechselrichter schaltet trotz fehlerhaftem Zeitstempel auf1 3011 Interne Temperaturstörung Interne Systemstörung Support1 3012 Störung Varistor DC-Varistor defekt Defekten Varistor tauschen1 3013 Interne Temperaturstörung Übertemperatur AC/DC an Leistungsstufe Installationsbedingungen und Lüfter kontrollieren1 3014 Interne Temperaturstörung Übertemperatur Prozessor Installationsbedingungen und Lüfter kontrollieren1 3017 Externe Generatorstörung Überspannung am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3018 Information Leistungsabregelung durch externe Vorgaben (Netzbetreiber) Keine Maßnahme Notwendig. 3019 Externe Netzstörung Leistungsabregelung aufgrund eines Netzfehlers (erhöhte Netzfrequenz) Support1 3020 Externe Generatorstörung Überstrom am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3021 Interne Systemstörung Interne Systemstörung Support1 3022 Externe Generatorstörung Überspannung am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3023 Externe Generatorstörung Überstrom am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3024 Interne Systemstörung Interne Systemstörung Support1 3025 Externe Generatorstörung Überspannung am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3026 Externe Generatorstörung Überstrom am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3027 Interne Temperaturstörung Interne Systemstörung Support1 3028 Externe Generatorstörung Überspannung am PV-Generator Generatorinstallation/ -auslegung kontrollieren 3029 Externe Generatorstörung Überstrom am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3030 Interne Temperaturstörung Übertemperatur AC/DC an Leistungsstufe Installationsbedingungen und Lüfter kontrollieren1 3031 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach Prüfung durch und schaltet generell auf1 3032 Externe Generatorstörung Überstrom am PV-Generator Generatorinstallation/ -auslegung kontrollieren1 3033 Interne Systemstörung Interne Systemstörung Support1 3034 Interne Systemstörung Interner Zwischenkreisfehler Das Gerät neu starten1 3035 Interne Systemstörung Interner Zwischenkreisfehler Das Gerät neu starten1 3036 Interne Systemstörung Interne Systemstörung Support kontaktieren 3037 Interne Systemstörung Interne Systemstörung Support kontaktieren 3038 Interne Systemstörung Interne Systemstörung Support kontaktieren 3039 Interne Parametrierungsstörung Interne Systemstörung Support kontaktieren 3045 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach Prüfung durch und schaltet generell auf1 3046 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach Prüfung durch und schaltet generell auf.1 3047 Interne Systemstörung Interne Systemstörung Support1 3048 Interne Kommunikationsstörung Interner Kommunikationsfehler Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten1 3049 Interne Kommunikationsstörung Interner Kommunikationsfehler Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten1 3050 Interne Kommunikationsstörung Interner Kommunikationsfehler Kontrollieren Sie die internen Kommunikationsleitungen zwischen den einzelnen Leiterplatten1 3051 Interne Systemstörung Interne Systemstörung Support1 3052 Interne Systemstörung Interne Systemstörung Support1 3053 Interne Systemstörung Interne Systemstörung Support1 3054 Interne Systemstörung Interne Systemstörung Support1 3055 Interne Systemstörung Interne Systemstörung Das Gerät neu starten1 3056 Interne Parametrierungsstörung Interne Systemstörung Support kontaktieren 3057 Interne Systemstörung Interne Systemstörung Generatorinstallation/ -auslegung kontrollieren1 3059 Interne Parametrierungsstörung Falsche Parametrierung Ggf. falsche Ländereinstellung. Support kontaktieren 3060 Interne Parametrierungsstörung Falsche Parametrierung Support kontaktieren 3061 Interne Systemstörung Interne Systemstörung Keine Maßnahme notwendig1 3062 Interne Temperaturstörung Interne Systemstörung Keine Maßnahme notwendig1 3063 Interne Parametrierungsstörung Interne Systemstörung Support kontaktieren 3064 Interne Systemstörung Interne Systemstörung Keine Maßnahme notwendig1 3065 Interne Systemstörung Interne Systemstörung Keine Maßnahme notwendig1 3066 Interne Parametrierungsstörung Interne Systemstörung Support kontaktieren 3068 Interne Systemstörung Interne Systemstörung Das Gerät neu starten1 3070 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf1 3071 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf1 3072 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf1 3073 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf1 3074 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf1 3075 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf1 3076 Interne Systemstörung Interne AC-Systemstörung Die AC-Spannung ist gegebenenfalls zu niedrig. 3079 Interne Systemstörung Interne Systemstörung Das Gerät neu starten1 3080 Interne Systemstörung Interne Systemstörung Das Gerät neu starten1 3082 Interne Systemstörung Interne Systemstörung Support kontaktieren 3083 Information Interne Systemstörung Keine Maßnahme notwendig1 3084 Interne Systemstörung Interne Systemstörung Support kontaktieren 3085 Interne Temperaturstörung Übertemperatur Prozessor Installationsbedingungen und Lüfter kontrollieren1 3086 Information Leistungsabregelung aufgrund eines Netzfehlers (erhöhte AC-Spannung) Support1 3087 Interne Systemstörung Interner Systemfehler Support kontaktieren 3088 Interne Systemstörung Lüftereinheit verschmutzt Lüftereinheit reinigen 3089 Interne Systemstörung Lüftereinheit verschmutzt Lüftereinheit reinigen 3090 Interne Systemstörung Interner Systemfehler Support kontaktieren 3091 Interne Systemstörung Lüfter nicht korrekt angeschlossen Lüfter-Steckverbindungen prüfen 3092 Interne Systemstörung Lüfter nicht korrekt angeschlossen Lüfter-Steckverbindungen prüfen 3093 Interne Parametrierungsstörung Falsche Parametrierung Support kontaktieren 3094 Interne Parametrierungsstörung Falsche Parametrierung Support kontaktieren 3095 Interne Parametrierungsstörung Falsche Kalibrierung Support kontaktieren 3096 Information Falsche Dimensionierung der PV-Generator Generatorinstallation/ -auslegung kontrollieren 3097 Interne Parametrierungsstörung Falsche Parametrierung Support kontaktieren 3098 Information Netz nicht vorhanden Keine Maßnahme notwendig1 3101 Information Interne Systemstörung Keine Maßnahme notwendig1 3102 Interne Systemstörung Interne Systemstörung Keine Maßnahme notwendig1 3103 Interne Systemstörung Interne Systemstörung Keine Maßnahme notwendig1 3104 Interne Systemstörung Interne AC-Systemstörung Gerät führt mehrfach eine Prüfung durch und schaltet generell auf1 3105 Interne Systemstörung Interne Systemstörung Keine Maßnahme notwendig1 3106 Information Falsche Eingabe am KomBoard oder falsche Verdrahtung Eingabe oder Verdrahtung korriegieren1 4100 Interne Systemstörung Interner Softwarefehler Support1 4101 Interne Systemstörung Erhöhter DC-Strom L1 Support1 4102 Interne Systemstörung Erhöhter DC-Strom L2 Support1 4103 Interne Systemstörung Erhöhter DC-Strom L3 Support1 4104 Interne Systemstörung Erhöhter DC-Strom L1 Support1 4105 Interne Systemstörung Erhöhter DC-Strom L2 Support1 4106 Interne Systemstörung Erhöhter DC-Strom L3 Support1 4110 Interne Systemstörung Interner Softwarefehler Support1 4121 Interne Systemstörung Interne Systemstörung Support1 4122 Interne Systemstörung Interne Systemstörung Support1 4130 Interne Systemstörung Interne Systemstörung Support1 4131 Interne Systemstörung Interne Systemstörung Support1 4150 Information Erhöhte Netzfrequenz. Oft gehäuftes Auftreten am Morgen und am Abend. Installation kontrollieren1 4151 Externe Netzstörung Zu niedrige Netzfrequenz Installation kontrollieren1 4157 Externe Netzstörung Erhöhte Netzfrequenz Keine Maßnahme notwendig1 4158 Externe Netzstörung Erhöhte Netzfrequenz Installation kontrollieren1 4159 Externe Netzstörung Erhöhte Netzfrequenz Installation kontrollieren1 4160 Externe Netzstörung Erhöhte Netzfrequenz Installation kontrollieren1 4161 Externe Netzstörung Zu niedrige Netzfrequenz Installation kontrollieren1 4170 Information Eine Phase ist nicht angeschlossen. Ein Sicherungsautomat wurde nicht eingeschaltet. Installation kontrollieren1 4180 Externe Netzstörung PE-Leitung nicht angeschlossen Installation kontrollieren1 4181 Externe Netzstörung PE-Leitung nicht angeschlossen Installation kontrollieren1 4185 Interne Systemstörung Interner Softwarefehler Support1 4200 Externe Netzstörung Erhöhte Netzspannung Installation kontrollieren1 4201 Externe Netzstörung Zu niedrige Netzspannung Installation kontrollieren1 4210 Externe Netzstörung Erhöhte Netzspannung Installation kontrollieren1 4211 Externe Netzstörung Zu niedrige Netzspannung Installation kontrollieren1 4220 Externe Netzstörung Spannungsmittelwert der letzten 10 Min. zu groß Installation kontrollieren1 4221 Externe Netzstörung Spannungsmittelwert der letzten 10 Min. zu groß Installation kontrollieren1 4290 Externe Netzstörung Die Netzfrequenz hat sich zu schnell verändert. Generatorinstallation kontrollieren1 4300 Interne Systemstörung Interne Systemstörung Support1 4301 Interne Systemstörung Interne Systemstörung Support1 4302 Interne Systemstörung Interne Systemstörung Support1 4303 Interne Systemstörung Interne Systemstörung Support1 4304 Interne Systemstörung Interne Systemstörung Support1 4321 Interne Parametrierungsstörung Defektes EEPROM, unerlaubte Speicherzugriffe Support1 4322 Interne Parametrierungsstörung Softwarefehler Support kontaktieren 4323 Interne Parametrierungsstörung Fehlerstrom Support1 4324 Interne Parametrierungsstörung Parameterfehler Support1 4325 Interne Parametrierungsstörung Parameterfehler Support1 4340 - 4354 Externer Fehlerstrom Fehlerstrom Generatorinstallation kontrollieren1 4360 - 4421 Interne Systemstörung Interne Systemstörung Support1 4422 Interne Systemstörung Interne Systemstörung Support kontaktieren. 4424 Interne Systemstörung Interne Systemstörung Support1 4425 Interne Parametrierungsstörung Parameterfehler Support1 4450 Externe Isolationsfehler Isolationsfehler Generatorinstallation kontrollieren1 4451 Interne Systemstörung Interne Systemstörung Support kontaktieren 4475 Interne Systemstörung Interne Systemstörung Support1 4476 Information Schwache PV-Versorgung (z.B. morgens) Keine Maßnahme notwendig1 4800 Interne Systemstörung Interne Systemstörung Support1 4801 Interne Systemstörung Isolationsfehler Support1 4802 Interne Systemstörung Interne Systemstörung Support1 4803 Interne Systemstörung Isolationsfehler Support1 4804 Interne Systemstörung Isolationsfehler Support1 4805 Interne Systemstörung Interne Systemstörung Support1 4810 Interne Systemstörung Interne Systemstörung Support1 4850 Interne Systemstörung EVU Support1 4870 - 7500 Interne Systemstörung Interne Systemstörung Support1 7503 Information Interne Systemstörung Keine Maßnahme notwendig1
-
@Homoran
die Dauer ist es nicht. Die Variable nennt sich oben env. Was eher auf environment=Umgebung schließt -
Musst nicht tippen, konnte die Tabelle aus dem PDF extrahieren
Super - Danke!
Da ist sie:
@OliverIO sagte in Parser:4157 Externe Netzstörung Erhöhte Netzfrequenz Keine Maßnahme notwendig1
Die Variable nennt sich oben env. Was eher auf environment=Umgebung schließt
klingt logisch - aber was bedeutet sie?
Da braucht es big data um den Zusammenhang zu erkennen -
so jetzt kannst mal probieren:
Neues Skript anlegen,
den folgenden Block reinkopieren
und am Anfang bei der variable domain
die IP-Adresse deiner Anlage eintragen (bei dir müsste das 192.168.138.103 sein.Dann skript starten. Wenn der Fehlercode bei dir in der html-oberfläche noch angezeigt wird,
dann müsste da em ende der protokollausgabe in der Skript engine so etwas wie folgt rauskommenmessage01: 28 Feb 2020 10:13:51 4159 0002h
var domain = '192.168.1.20'; // domain or ip without http:// or https:// var url = '/api/dxs.json'; 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 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'; log('message' + i+1 + ': ' + date + ' ' + code + ' ' + env + ' '); } }); } 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 = {"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; if (!error && response.statusCode == 200) { //log('Status: '+ response.statusCode); //log('response: '+ JSON.stringify(response)); callback(response); } else { //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 = a.getHours(); var min = a.getMinutes(); var sec = a.getSeconds(); var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ; return time; } getEvents();
-
-
so nochmal probieren.
var domain = '192.168.1.20'; // domain or ip without http:// or https:// var url = '/api/dxs.json'; 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 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'; log('message' + i+1 + ': ' + date + ' ' + code + ' ' + env + ' '); } }); } 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 = {"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; if (!error && response.statusCode == 200) { //log('Status: '+ response.statusCode); //log('response: '+ JSON.stringify(response)); callback(JSON.parse(body)); } else { //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 = a.getHours(); var min = a.getMinutes(); var sec = a.getSeconds(); var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ; return time; } getEvents();
-
-
dein eingebundenes skript ruft ebenfalls die daten per json ab und schreibt sie in datenpunkte.
das prinzip ist das gleiche -
@Homoran jetzt musst du nur noch entscheiden in welcher form du das als datenpunkt haben willst. wie gesagt, es können bis zu 10 events rauskommen.
das mapping bekomm ich auch hin -
@OliverIO Ich sag ja: kommt mir bekannt vor
Jetzt noch eine translationtable und gut ist
Mit Blockly käme ich jetzt weiter
on({id: 'Messwerte.0.Solaranlage.Momentanwerte.Status', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("Messwerte.0.Solaranlage.Momentanwerte.Status").val == 0) { setState("Messwerte.0.Solaranlage.Momentanwerte.Status_Klartext"/*Status_Klartext*/, 'aus', true); } else if (getState("Messwerte.0.Solaranlage.Momentanwerte.Status").val == 1) { setState("Messwerte.0.Solaranlage.Momentanwerte.Status_Klartext"/*Status_Klartext*/, 'Leerlauf', true); } else if (getState("Messwerte.0.Solaranlage.Momentanwerte.Status").val == 2) { setState("Messwerte.0.Solaranlage.Momentanwerte.Status_Klartext"/*Status_Klartext*/, 'Anfahren', true); } else if (getState("Messwerte.0.Solaranlage.Momentanwerte.Status").val == 3) { setState("Messwerte.0.Solaranlage.Momentanwerte.Status_Klartext"/*Status_Klartext*/, 'Einspeisen MPP', true); } else if (getState("Messwerte.0.Solaranlage.Momentanwerte.Status").val == 4) { setState("Messwerte.0.Solaranlage.Momentanwerte.Status_Klartext"/*Status_Klartext*/, 'Einspeisen abgeregelt', true); } else if (getState("Messwerte.0.Solaranlage.Momentanwerte.Status").val == 7) { setState("Messwerte.0.Solaranlage.Momentanwerte.Status_Klartext"/*Status_Klartext*/, 'Isolationsmessung', true); } else { setState("Messwerte.0.Solaranlage.Momentanwerte.Status_Klartext"/*Status_Klartext*/, (String('Code ') + String(('' + getState("Messwerte.0.Solaranlage.Momentanwerte.Status").val))), true); } });
Aber in Blockly
-
@Homoran
blocky ist blöd.
i endeffekt ist es das glche wie programmieren, nur mit klötzchen. jedes klötzchen entspricht eh mehr oder weniger einem javascript befehl. mit javascript gibt es aber im netz mehr flexibilität und mehr lösungen als für blockly -
@Homoran ok Übersetzungstabelle mach ich später. Muss mal ne weile ausser Haus
-
@OliverIO ich weiß, aber ich bin froh dass es das gibt, da ich mich erst seit ioBroker mit js beschäftige.
Ist für mich wie eine Fremdsprache: Verstehen: so lala, sprechen: naja
Die Grammatik (=Syntax) ist bei mir noch nicht sicher genug, eher Glückssache)