NEWS
Gelöst! Logdatenerstellung Script Fehler
-
Hallo in die Runde,
bin in den letzten 2 Wochen von Raspi auf Cubox umgestiegen was alles super geklappt hat.
Bis auf ein Script und dessen Verwurzelungen in anderen Scripten.
Von Bluefox wurde mal ein Script ins Forum gestellt wo man seine eigene Logdaten erstellen kann.
createState('Logdatenerstellung.Log', ''); function getTimeAsString(d) { var date = d || new Date(); return date.getFullYear() + '.' + ('0' + (date.getMonth() + 1)).slice(-2) + '.' + ('0' + date.getDate()).slice(-2) + ' --- '+ ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2) + ':' + ('0' + date.getSeconds()).slice(-2); } function toLog(text, addTimestamp) { console.log(text); var lines = getState('Logdatenerstellung.Log').val; lines = lines.split(" "); if (addTimestamp) { lines.push(getTimeAsString() + ' --- ' + text); } else { lines.push(text); } if (lines.length > 33) lines.splice(0,1); setState('Logdatenerstellung.Log', lines.join(" "), true); }
Das tolog benutze ich jetzt in mehreren Scripten z.B. in diesem
on({ id: "hm-rpc.0.LEQ1174762.1.STATE"/*Keller Fensterkontakt Hinten:1.STATE*/, change: "ne", val: true, logic: "and" }, function (obj) { Absenktemperatur(); }); function Absenktemperatur() { toLog('Keller Absenktemperatur eingestellt...Raumfenster wurde geöffnet', true); setState("hm-rpc.0.LEQ0998154.2.MANU_MODE"/*Keller Wandthermostat:2.MANU_MODE*/, 5); setState("hm-rpc.0.MEQ0800941.4.MANU_MODE"/*Keller Heizkörperthermostat:4.MANU_MODE*/, 5); } on({ id: "hm-rpc.0.LEQ1174762.1.STATE"/*Keller Fensterkontakt Hinten:1.STATE*/, change: "ne", val: false, logic: "and" }, function (obj) { Modus_Hand_10(); }); function Modus_Hand_10() { toLog('Keller Raumtemperatur eingestellt...Raumfenster wurde geschlossen', true); setState("hm-rpc.0.LEQ0998154.2.MANU_MODE"/*Keller Wandthermostat:2.MANU_MODE*/, 10); setState("hm-rpc.0.MEQ0800941.4.MANU_MODE"/*Keller Heizkörperthermostat:4.MANU_MODE*/, 10); }
Öffne ich jetzt das Fenster kommt folgende Fehlermeldung
TypeError: 2016-07-03 14:39:44.233 error at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:215:17) TypeError: 2016-07-03 14:39:44.233 error at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:537:17) TypeError: 2016-07-03 14:39:44.233 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2644:28) TypeError: 2016-07-03 14:39:44.233 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2644:28) TypeError: 2016-07-03 14:39:44.233 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2650:45) TypeError: 2016-07-03 14:39:44.233 error at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:541:48 TypeError: 2016-07-03 14:39:44.233 error at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1207:48) TypeError: 2016-07-03 14:39:44.233 error at Object. (script.js.Keller.Absenktemperatur:376:5) TypeError: 2016-07-03 14:39:44.233 error at Absenktemperatur (script.js.Keller.Absenktemperatur:381:5) TypeError: 2016-07-03 14:39:44.233 error at toLog (script.js.Keller.Absenktemperatur:201:18) TypeError: 2016-07-03 14:39:44.233 error Cannot read property 'split' of undefined message 2016-07-03 14:39:44.220 error hm-rpc.0.LEQ1174762.1.STATE [object Object] Cannot read property 'split' of undefined
Kann mir da jemand weiterhelfen?
Sebastian
-
Der Fehler muss in einem anderen Skript liegen, denn in den dargestellten Skripten wird 'split' nur auf den Log-Inhalt nicht jedoch auf den Datenpunkt "hm-rpc.0.LEQ1174762.1.STATE" angewendet.
-
Hallo paul53,
das toLog ist aber nur in diesem Script aktiv , in den anderen ist es auskommentiert.
Kommentiere ich es im Keller Script auch aus funktioniert alles tadellos.
Auch das Script für die Logdatenerstellung läuft vor sich hin, solange kein anderes Script mit toLog beschrieben ist und es zur Auslösung kommt wie zum z.B. durch den Datenpunkt Kellerfenster.
Wenn ich mir die Fehlermeldungen anschaue kommt es mir so vor das vielleicht irgendein node-module vielleicht nicht richtig installiert wurde was beim Raspi damals in Ordnung war.
Sebastian
-
…das toLog ist aber nur in diesem Script aktiv , in den anderen ist es auskommentiert.
Kommentiere ich es im Keller Script auch aus funktioniert alles tadellos. `
Dann ist vielleicht früher etwas (ein Objekt) in das Log geraten ? Es darf nur aus mehreren Textzeilen bestehen. -
Aber die Scripte wurden original vom Raspi übernommen wo sie alle funktionierten.
Das ist ja das merkwürdige an der Geschichte…wenn Änderungen stattgefunden hätten wüsste ich wo ich suchen muß.
Der Raspi lief noch mit node 0.10.22 Raspbian Wheezy und die Cubox mit dem neusten was gibt..siehe Signatur.
Nur dort sind Unterschiede.
Sebastian
-
Die Fehlermeldung ist doch eindeutig:
Cannot read property 'split' of undefined
Alles andere sind Folgefehler.
Schreibe mal die Log-Variable neu, indem Du folgende Zeile an Dein Script anhängst, damit sie beim Skriptstart ausgeführt wird:
setState('Logdatenerstellung.Log', "Logzeile 1 "), true);
Anschließend die Zeile auskommentieren oder löschen.
-
Hallo paul53,
ich habe das Script gelöscht , Logdatenerstellung.Log unter Objekte gelöscht und alles neu eingespielt.
Jetzt funktioniert wieder alles wie gewohnt…Danke für deine Hilfe
Sebastian