NEWS
Gelöst: Fehler im Script
-
Hallo, ich suche mir gerade einen "heissen"
Mein Script siht wie folgt aus:const idLichtsensor = 'hm-rpc.2.00185BE98B3FCA.1.ILLUMINATION' //Wetterstation const idWind = 'hm-rpc.2.00185BE98B3FCA.1.WIND_SPEED'; //Wetterstation const idRegen = 'hm-rpc.2.00185BE98B3FCA.1.RAINING' //Wetterstation const idLux = '0_userdata.0.Garten.Tahoma.Markise.SWLux'; // Auslösewert Lux const idSWWind = '0_userdata.0.Garten.Tahoma.Markise.SWWind'; // Auslösewert Wind const id_RolloL = 'tahoma.0.devices.Markisse_Links.states.core:DeploymentState' const id_RolloR = 'tahoma.0.devices.Markisse_Rechts.states.core:DeploymentState' const id_Auto = "0_userdata.0.Garten.Tahoma.Markise.Auto" const id_Hand = "0_userdata.0.Garten.Tahoma.Markise.Hand" var timer = null; var text //EINFAHREN Bewölkung subscribe(idLichtsensor, function (dp) { if (dp.state.val < getState(idLux).val) { if (!timer) { timer = setTimeout(function () { timer = null; log('\u2601\ufe0f Lux ' + getState(idLichtsensor).val + " " + formatDate(dp.state.lc, 'hh:mm:ss' + " - " + "L " + getState(id_RolloL).val + " - R " + getState(id_RolloR).val)); if ((getState(id_RolloL).val == 100) && (getState(id_RolloR).val == 100) && (getState(id_Auto).val == true)) { setState(id_RolloL, 0); setTimeout(function() {setState(id_RolloR, 0);}, 20000); log("Markisse eingefahren") text = '\u2600\ufe0f *Bewölkung*\n Markise EINGEFAHREN' //createEventlog("Markise", text); WhatsAppBot([0], text); } }, 10000); } } else { // Sonnig. Falls timer läuft = stopp if (timer) { clearTimeout(timer); timer = null; } } });Ich bekomme im LOG folgenden Fehler:
16:42:39.664 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: ☁️ Lux 5282 16:42:29 - L 100 - R 100 16:42:39.664 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: Markisse eingefahren 16:42:39.666 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: exec is not available. Please enable "Enable Exec" option in instance settings 16:42:39.672 error javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: TypeError: Cannot read properties of undefined (reading 'includes') 16:42:39.673 error javascript.0 (3954) at Immediate.<anonymous> (script.js.HAUS.Markiese.EINFAHREN_Bewölkung:67:28) 16:42:39.888 error host.iobroker-pi Caught by controller[0]: at Immediate.<anonymous> (script.js.HAUS.Markiese.EINFAHREN_Bewölkung:67:28)Die Verzögerung habe ich eingebaut, weil Tahoma offenbar zwischen zwei Befehlen etwas Zeit braucht.
setTimeout(function() {setState(id_RolloR, 0);}, 20000);In der Java Instance ist Excec "enable"
Brauche mal einen Tip
Michael -
Hallo, ich suche mir gerade einen "heissen"
Mein Script siht wie folgt aus:const idLichtsensor = 'hm-rpc.2.00185BE98B3FCA.1.ILLUMINATION' //Wetterstation const idWind = 'hm-rpc.2.00185BE98B3FCA.1.WIND_SPEED'; //Wetterstation const idRegen = 'hm-rpc.2.00185BE98B3FCA.1.RAINING' //Wetterstation const idLux = '0_userdata.0.Garten.Tahoma.Markise.SWLux'; // Auslösewert Lux const idSWWind = '0_userdata.0.Garten.Tahoma.Markise.SWWind'; // Auslösewert Wind const id_RolloL = 'tahoma.0.devices.Markisse_Links.states.core:DeploymentState' const id_RolloR = 'tahoma.0.devices.Markisse_Rechts.states.core:DeploymentState' const id_Auto = "0_userdata.0.Garten.Tahoma.Markise.Auto" const id_Hand = "0_userdata.0.Garten.Tahoma.Markise.Hand" var timer = null; var text //EINFAHREN Bewölkung subscribe(idLichtsensor, function (dp) { if (dp.state.val < getState(idLux).val) { if (!timer) { timer = setTimeout(function () { timer = null; log('\u2601\ufe0f Lux ' + getState(idLichtsensor).val + " " + formatDate(dp.state.lc, 'hh:mm:ss' + " - " + "L " + getState(id_RolloL).val + " - R " + getState(id_RolloR).val)); if ((getState(id_RolloL).val == 100) && (getState(id_RolloR).val == 100) && (getState(id_Auto).val == true)) { setState(id_RolloL, 0); setTimeout(function() {setState(id_RolloR, 0);}, 20000); log("Markisse eingefahren") text = '\u2600\ufe0f *Bewölkung*\n Markise EINGEFAHREN' //createEventlog("Markise", text); WhatsAppBot([0], text); } }, 10000); } } else { // Sonnig. Falls timer läuft = stopp if (timer) { clearTimeout(timer); timer = null; } } });Ich bekomme im LOG folgenden Fehler:
16:42:39.664 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: ☁️ Lux 5282 16:42:29 - L 100 - R 100 16:42:39.664 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: Markisse eingefahren 16:42:39.666 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: exec is not available. Please enable "Enable Exec" option in instance settings 16:42:39.672 error javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: TypeError: Cannot read properties of undefined (reading 'includes') 16:42:39.673 error javascript.0 (3954) at Immediate.<anonymous> (script.js.HAUS.Markiese.EINFAHREN_Bewölkung:67:28) 16:42:39.888 error host.iobroker-pi Caught by controller[0]: at Immediate.<anonymous> (script.js.HAUS.Markiese.EINFAHREN_Bewölkung:67:28)Die Verzögerung habe ich eingebaut, weil Tahoma offenbar zwischen zwei Befehlen etwas Zeit braucht.
setTimeout(function() {setState(id_RolloR, 0);}, 20000);In der Java Instance ist Excec "enable"
Brauche mal einen Tip
Michael@michihorn
Was passiert in Zeile 26? -
Hallo, ich suche mir gerade einen "heissen"
Mein Script siht wie folgt aus:const idLichtsensor = 'hm-rpc.2.00185BE98B3FCA.1.ILLUMINATION' //Wetterstation const idWind = 'hm-rpc.2.00185BE98B3FCA.1.WIND_SPEED'; //Wetterstation const idRegen = 'hm-rpc.2.00185BE98B3FCA.1.RAINING' //Wetterstation const idLux = '0_userdata.0.Garten.Tahoma.Markise.SWLux'; // Auslösewert Lux const idSWWind = '0_userdata.0.Garten.Tahoma.Markise.SWWind'; // Auslösewert Wind const id_RolloL = 'tahoma.0.devices.Markisse_Links.states.core:DeploymentState' const id_RolloR = 'tahoma.0.devices.Markisse_Rechts.states.core:DeploymentState' const id_Auto = "0_userdata.0.Garten.Tahoma.Markise.Auto" const id_Hand = "0_userdata.0.Garten.Tahoma.Markise.Hand" var timer = null; var text //EINFAHREN Bewölkung subscribe(idLichtsensor, function (dp) { if (dp.state.val < getState(idLux).val) { if (!timer) { timer = setTimeout(function () { timer = null; log('\u2601\ufe0f Lux ' + getState(idLichtsensor).val + " " + formatDate(dp.state.lc, 'hh:mm:ss' + " - " + "L " + getState(id_RolloL).val + " - R " + getState(id_RolloR).val)); if ((getState(id_RolloL).val == 100) && (getState(id_RolloR).val == 100) && (getState(id_Auto).val == true)) { setState(id_RolloL, 0); setTimeout(function() {setState(id_RolloR, 0);}, 20000); log("Markisse eingefahren") text = '\u2600\ufe0f *Bewölkung*\n Markise EINGEFAHREN' //createEventlog("Markise", text); WhatsAppBot([0], text); } }, 10000); } } else { // Sonnig. Falls timer läuft = stopp if (timer) { clearTimeout(timer); timer = null; } } });Ich bekomme im LOG folgenden Fehler:
16:42:39.664 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: ☁️ Lux 5282 16:42:29 - L 100 - R 100 16:42:39.664 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: Markisse eingefahren 16:42:39.666 info javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: exec is not available. Please enable "Enable Exec" option in instance settings 16:42:39.672 error javascript.0 (3954) script.js.HAUS.Markiese.EINFAHREN_Bewölkung: TypeError: Cannot read properties of undefined (reading 'includes') 16:42:39.673 error javascript.0 (3954) at Immediate.<anonymous> (script.js.HAUS.Markiese.EINFAHREN_Bewölkung:67:28) 16:42:39.888 error host.iobroker-pi Caught by controller[0]: at Immediate.<anonymous> (script.js.HAUS.Markiese.EINFAHREN_Bewölkung:67:28)Die Verzögerung habe ich eingebaut, weil Tahoma offenbar zwischen zwei Befehlen etwas Zeit braucht.
setTimeout(function() {setState(id_RolloR, 0);}, 20000);In der Java Instance ist Excec "enable"
Brauche mal einen Tip
Michael@michihorn in Zeile 23 und 24 fehlt ein Semikolon am Ende, oder?
OK, da fehlen wohl noch ein paar mehr als nur in den zwei Zeilen.
-
@michihorn in Zeile 23 und 24 fehlt ein Semikolon am Ende, oder?
OK, da fehlen wohl noch ein paar mehr als nur in den zwei Zeilen.
@chrunchy sagte in Fehler im Script:
in Zeile 23 und 24 fehlt ein Semikolon am Ende, oder?
ist zwar empfohlen, aber bei javascript kein muss
nur bei ein paar bestimmten befehlen wird es benötigt
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#automatic_semicolon_insertion
also hier nicht wirklich ein fehler -
@michihorn
Was passiert in Zeile 26? -
@paul53 Dort wird ein Script von "https://www.kreyenborg.koeln/whatsapp-nachrichten-mit-iobroker-versenden/" verarbeitet, dass mehrere Whatsapp Adressaten anschreiben kann und auch seit langen funktioniert.
@michihorn
Die Fehlermeldungen werden durch dieses globale Skript verursacht, denn nur das enthält "exec" und "includes". -
@michihorn
Die Fehlermeldungen werden durch dieses globale Skript verursacht, denn nur das enthält "exec" und "includes".
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