NEWS
[gelöst] Einträge in "Protokolle"
-
Hallo,
bin relativ neu bei ioBroker. Nun hab ich ein Javascript geschrieben, welches verschiedene Werte vom Modbus verrechnet und die Resultate in eigenen Datenpunkten ablegt. Das Script scheint problemlos zu funktionieren.
Dabei werden verschiedene Einträge im Protokoll gemacht wie z.B.:script.js.Eigene_Scripte.Solar_P_all: setForeignState(id=0_userdata.0.Solar.Leistung.DirektvUndBatEntlUndBezug, state={"val":705,"ack":true,"ts":1710066058086,"q":0,"from":"system.adapter.javascript.0","lc":1710066058086,"c":"script.js.Eigene_Scripte.Solar_P_all"})
oder
script.js.Eigene_Scripte.Solar_P_all: getState(id=modbus.0.inputRegisters.31393_Batterieladung, timerId=undefined) => {"val":2134,"ack":true,"ts":1710066082758,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1710066082758}
Dabei sind das nur "info"-Einträge, also keine warnings oder errors. Aber:
- wieso werden die geloggt/protokolliert? (Ich hab ja kein console.log oder so gemacht)
- hab ich einen Einfluss darauf / kann ich das unterdrücken? (Der Log wird mit diesen Einträgen vollgemüllt)
- was bedeutet z.B.
timerId=undefined
? Ist das ein Fehler?
-
@delphinis sagte in Einträge in "Protokolle":
wieso werden die geloggt/protokolliert? (Ich hab ja kein console.log oder so gemacht)
wir kennen das Skript nicht
-
@homoran
Die Script-Anweisungen welche diese Zeilen "verursachen" sind z.B.:const BatLad = getState('modbus.0.inputRegisters.31393_Batterieladung').val;
und
setState('0_userdata.0.Solar.Leistung.DirektvUndBatEntlUndBezug', direktvUndBatEntlUndBezug, true);
hier mal das ganze Script:
if (!existsState('0_userdata.0.Solar.Leistung.Direktverbrauch')) { createState('0_userdata.0.Solar.Leistung.Direktverbrauch', {type: 'number', read: true, write: true}); } if (!existsState('0_userdata.0.Solar.Leistung.PVin_Netto')) { createState('0_userdata.0.Solar.Leistung.PVin_Netto', {type: 'number', read: true, write: true}); } if (!existsState('0_userdata.0.Solar.Leistung.NetzinUndBatLad')) { createState('0_userdata.0.Solar.Leistung.NetzinUndBatLad', {type: 'number', read: true, write: true}); } if (!existsState('0_userdata.0.Solar.Leistung.DirektvUndBatEntl')) { createState('0_userdata.0.Solar.Leistung.DirektvUndBatEntl', {type: 'number', read: true, write: true}); } if (!existsState('0_userdata.0.Solar.Leistung.DirektvUndBatEntlUndBezug')) { createState('0_userdata.0.Solar.Leistung.DirektvUndBatEntlUndBezug', {type: 'number', read: true, write: true}); } if (!existsState('0_userdata.0.Solar.Leistung.ma_verbrauch')) { createState('0_userdata.0.Solar.Leistung.ma_verbrauch', {type: 'number', read: true, write: true}); } var working = false; const trg = ['modbus.0.inputRegisters.30775_Messwert_Leistung', // parameter auf die getriggert werden 'modbus.0.inputRegisters.30865_Leistung_Bezug', 'modbus.0.inputRegisters.30867_Messwert_Leistung_Einspeisung', 'modbus.0.inputRegisters.31393_Batterieladung', 'modbus.0.inputRegisters.31395_Batterieentladung']; var ma_array =[]; // On change on(trg, async (data) => { if (working == false) { working = true; await wait(800); const WR = getState('modbus.0.inputRegisters.30775_Messwert_Leistung').val; const Bezug = getState('modbus.0.inputRegisters.30865_Leistung_Bezug').val; const Einspeisung = getState('modbus.0.inputRegisters.30867_Messwert_Leistung_Einspeisung').val; const BatLad = getState('modbus.0.inputRegisters.31393_Batterieladung').val; const BatEntl = getState('modbus.0.inputRegisters.31395_Batterieentladung').val; let Direktverbrauch = (WR - Bezug - Einspeisung - BatEntl); let pvin_netto = (WR + BatLad - BatEntl); let netzinUndBatLad = (Einspeisung + BatLad); let direktvUndBatEntl = (Direktverbrauch + BatEntl); // Orange let direktvUndBatEntlUndBezug = (Direktverbrauch + BatEntl + Bezug); // Rot // Moving Average let ma_verbrauch = Math.round(Moving_Average_real(ma_array, 11, direktvUndBatEntlUndBezug)); setState('0_userdata.0.Solar.Leistung.ma_verbrauch', ma_verbrauch, true); setState('0_userdata.0.Solar.Leistung.Direktverbrauch', Direktverbrauch, true); setState('0_userdata.0.Solar.Leistung.PVin_Netto', pvin_netto, true); setState('0_userdata.0.Solar.Leistung.NetzinUndBatLad', netzinUndBatLad, true); setState('0_userdata.0.Solar.Leistung.DirektvUndBatEntl', direktvUndBatEntl, true); setState('0_userdata.0.Solar.Leistung.DirektvUndBatEntlUndBezug', direktvUndBatEntlUndBezug, true); Einspeisung); BatEntl=" + BatEntl + ", Bezug=" + Bezug); working = false; } }); function Moving_Average_real(_array, size, lastVal) { var an_array =[]; an_array = _array; var sum = 0; var result; var removed = 0; while (an_array.length >= size) removed = an_array.shift(); an_array.push(lastVal); sum = 0; an_array.forEach((element) => sum += element); result = sum/(an_array.length); //console.log("Add: " + lastVal + " Rem:" + removed + " Sum:" + sum + " Size:" + an_array.length + " Res:" + result); return result; }
-
@delphinis sagte: verschiedene Einträge im Protokoll
Ist rechts oben (Schraubenschlüssel) "Ausführliche Protokollausgaben" ausgewählt?
-
@delphinis sagte in Einträge in "Protokolle":
wieso werden die geloggt/protokolliert? (Ich hab ja kein console.log oder so gemacht)
Das sieht aus wie die "verbose"-Ausgaben, um detaillierte Infos von den intern verwendeten Funktionen zu erhalten.
Den Haken wegnehmen und Script speichern -
@paul53
@haus-automatisierung
Genau, das wars. Danke