@ticaki was daran ist ein Fehler? Hier wir ein existierender state geupdated. Es sind halt 384 states, die auf einmal geschickt werden. Ich kann höchstens schauen, ob ich den Debuglevel runter drehen kann.
NEWS
Sven Schumacher
@Sven Schumacher
Latest posts made by Sven Schumacher
-
RE: Script okay? Hier zur Überprüfung
-
RE: Update auf neuen NODE.JS und nichts geht mehr
@glasfaser das ist nicht von mir, das Bild. Oder?
-
RE: Script okay? Hier zur Überprüfung
Und hier noch das zweite Scipt zu dem Thema.
Hier werden die aktuelle Messwerte alle 15 Minuten abgefragt.schedule("*/15 * * * *", function () { KMW_Messwerte(); console.log ("DONE"); }); const typeOverrides = { lat: 'string', lon: 'string', dateTime: 'string', run: 'string', weatherSymbol: {value: 'string'} }; function getType(key, value) { let type = typeof value; // Special type handling let path = key.split('.'); let currentOverrides = typeOverrides; for (let part of path) { if (currentOverrides[part]) { if (typeof currentOverrides[part] === 'object') { currentOverrides = currentOverrides[part]; } else { return currentOverrides[part]; } } else { break; } } return type; } function KMW_Messwerte() { const fetch = require('node-fetch'); const url = 'https://api.kachelmannwetter.com/v02/current/55.49413097231316/7.87122704335334'; const options = { method: 'GET', headers: { 'Accept': 'application/json', 'X-API-Key': '0815', }, }; fetch(url, options) .then(response => response.json()) .then(data => { createOrUpdateObjectTree('javascript.0.Kachelmann.Messwerte', data); }) .catch(err => console.error('Fehler:', err)); } function createOrUpdateObjectTree(baseId, obj) { for (const key in obj) { const value = obj[key]; const id = `${baseId}.${key}`; const field =`${key}`; let valueType = getType(id, value); //log('Data:' + ' - ' + key + ' - ' + value + ' - ' + id + ' - ' + field + ' - ' + valueType); if (valueType === 'object' && value !== null) { //console.log('Descending into sub-object:', value); createOrUpdateObjectTree(id, value); } else { //console.log('Updating or creating state...'); let typeDefinition = {name: field, type: valueType, read: true, write: false}; // Prüfen, ob der Zustand bereits existiert if (existsState(id)) { // Zustand existiert bereits, aktualisieren console.log('State exists, updating...'); setState(id, value, true, typeDefinition); } else { // Zustand existiert noch nicht, erstellen console.log('State does not exist, creating...'); createState(id, value, true, typeDefinition); } } } } function createOrUpdateObjectTree_x(baseId, obj) { for (const key in obj) { const value = obj[key]; const id = `${baseId}.${key}`; const field =`${key}`; let valueType = getType(id, value); if (valueType === 'object' && value !== null) { createOrUpdateObjectTree(id, value); } else { let typeDefinition = {name: field, type: valueType, read: true, write: false}; // Prüfen, ob der Zustand bereits existiert if (existsState(id)) { // Zustand existiert bereits, aktualisieren setState(id, value, true, typeDefinition); } else { // Zustand existiert noch nicht, erstellen createState(id, value, true, typeDefinition); } } } } // KMW_Messwerte();
-
RE: Script okay? Hier zur Überprüfung
@homoran Hab 0815 eingetragen, weil dein Edit das Syntax-Highlighting kaputt gemacht hat
-
RE: Script okay? Hier zur Überprüfung
@homoran der key wurde von mir schon verstümmelt, war also eh nutzlos. Aber so ist es halt 100%
-
Script okay? Hier zur Überprüfung
Hier das Script. Aus Gründen mit ungültigem API-Key
Es werden für die nächsten 24h je 16 Wetterparameter geladen. Als 384 in einigen ms. Das ergibt entsprechend Einträge im Log. Das wird nur einmal Am Tag gemacht, wenn ein neuer Durchlauf bei Kachelmann verfügbar ist.
top sagt:
top - 16:20:48 up 1 day, 42 min, 1 user, load average: 0.07, 0.29, 0.25 Tasks: 162 total, 1 running, 161 sleeping, 0 stopped, 0 zombie %Cpu(s): 4.8 us, 4.8 sy, 0.0 ni, 90.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 7812.3 total, 5379.5 free, 1441.3 used, 991.5 buff/cache MiB Swap: 100.0 total, 100.0 free, 0.0 used. 6248.2 avail Mem
schedule("* 1 * * *", function () { KMW_Vorhersage(); console.log ("DONE"); }); const typeOverrides = { lat: 'string', lon: 'string', dateTime: 'string', run: 'string', weatherSymbol: {value: 'string'} }; function getType(key, value) { let type = typeof value; // Special type handling let path = key.split('.'); let currentOverrides = typeOverrides; for (let part of path) { if (currentOverrides[part]) { if (typeof currentOverrides[part] === 'object') { currentOverrides = currentOverrides[part]; } else { return currentOverrides[part]; } } else { break; } } return type; } function KMW_Vorhersage() { const fetch = require('node-fetch'); const url = 'https://api.kachelmannwetter.com/v02/forecast/55.49413097231316/7.87122704335334/standard/1h'; const options = { method: 'GET', headers: { 'Accept': 'application/json', 'X-API-Key': '0815', }, }; fetch(url, options) .then(response => response.json()) .then(data => { createOrUpdateObjectTree('javascript.0.Kachelmann.Vorhersage', data); }) .catch(err => console.error('Fehler:', err)); } function createOrUpdateObjectTree(baseId, obj) { for (const key in obj) { try { let value = obj[key]; const id = `${baseId}.${key}`; const field =`${key}`; log("Checking type for ID:"+ id); let valueType = getType(id, value); // log('Data:' + ' - ' + key + ' - ' + value + ' - ' + id + ' - ' + field + ' - ' + valueType); if (valueType === 'object' && value !== null) { createOrUpdateObjectTree(id, value); } else { if (key === 'lon' || key === 'lat') { value = value.toString(); } let typeDefinition = {name: field, type: valueType, read: true, write: false}; // log (typeDefinition.type) // Prüfen, ob der Zustand bereits existiert if (existsState(id)) { // Zustand existiert bereits, aktualisieren setState(id, value, true, typeDefinition); } else { // Zustand existiert noch nicht, erstellen createState(id, value, true, typeDefinition); } } } catch (error) { console.error(`Fehler Verarbeitung Key "${key}":`, error); } } } KMW_Vorhersage();
-
RE: Update auf neuen NODE.JS und nichts geht mehr
@ticaki dafür mache ich gerne ein neues Thema auf. Hat ja vermutlich nichts mit dem Problem zu tun.
-
RE: Update auf neuen NODE.JS und nichts geht mehr
@thomas-braun also: heute Nacht irgendwann hat sich der Zugriff wieder repariert...
Und auch in Grafana sind wieder Werte. Über 8h war beides nicht möglich. Ich weiß nicht, was heute Nacht passiert ist. Ich habe vor dem Beitrag in Forum alles gemacht, was man machen konnte. Aber ohne Zugriff zu bekommen oder Werte in Grafana zu sehen.
Kann der Aufruf von dem Script, mit dem ich den Status erfassen konnte, irgendetwas repariert haben?
-
RE: Update auf neuen NODE.JS und nichts geht mehr
@thomas-braun wie gesagt: AUCH ein guter Punkt, den ich sicher angehen werde, sobald ich wieder auf das System zugreifen kann.
-
RE: Update auf neuen NODE.JS und nichts geht mehr
@thomas-braun Das Script ist von mir selber Und es läuft unverändert seit mindestens 6 Monaten. Es erzeugt nur ein bisschen viel Debug-Info.
Also das Logfile sah immer so aus. Es werden jede Stunde Daten dort abgerufen und es sind sicher 50 States, die dann ein Update bekommen.Allerdings sehe ich die Daten dann normal auch in Grafana, wo seit vielen Stunden nichts mehr neues angezeigt wird.