NEWS
Adapter mit Script ein/ausschalten
-
Habe das gerade mal nachgestellt.
Bei mir funktioniert es genau so.
var obj = getObject("system.adapter.zwave.0"); obj.common.enabled = false; // Adapter ausschalten setObject("system.adapter.zwave.0", obj); //Programm Ende
Ergebnis im Log:
! ````
host.rasp31 2017-01-08 16:45:12.070 info instance system.adapter.zwave.0 terminated with code null ()
host.rasp31 2017-01-08 16:45:12.069 warn instance system.adapter.zwave.0 terminated due to SIGSEGV
zwave.0 2017-01-08 16:45:12.054 info terminating
host.rasp31 2017-01-08 16:45:10.023 info stopInstance system.adapter.zwave.0 killing pid 12541
host.rasp31 2017-01-08 16:45:10.023 info stopInstance system.adapter.zwave.0
host.rasp31 2017-01-08 16:45:10.019 info "system.adapter.zwave.0" disabled
host.rasp31 2017-01-08 16:45:10.011 info object change system.adapter.zwave.0Und mit true lies sich der Adapter auch wieder einschalten. Log: >! ```` host.rasp31 2017-01-08 16:45:35.230 info instance system.adapter.zwave.0 started with pid 8048 host.rasp31 2017-01-08 16:45:35.201 info "system.adapter.zwave.0" enabled host.rasp31 2017-01-08 16:45:35.200 info object change system.adapter.zwave.0
Was steht denn bei Dir im Log?
-
Hallo Paulchen,
meiner Meinung nach ist da gar nichts falsch. Ich habe das script bei mir getestet und es funktioniert.
Demnach liegt der Fehler Wahrscheinlich am Auslöser.
Das ganze Script zu sehen oder eine detalierte Beschreibung wie du den fetzen code verwendest hilft anderen dir zu helfen.
Gruß
Jey Cee
-
Das steht im Log.
javascript.0 2017-01-08 16:57:04.292 info script.js.Adapter_RPI_Ausschalten: registered 0 subscriptions and 0 schedules
javascript.0 2017-01-08 16:57:04.291 error Function "setObject" is not allowed. Use adapter settings to allow it.
javascript.0 2017-01-08 16:57:04.286 info Start javascript script.js.Adapter_RPI_Ausschalten
Sieht wohl so aus, dass nicht alle Adapter das mit sich machen lassen.
Edit:
Hab es jetzt mal bei 4 Adaptern ausprobiert. Bei mir ist es immer "not allowed".
Hab nichts gefunden wo ich das ändern könnte.
-
@Jey Cee:Hallo Paulchen,
meiner Meinung nach ist da gar nichts falsch. Ich habe das script bei mir getestet und es funktioniert.
Demnach liegt der Fehler Wahrscheinlich am Auslöser.
Das ganze Script zu sehen oder eine detalierte Beschreibung wie du den fetzen code verwendest hilft anderen dir zu helfen.
Gruß
Jey Cee `
Das ist das ganze Script.
Wie schon geschrieben und aus dem Log ersichtlich lassen es nicht alle
Adapter zu, zumindest bei mir.
Wenn noch jemand Helfen kann, gerne, bis dahin Danke für eure Hilfe.
-
Schau mal in die Einstellungen vom Javascript Adapter. Da gibt es eine Option für setObject.
Sollte angehackt sein.
-
Aaahhhh,
was so ein kleiner Hacken alles ausmachen kann.
Jetzt funktioniert es auch bei mir.
Vielen Dank.
-
Das Script hat gleich nach dem Starten seine Arbeit ja getan.
Es ist aber ja immer noch am laufen.
Kann man das Script sich selbstständig stoppen lassen?
Denn wenn ich ein Script habe um den Adapter wieder zu starten,
müsste ich ja erst wieder per Hand das Stop-Script anhalten.
-
Das Script hat gleich nach dem Starten seine Arbeit ja getan.
Es ist aber ja immer noch am laufen.
Kann man das Script sich selbstständig stoppen lassen?
Denn wenn ich ein Script habe um den Adapter wieder zu starten,
müsste ich ja erst wieder per Hand das Stop-Script anhalten. `
du kannst doch auch scripte ein/ausschalten per variablen aenderung ?
Die stehen in javascript.0 ==> ordner ==> script und dan value true oder falsch
oder versteh ich dich jetzt falsch ?
-
Ja, hab es jetzt mal so gelöst:
` > // Holle die Werte des ganzen Adapters als Variable objvar obj = getObject("system.adapter.rpi.0"/rpi/);
//Setze den Wert Enabled im Adapter auf false
obj.common.enabled = false;
//Schreibe den geänderten Wert von Enabled zurück in den Adapter
setObject("system.adapter.rpi.0"/rpi/, obj);
//Schalte das Script nach 5 Sekunden wieder aus
setStateDelayed("javascript.0.scriptEnabled.Adapter_RPI_Ausschalten"/scriptEnabled.Adapter_RPI_Ausschalten/, false, 5000);
//Programm Ende `
Das funktioniert schon mal.Könnte das auch funktionieren?
` > //Virtueller Taster an der CCU startet die Funktionon({id: "hm-rpc.0.BidCoS-RF.10.PRESS_SHORT"}, function (obj) {
// Holle die Werte des ganzen Adapters als Variable obj1
var obj1 = getObject("system.adapter.rpi.0");
//Wenn der Wert von Enabled auf false steht Setze ihn auf true
if (obj1.common.enabled === false) {
setObject("system.adapter.rpi.0.Enabled", true);
}
//Wenn der Wert von Enabled auf true steht Setze ihn auf false
if (obj1.common.enabled === true) {
setObject("system.adapter.rpi.0.Enabled", false);
}
});
//Programm Ende `
Oder ist das Script Schrott? -
Mal schnell drüber gelesen aber sieht ok aus…
Wegen der Script Geschichte, ist doch eigentlich egal ob es an steht?
Er lauscht ja nur und wenn kein event von Button 10 kommt passiert auch nichts.
Sent from my iPhone using Tapatalk
-
Das script sieht gut aus.
Nur was mir noch immer nicht klar ist, wann soll den der Adapter deaktiviert werden? Also was ist das Kriterium zum deaktivieren und was zum aktivieren?
Möglicherweise gibt es noch einen anderen Lösungsweg.
Gesendet von meinem m8 mit Tapatalk
-
@Jey Cee:Das script sieht gut aus.
Nur was mir noch immer nicht klar ist, wann soll den der Adapter deaktiviert werden? Also was ist das Kriterium zum deaktivieren und was zum aktivieren?
Möglicherweise gibt es noch einen anderen Lösungsweg.
Gesendet von meinem m8 mit Tapatalk `
Ich hab einen Adapter der immer mal wieder hängt.
Wenn man ihn dann anstößt läuft er wieder für ne ganze Weile (1-3 Tage)
Eine Kontrolanzeige zeigt mir seinen Status an.
-
Und die kontrolanzeige läuft außerhalb von iobroker und/oder nicht in javascript?
Sonst würde ich direkt die Anzeige als trigger nutzen.
Gesendet von meinem m8 mit Tapatalk