NEWS
Skript will sich einfach nicht ausführen lassen
-
Hallo, bin neu hier und versuche mich mit meinem Raspi ein bisschen in iobroker einzuarbeiten.
iobroker läuft soweit super.
Habe nun ein Skript im Javascript-Adapter angelegt mit folgendem Inhalt
on('scriptEnabled.global.Funksteckdose1.status', function (obj) { if (!obj.state.ack && obj.state.val) { exec('/home/pi/raspberry-remote/send 11111 2 1') } });
Das Feld "Status" hab ich zuvor unter dem Reiter Objekte angelegt.
Wenn ich jetzt ein bool.button im VIS Editor erstelle und die Object ID auf scriptEnabled.global.Funksteckdose1.status setze und es teste, tut sich nichts.
Was mach ich falsch?
Ziel ist es per Button im VIS eine Funksteckdose anzuschalten
Viele Grüße aus Hessen
scooop
-
Füg mal einen Debug-Log ein, um zu sehen wo es hängt:
on('scriptEnabled.global.Funksteckdose1.status', function (obj) { log("A: ack = " + obj.state.ack + "; val = " + obj.state.val); if (!obj.state.ack && obj.state.val) { log("B"); exec('/home/pi/raspberry-remote/send 11111 2 1'); log("C"); } });
-
Hallo, schnell von unterwegs:
Du solltest Objekte nicht unter scriptEnabled anlegen sondern direkt unter zB 'javascript.0'.
Pix
-
Hallo,
cool, danke für die schnelle Hilfe. Werde mal beide Tipps angehen
gruß scooop
-
Suche jetzt seit einer dreiviertel Stunde herauszufinden, wie man skripte verschiebt (z.B. javascript.0.scriptEnabled.global.skript1 nach javascript.0.skript1).
Und wie tue ich das genrell und ohne Abhängigkeiten zu verletzen?
gruß scooop
EDIT: und wie lege ich in zukunft die skripte immer in javascript.0 an und nicht mehr im enabled Ordner, wo sie automatisch hinterlegt werden?
-
Suche jetzt seit einer dreiviertel Stunde herauszufinden, wie man skripte verschiebt (z.B. javascript.0.scriptEnabled.global.skript1 nach javascript.0.skript1).
Und wie tue ich das genrell und ohne Abhängigkeiten zu verletzen?
gruß scooop
EDIT: und wie lege ich in zukunft die skripte immer in javascript.0 an und nicht mehr im enabled Ordner, wo sie automatisch hinterlegt werden? `
scripte sind immer in enabled ordner, wen ich es richtig verstehe war de kommentar "objecte" sollten im javascript.o und nicht "enabled" erstellt werden
Greetz,
Dutch
-
Korrekt. Nicht die Skripte verschieben, sondern im javascript.0. die Objekte anlegen. Wenn du die Objekte per Skript mit createState() anlegst, wird das automatisch so gemacht.
Pix
-
Suche jetzt seit einer dreiviertel Stunde herauszufinden, wie man skripte verschiebt (z.B. javascript.0.scriptEnabled.global.skript1 nach javascript.0.skript1). `
javascript.0.scriptEnabled.global.skript1 ist der State, der ioBroker sagt, ob "GLOBAL.skript1" aktiv ist oder nicht. Da brauchst du nichts machen.
Es geht um deinen überwachten State, der nicht unter scriptEnabled, sondern unter javascript.0 abgelegt sein sollte.
Eigentlich solltest du scriptEnabled auch gar nicht sehen, außer du hast den Expertenmodus an.
-
Danke für die vielen Antworten, hat jetzt geklappt Habe jetzt ne mobile UI über die ich per Button meine Funksteckdose an und ausschalten kann.
gruß scooop