NEWS
Zuviel fuer JS ?
-
jetzt sieht es anders aus:
[spoiler] Log Log-Größe: 11.68 MB Zeit Nachricht javascript-0 2016-02-02 23:09:03 info Stop script script.js.Betriebsstundenzaehler_Extended TypeError: 2016-02-02 23:09:03 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80) TypeError: 2016-02-02 23:09:03 error at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17) TypeError: 2016-02-02 23:09:03 error at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2326:17) TypeError: 2016-02-02 23:09:03 error at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48 TypeError: 2016-02-02 23:09:03 error at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48) TypeError: 2016-02-02 23:09:03 error at Object. (script.js.Betriebsstundenzaehler_Extended:514:81) TypeError: 2016-02-02 23:09:03 error at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:287:39) TypeError: 2016-02-02 23:09:03 error Cannot read property 'common' of null message 2016-02-02 23:09:03 error system.adapter.sayit.0.uptime [object Object] Cannot read property 'common' of null javascript-0 2016-02-02 23:09:03 warn Object "" does not exist TypeError: 2016-02-02 23:09:03 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80) TypeError: 2016-02-02 23:09:03 error at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17) TypeError: 2016-02-02 23:09:03 error at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2326:17) TypeError: 2016-02-02 23:09:03 error at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48 TypeError: 2016-02-02 23:09:03 error at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48) TypeError: 2016-02-02 23:09:03 error at Object. (script.js.Betriebsstundenzaehler_Extended:514:81) TypeError: 2016-02-02 23:09:03 error at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:287:39) TypeError: 2016-02-02 23:09:03 error Cannot read property 'common' of null message 2016-02-02 23:09:03 error system.adapter.sayit.0.memHeapUsed [object Object] Cannot read property 'common' of null javascript-0 2016-02-02 23:09:03 warn Object "" does not exist TypeError: 2016-02-02 23:09:03 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80) TypeError: 2016-02-02 23:09:03 error at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17) TypeError: 2016-02-02 23:09:03 error at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2326:17) TypeError: 2016-02-02 23:09:03 error at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48 TypeError: 2016-02-02 23:09:03 error at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48) TypeError: 2016-02-02 23:09:03 error at Object. (script.js.Betriebsstundenzaehler_Extended:514:81) TypeError: 2016-02-02 23:09:03 error at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:287:39) TypeError: 2016-02-02 23:09:03 error Cannot read property 'common' of null message 2016-02-02 23:09:03 error system.adapter.sayit.0.memHeapTotal [object Object] Cannot read property 'common' of null javascript-0 2016-02-02 23:09:03 warn Object "" does not exist TypeError: 2016-02-02 23:09:03 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80) TypeError: 2016-02-02 23:09:03 error at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17) TypeError: 2016-02-02 23:09:03 error at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2345:28) TypeError: 2016-02-02 23:09:03 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2326:17) TypeError: 2016-02-02 23:09:03 error at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48 TypeError: 2016-02-02 23:09:03 error at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48) TypeError: 2016-02-02 23:09:03 error at Object. (script.js.Betriebsstundenzaehler_Extended:514:81) TypeError: 2016-02-02 23:09:03 error at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:287:39) TypeError: 2016-02-02 23:09:03 error Cannot read property 'common' of null message 2016-02-02 23:09:03 error system.adapter.sayit.0.memRss [object Object] Cannot read property 'common' of null javascript-0 2016-02-02 23:09:03 warn Object "" does not exis [/spoiler]
-
das log sagt ja, dass alle möglichen Adapter Fehler melden.
aber du hast ja wieder mal recht. GetObjekt hatte ich noch nicht umgestellt auf die neue Programmstuktur.
Ich hätte mit solchen Auswirkungen nicht gerechnet. Das scheint es gewesen zu sein.
puuuuuuuhhh, das war heftig
Danke dir 1000x
Looxer
-
Hi,
leider habe ich das Problem immer noch.
Und ich verstehe überhaupt nicht warum das so passiert.
Ich habe das Stück Coding durch BF Hinweis isoliert und es ist jederzeit nachvollziebar.
Obwohl in dem Coding keine Schleife eingebaut ist fängt JS an zu loopen sobald das Programm aufgerufen wird
es ist so als wenn die on({id: sequenzen immer wieder aufgerufen werden. Anders ist das für mich nicht zu erklären.
Hat jemand eine Erklärung bzw. eine Lösung wie ich das Problem umgehen kann ?
vG Looxer
resultat im Log:
!
javascript-0 2016-02-03 10:55:31 info Stop script script.js.ZZZTestGetObjekt javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found !
und hier ist das Stück Coding:
!
var SpaceChk = new RegExp(/\s/); var Gruppen = []; ! Gruppen[0] = ['hm-rpc.0.JEQ003xxxx.1.STATE' ]; Gruppen[1] = ['hm-rpc.0.JEQ0199xxx.1.LEVEL' ]; Gruppen[2] = ['hm-rpc.0.IEQ037xxxx.1.STATE' ]; Gruppen[3] = ['hm-rpc.0.JEQ003xxxx.1.STATE' ]; Gruppen[4] = ['hm-rpc.0.JEQ029xxxx.1.STATE' ]; Gruppen[5] = ['hm-rpc.0.KEQ017xxxx.1.STATE' ]; Gruppen[6] = ['hm-rpc.0.JEQ005xxxx.1.STATE' ]; Gruppen[7] = ['modbus.0.holdingRegisters.26_FA1_STATE' ]; Gruppen[8] = ['' ]; Gruppen[9] = ['' ]; Gruppen[10] = ['' ]; Gruppen[11] = ['' ]; Gruppen[12] = ['' ]; Gruppen[13] = ['' ]; Gruppen[14] = ['' ]; Gruppen[15] = ['' ]; Gruppen[16] = ['' ]; Gruppen[17] = ['' ]; Gruppen[18] = ['' ]; Gruppen[18] = ['' ]; Gruppen[19] = ['' ]; Gruppen[20] = ['' ]; //------------------------------------------------------------------------------- // var objGruppe = "hm-rpc.0.IEQ0379466.2.STATE"; var objGruppe = Gruppen[1][0]; log("check gestartet "+Gruppen[1][0] ,"info"); if(ObjectExists(objGruppe)) { log("object existiert","info") } ! //----------------------------------------------------------------------------------------------------- // Funktion zur Ueberpruefung ob die angegebenen Geraete exisiteren //----------------------------------------------------------------------------------------------------- function ObjectExists(objGruppe) { var back = false; ! if (SpaceChk.test(objGruppe)) { // objIDGruppe darf kein space enthalten // ist ein Geraet ueberhaupt zugeordnet ? // log("Geraet hat kein assignment - Gruppe " + objGruppe, "info"); return back; } // endif IDGruppe hat kein assignment ! if (getState(objGruppe)) { // Existiert das Geraet ? back = true; } else { log("Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe " + objGruppe, "info"); } // endif check on Geraet exists ! return back; } // ende Funktion ! function GeraetUpdate(nummer) { var objGruppe = Gruppen[nummer[0]]; if(ObjectExists(objGruppe)) { log("object existiert","info") } } // ende Funktion ! on({id: Gruppen[0][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 0 ); } }); // ende on id on({id: Gruppen[1][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 1 ); } }); // ende on id on({id: Gruppen[2][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 2 ); } }); // ende on id on({id: Gruppen[3][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 3 ); } }); // ende on id on({id: Gruppen[4][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 4 ); } }); // ende on id on({id: Gruppen[5][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 5 ); } }); // ende on id on({id: Gruppen[6][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 6 ); } }); // ende on id on({id: Gruppen[7][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 7 ); } }); // ende on id on({id: Gruppen[8][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 8 ); } }); // ende on id on({id: Gruppen[9][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 9 ); } }); // ende on id on({id: Gruppen[10][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(10); } }); // ende on id on({id: Gruppen[11][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(11); } }); // ende on id on({id: Gruppen[12][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(12); } }); // ende on id on({id: Gruppen[13][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(13); } }); // ende on id on({id: Gruppen[14][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(14); } }); // ende on id on({id: Gruppen[15][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(15); } }); // ende on id on({id: Gruppen[16][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(16); } }); // ende on id on({id: Gruppen[17][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(17); } }); // ende on id on({id: Gruppen[18][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(18); } }); // ende on id on({id: Gruppen[19][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(19); } }); // ende on id on({id: Gruppen[20][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(20); } }); // ende on id !
-
Hallo Looxer,
probier mal statt
if (getState(objGruppe)) { // Existiert das Geraet ?
if (getState(objGruppe).val) { // Existiert das Geraet ?
Gruß
Pix
-
Hier ist auch noch ein Fehler:````
function GeraetUpdate(nummer) {
var objGruppe = Gruppen[nummer[0]];****EDIT: ist natürlich quatsch, jetzt sehe ich es auch :oops: Oops**** Und in den Subscriptions verwendest du obj.state.ack. in den If-Abfragen. Allerdings liefert das Callback der Subscription keinen "state", wenn man nach [https://github.com/iobroker/ioBroker.javascript#on–-subscribe-on-changes-or-updates-of-some-state](https://github.com/iobroker/ioBroker.javascript#on–-subscribe-on-changes-or-updates-of-some-state) geht, sondern nur oldState und newState. Gruß Pix
-
Hi Pix,
das bringt leider keine Aenderung. Anscheinend gibt es Problem mit on id, weil ja quasi ein permanenter loop das log vollmüllt und wie BF auch schon sagte scheint es ein Problem bei GetState/GetObject zu geben, wenn das Geraet nicht exisitiert.
Könntest du bei dir mal ckecken ob esbei dir auch loooed ? Wenn er anfängt zu loopen, dann deaktiviere ich das script und alles ist gut. Sollte also kein problem geben.
ich bin mir übrigens auch gar nicht sicher, ob ich nicht zwei Probleme habe. Das Loop Problem und das getObject Problem naemlich.
vG Looxer
-
zu ack.
das stück code habe ich von BF und eingefügt weil on id immer zweimal ausgefürt wurde.
einmal für false und einmal für true. Im script Betriebsstundenzähler funktioniert da auch einwandfrei.
vG Looxer
-
@pix:Und in den Subscriptions verwendest du obj.state.ack. in den If-Abfragen. Allerdings liefert das Callback der Subscription keinen "state", wenn man nach dieser Doku geht, sondern nur oldState und newState. `
obj.state.ack ist zwar nicht dokumentiert, funktioniert aber: Es entspricht obj.newState.ack. -
ich habe einen Zusammenhang gefunden, der aber noch nicht die Reaktion erklärt.
Das loopen fängt an mit der neunten 9. Subscription, die einen initialen Wert enthaelt nämlich zwei Hochkomma.
also so: Gruppen[8] = ['' ];
Ersetze ich die z.B. durch 'initial' dann gibt es keinen Loop mehr und auch der object check funktioniert.
es sind also die initialen Werte die hier JS bis zum Absturz bringen
Kann das jemand erklären ?
-
@pix:Und in den Subscriptions verwendest du obj.state.ack. in den If-Abfragen. Allerdings liefert das Callback der Subscription keinen "state", wenn man nach dieser Doku geht, sondern nur oldState und newState.
obj.state.ack ist zwar nicht dokumentiert, funktioniert aber: Es entspricht obj.newState.ack.
Ja ich habe entschieden state zu verwenden, statt newState. -
ich habe einen Zusammenhang gefunden, der aber noch nicht die Reaktion erklärt.
Das loopen fängt an mit der neunten 9. Subscription, die einen initialen Wert enthaelt nämlich zwei Hochkomma.
also so: Gruppen[8] = ['' ];
Ersetze ich die z.B. durch 'initial' dann gibt es keinen Loop mehr und auch der object check funktioniert.
es sind also die initialen Werte die hier JS bis zum Absturz bringen
Kann das jemand erklären ? `
on({id: '', valNe: 1000 }, function(obj) { log(obj.id); });
passt einfach zu jeder Zustandsänderung. Ich habe jetzt gesperrt, dass man ID:'' eingeben kann.
-
aaah- jetzt hab ichs verstanden. oh mann. Danke dir