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 -
@michihorn
Was passiert in Zeile 26? -
@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 -
@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". -
@paul53 Okay Danke, ich werde das mal "rausnehmen"
Edit: Ja das war es. Danke!