Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Adapter mit Script ein/ausschalten

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter mit Script ein/ausschalten

    This topic has been deleted. Only users with topic management privileges can see it.
    • Paulchen67
      Paulchen67 last edited by

      Hallo Zusammen,

      ich würde gerne mit einem Script einen Adapter ein und ausschalten können.

      Hab hier im Forum schon etwas ähnliches gefunden und für mich umgestrickt.

      var obj = getObject("system.adapter.rpi.0");

      obj.common.enabled = false; // Adapter ausschalten

      setObject("system.adapter.rpi.0", obj);

      //Programm Ende

      Funktioniert aber nicht.

      Was ist daran falsch?

      1 Reply Last reply Reply Quote 0
      • ruhr70
        ruhr70 last edited by

        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.0

        
        Und 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?

        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          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

          1 Reply Last reply Reply Quote 0
          • Paulchen67
            Paulchen67 last edited by

            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.

            1 Reply Last reply Reply Quote 0
            • Paulchen67
              Paulchen67 last edited by

              @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.

              1 Reply Last reply Reply Quote 0
              • Jey Cee
                Jey Cee Developer last edited by

                Schau mal in die Einstellungen vom Javascript Adapter. Da gibt es eine Option für setObject.

                Sollte angehackt sein.

                282_setobject.png

                1 Reply Last reply Reply Quote 0
                • Paulchen67
                  Paulchen67 last edited by

                  Aaahhhh,

                  was so ein kleiner Hacken alles ausmachen kann.

                  Jetzt funktioniert es auch bei mir.

                  Vielen Dank.

                  1 Reply Last reply Reply Quote 0
                  • Paulchen67
                    Paulchen67 last edited by

                    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.

                    1 Reply Last reply Reply Quote 0
                    • Dutchman
                      Dutchman Developer Most Active Administrators last edited by

                      @Paulchen67:

                      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 ?

                      1 Reply Last reply Reply Quote 0
                      • Paulchen67
                        Paulchen67 last edited by

                        Ja, hab es jetzt mal so gelöst:
                        ` > // Holle die Werte des ganzen Adapters als Variable obj

                        var 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 Funktion

                        on({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?

                        1 Reply Last reply Reply Quote 0
                        • Dutchman
                          Dutchman Developer Most Active Administrators last edited by

                          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

                          1 Reply Last reply Reply Quote 0
                          • Jey Cee
                            Jey Cee Developer last edited by

                            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

                            1 Reply Last reply Reply Quote 0
                            • Paulchen67
                              Paulchen67 last edited by

                              @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.

                              1 Reply Last reply Reply Quote 0
                              • Jey Cee
                                Jey Cee Developer last edited by

                                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

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                1.0k
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                4473
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo