NEWS
[gelöst] split is not a function
-
Hallo,
ich bin gerade dabei ein Script zu erstellen das mir den 3stündigen Trend für die Barometerdaten errechnet. Dazu habe lege ich alle 5 Minuten den Wert für den Unterschied zum vorherigen Wert in einem Datenpunkt als Liste ab-0.05,0.02,0.04,0.04,0,0.08,0.06,0,0.03,0.03,-0.02,-0.05,0.05,-0.05,0.06,0.02,-0.12,0.06,0.02,-0.04,0.07,0.04,-0.02,0.02,0.04,0.04,0.01,-0.02,0.06,0.04,-0.07,-0.11,0.11,-0.11,0,0.02,-0.02,0.05,0.02,0,0.03,0.01,0.04,-0.09,0.02,-0.04,0.03,0.06,0.1,-0.08,-0.04,0.05,0.03,0.01,0.02,0.01,0.05,0.03,0.1,0,0.01,-0.02,0.02,-0.01,-0.04,0.04,0.08,0.03,-0.05,-0.12,0.09,0.07Diese Liste lese ich mit ein und will sie mit split zum errechnen des Trends zerlegen
function barotrend() { var tmpelements = getState(DP_BAROTREND_DATA).val.split(','); for (let i = 2; i <= ELEMENTS - 1; i++) { b_tmp = parseFloat(tmpelements[i]); A_BAROTRENDTEMPDATA.push(b_tmp); b_akt_diff = b_akt_diff + b_tmp; } A_BAROTRENDTEMPDATA.push(b_diff); b_akt_diff = b_akt_diff + b_diff; b_akt_diff = Math.round((b_akt_diff / ELEMENTS) * 100 ) / 100; setState(DP_BAROTREND_DATA, A_BAROTRENDTEMPDATA); setState(DP_BAROTREND_ALT, b); setState(DP_BAROTREND_TREND, b_akt_diff); } schedule('*/'+CRON+' * * * *', function () { barotrend(); });Allerdings kommt spätestens nach dem zweiten Aufruf der Funktion barotrend() der Fehler
javascript.1 2019-11-05 19:49:00.018 error (2070) at Timer.processTimers (timers.js:223:10) javascript.1 2019-11-05 19:49:00.017 error (2070) at listOnTimeout (timers.js:263:5) javascript.1 2019-11-05 19:49:00.017 error (2070) at tryOnTimeout (timers.js:300:5) javascript.1 2019-11-05 19:49:00.017 error (2070) at ontimeout (timers.js:436:11) javascript.1 2019-11-05 19:49:00.017 error (2070) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7) javascript.1 2019-11-05 19:49:00.016 error (2070) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11 javascript.1 2019-11-05 19:49:00.016 error (2070) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10) javascript.1 2019-11-05 19:49:00.016 error (2070) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1279:34) javascript.1 2019-11-05 19:49:00.015 error (2070) at Object.<anonymous> (script.js.Test.Weathercalc:417:3) javascript.1 2019-11-05 19:49:00.015 error (2070) at barotrend (script.js.Test.Weathercalc:390:53) javascript.1 2019-11-05 19:49:00.014 error (2070) Error in callback: TypeError: getState(...).val.split is not a functionNode.js v10.17.0
NPM 6.11.3
js-controller: 2.0.39Kann mir einer sagen wo da der Fehler ist?
-
Hallo,
ich bin gerade dabei ein Script zu erstellen das mir den 3stündigen Trend für die Barometerdaten errechnet. Dazu habe lege ich alle 5 Minuten den Wert für den Unterschied zum vorherigen Wert in einem Datenpunkt als Liste ab-0.05,0.02,0.04,0.04,0,0.08,0.06,0,0.03,0.03,-0.02,-0.05,0.05,-0.05,0.06,0.02,-0.12,0.06,0.02,-0.04,0.07,0.04,-0.02,0.02,0.04,0.04,0.01,-0.02,0.06,0.04,-0.07,-0.11,0.11,-0.11,0,0.02,-0.02,0.05,0.02,0,0.03,0.01,0.04,-0.09,0.02,-0.04,0.03,0.06,0.1,-0.08,-0.04,0.05,0.03,0.01,0.02,0.01,0.05,0.03,0.1,0,0.01,-0.02,0.02,-0.01,-0.04,0.04,0.08,0.03,-0.05,-0.12,0.09,0.07Diese Liste lese ich mit ein und will sie mit split zum errechnen des Trends zerlegen
function barotrend() { var tmpelements = getState(DP_BAROTREND_DATA).val.split(','); for (let i = 2; i <= ELEMENTS - 1; i++) { b_tmp = parseFloat(tmpelements[i]); A_BAROTRENDTEMPDATA.push(b_tmp); b_akt_diff = b_akt_diff + b_tmp; } A_BAROTRENDTEMPDATA.push(b_diff); b_akt_diff = b_akt_diff + b_diff; b_akt_diff = Math.round((b_akt_diff / ELEMENTS) * 100 ) / 100; setState(DP_BAROTREND_DATA, A_BAROTRENDTEMPDATA); setState(DP_BAROTREND_ALT, b); setState(DP_BAROTREND_TREND, b_akt_diff); } schedule('*/'+CRON+' * * * *', function () { barotrend(); });Allerdings kommt spätestens nach dem zweiten Aufruf der Funktion barotrend() der Fehler
javascript.1 2019-11-05 19:49:00.018 error (2070) at Timer.processTimers (timers.js:223:10) javascript.1 2019-11-05 19:49:00.017 error (2070) at listOnTimeout (timers.js:263:5) javascript.1 2019-11-05 19:49:00.017 error (2070) at tryOnTimeout (timers.js:300:5) javascript.1 2019-11-05 19:49:00.017 error (2070) at ontimeout (timers.js:436:11) javascript.1 2019-11-05 19:49:00.017 error (2070) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7) javascript.1 2019-11-05 19:49:00.016 error (2070) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11 javascript.1 2019-11-05 19:49:00.016 error (2070) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10) javascript.1 2019-11-05 19:49:00.016 error (2070) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1279:34) javascript.1 2019-11-05 19:49:00.015 error (2070) at Object.<anonymous> (script.js.Test.Weathercalc:417:3) javascript.1 2019-11-05 19:49:00.015 error (2070) at barotrend (script.js.Test.Weathercalc:390:53) javascript.1 2019-11-05 19:49:00.014 error (2070) Error in callback: TypeError: getState(...).val.split is not a functionNode.js v10.17.0
NPM 6.11.3
js-controller: 2.0.39Kann mir einer sagen wo da der Fehler ist?
@CKMartens sagte:
wo da der Fehler ist?
Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.
-
@CKMartens sagte:
wo da der Fehler ist?
Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.
@paul53 sagte in split is not a function:
@CKMartens sagte:
wo da der Fehler ist?
Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.
Wie muss ich dann vorgehen @paul53 ?
-
@paul53 sagte in split is not a function:
@CKMartens sagte:
wo da der Fehler ist?
Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.
Wie muss ich dann vorgehen @paul53 ?
@CKMartens sagte:
Wie muss ich dann vorgehen
Ohne split() einlesen.
var tmpelements = getState(DP_BAROTREND_DATA).val; -
@CKMartens sagte:
Wie muss ich dann vorgehen
Ohne split() einlesen.
var tmpelements = getState(DP_BAROTREND_DATA).val; -
@CKMartens sagte:
Wie muss ich dann vorgehen
Ohne split() einlesen.
var tmpelements = getState(DP_BAROTREND_DATA).val;@paul53 sagte in split is not a function:
@CKMartens sagte:
Wie muss ich dann vorgehen
Ohne split() einlesen.
var tmpelements = getState(DP_BAROTREND_DATA).val;Hallo @paul53
leider habe ich jetzt das Problem das jetzt die Variable tmpelements als Elemente jedes Zeichen enthält. Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array. -
@paul53 sagte in split is not a function:
@CKMartens sagte:
Wie muss ich dann vorgehen
Ohne split() einlesen.
var tmpelements = getState(DP_BAROTREND_DATA).val;Hallo @paul53
leider habe ich jetzt das Problem das jetzt die Variable tmpelements als Elemente jedes Zeichen enthält. Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.@CKMartens sagte:
Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.
Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.
-
@CKMartens sagte:
Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.
Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.
@paul53 sagte in split is not a function:
@CKMartens sagte:
Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.
Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.
Hmmm, eigentlich greift nur noch ein andres Script lesend auf den DP zu. Danke für den Tip, ich mach mich da mal geziehlt auf die Suche
-
@paul53 sagte in split is not a function:
@CKMartens sagte:
Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.
Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.
Hmmm, eigentlich greift nur noch ein andres Script lesend auf den DP zu. Danke für den Tip, ich mach mich da mal geziehlt auf die Suche
@CKMartens sagte:
ich mach mich da mal geziehlt auf die Suche
Der Typ des Datenpunktes ist ein Array.Wenn in einem Skript ein String in einen Datenpunkt vom Typ "array" geschrieben wird, erfolgt eine Warnung "wrong type ...". Im Reiter "Log" findet man dazu den Skriptnamen und die Zeilennummer.
-
@CKMartens sagte:
ich mach mich da mal geziehlt auf die Suche
Der Typ des Datenpunktes ist ein Array.Wenn in einem Skript ein String in einen Datenpunkt vom Typ "array" geschrieben wird, erfolgt eine Warnung "wrong type ...". Im Reiter "Log" findet man dazu den Skriptnamen und die Zeilennummer.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden