Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Instanz per Script neu starten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Instanz per Script neu starten

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

      Hallo,

      hab ich hier mal gemacht:

      viewtopic.php?f=21&t=13193&p=138842&hil … en#p138842

      Pix

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

        Zur Überwachung können entweder der Datenpunkt "system.adapter.sonoff.0.alive" oder der Datenpunkt "system.adapter.sonoff.0.connected" dienen, was zu testen wäre (oder vorher loggen). Mit "alive" könnte es dann so funktionieren (nicht getestet):

        const idInst = 'system.adapter.sonoff.0';
        const idAlive = idInst + '.alive';
        const idAuto = 'javascript.0.Autostart_Sonoff'; // Datenpunkt zur Freigabe von Autostart, da sonst nicht mehr per Hand zu stoppen
        
        var obj = getObject(idInst);
        
        on({id: idAlive, change: 'ne', val: false}, function() {
           if(getState(idAuto).val) {
              obj.common.enabled = false;
              setObject(idInst, obj, function() {
                 obj.common.enabled = true;
                 setObject(idInst, obj);
              });
           }   
        });
        

        In der Konfiguration der Javascript-Instanz muss setObject freigegeben werden !

        Alternativ zur Autostart-Freigabe per Datenpunkt kann zum manuellen Stopp der Instanz auch das Script vorher gestoppt werden.

        1 Reply Last reply Reply Quote 0
        • J
          Jan1 last edited by

          Man kann doch jede Instanz direkt über den IOBroker neu starten lassen wie man Lust und Laune hat. Wieso sollte man da noch extra ein Script dazu verwenden wollen, wenn diese Funktion schon direkt implementiert ist? Man muss dazu nur unter Instanzen den Expertenmodus aktivieren.

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

            @Jan1:

            Man kann doch jede Instanz direkt über den IOBroker neu starten lassen wie man Lust und Laune hat. Wieso sollte man da noch extra ein Script dazu verwenden wollen, wenn diese Funktion schon direkt implementiert ist? Man muss dazu nur unter Instanzen den Expertenmodus aktivieren. `

            Um es zu automtisieren oder per vis aus zu führen zB…


            Send from mobile device

            Das schöne ios hat Auto Korrektur zum k****

            Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

            1 Reply Last reply Reply Quote 0
            • J
              Jan1 last edited by

              Ah jetzt hab ich's verstanden, ein Neustart nur wenn die Instanz abgestürzt ist. OK, mach dann Sinn.

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

                Hallo, vielen Dank für die Rückmeldungen - ich werde es testen und mich dann wieder melden.

                Grüße Baumert

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

                  @Jan1:

                  Man kann doch jede Instanz direkt über den IOBroker neu starten lassen wie man Lust und Laune hat. Wieso sollte man da noch extra ein Script dazu verwenden wollen, wenn diese Funktion schon direkt implementiert ist? Man muss dazu nur unter Instanzen den Expertenmodus aktivieren. `

                  Also ich finde im Expertenmodus keine passende Einstellung. Kann man mir das bitte zeigen? (autom. Neustart nach Absturz) 488_instanzen_expertenmodus.jpg
                  Danke im Voraus!

                  mxa

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

                    Im experten modus gibt es keine option zum Neustart mach Absturz nur cron alle x Zeit Neustart

                    Sent from my iPhone using Tapatalk

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

                      Ich starte bei mir mittels exec in Blockly Instanzen bei Bedarf neu.
                      6549_adapter_restart.jpg

                      Es muss ja nicht zwingend dauerhaft per Cron sein. Der exec Block sitzt natürlich in einem Skript mit Trigger und Bedingungen.

                      ostseereiter R 2 Replies Last reply Reply Quote 4
                      • ostseereiter
                        ostseereiter @Diginix last edited by ostseereiter

                        @Diginix sagte in Instanz per Script neu starten:

                        Ich starte bei mir mittels exec in Blockly Instanzen bei Bedarf neu.
                        Hallo Freunde,
                        Hier wurde ja schon lange nichts mehr geschrieben Folgendes ich nehme meinen Onkyo-Receiver wenn ich diesen nicht brauche vom Strom. So weit so gut. Starte ich diesen dann kommt leider erst nach einen Neustart des Adapters eine Verbindung zu Stande.

                        Screenshot (151).png

                        Bekommt man den Neustart nicht in ein Script eingebunden?Das mit den exec Block habe ich nicht begriffen.

                        Diginix 1 Reply Last reply Reply Quote 1
                        • Diginix
                          Diginix @ostseereiter last edited by

                          @ostseereiter Was für ein Skript?
                          Und was soll dein Screenshot zeigen?

                          1 Reply Last reply Reply Quote 0
                          • S
                            Superdad last edited by

                            Ich hatte mir das Script von @pix genommen und meine Datenpunkte eingetragen.
                            Dann in Vis einen Button anlegen.
                            Und bei Bedarf draufklicken.

                            /* tuya adapter neu starten
                            {1}
                            erzeugt Objekt, das in VIS geschaltet werden kann
                            Schaltung triggert Neustart eines Adapters
                            {1}
                            28.03.2018 erstellt von pix
                            {1}
                            */
                            
                            const logging = true; // (true;false) Logausgabe zentral schalten, da 5minütlich ein Mehrzeiler geloggt wird.
                            const instanz = "javascript." + instance;
                            const fC = false; // force Create
                            const idSchalter = instanz + ".tuya.Adapter.Schalter";
                            const adapter = "tuya.0"; // Name und Instanz des Adapters
                            
                            // Ab hier nix mehr ändern
                            
                            if (logging) log("Skript " + name + " in der Instanz " + instance + " gestartet");
                            var idAdapter = "system.adapter." + adapter;
                            
                            createState(idSchalter, false, fC, {
                                name: adapter + " Adapter neu starten", 
                                type: "boolean", 
                                desc: "Schaltet den <" + adapter +  "> Adapter per Skript zB aus VIS",
                                role: "switch"
                            });
                            
                            // Neustart triggern
                            
                            on({
                                id: idSchalter,
                                change: "ne",
                                from: "system.adapter.web.0" // Schaltung nur aus VIS möglich
                            }, function (dpobj) {
                                var obj = getObject(idAdapter);
                                if (dpobj.state.val) {
                                    obj.common.enabled = true;  // Adapter einschalten
                                } else if (!dpobj.state.val) {
                                    obj.common.enabled = false;  // Adapter ausschalten
                                }
                                setObject(idAdapter, obj);
                                if (logging) log("Adapter <" + adapter + "> wurde " + ((obj.common.enabled) ? "ein" : "aus") + "geschaltet");
                            });
                            
                            ostseereiter 1 Reply Last reply Reply Quote 2
                            • ostseereiter
                              ostseereiter @Superdad last edited by

                              @Superdad sagte in Instanz per Script neu starten:

                                                                                                                                                          /* tuya adapter neu starten                                                                                                                                                                            {1}                                                                                                                                                                            erzeugt Objekt, das in VIS geschaltet werden kann                                                                                                                                                                            Schaltung triggert Neustart eines Adapters                                                                                                                                                                            {1}                                                                                                                                                                            28.03.2018 erstellt von pix                                                                                                                                                                            {1}                                                                                                                                                                            */                                                                                                                                                                                                                                                                                                                                                         const logging = true; // (true;false) Logausgabe zentral schalten, da 5minütlich ein Mehrzeiler geloggt wird.                                                                                                                                                                            const instanz = "javascript." + instance;                                                                                                                                                                            const fC = false; // force Create                                                                                                                                                                            const idSchalter = instanz + ".tuya.Adapter.Schalter";                                                                                                                                                                            const adapter = "tuya.0"; // Name und Instanz des Adapters                                                                                                                                                                                                                                                                                                                                                         // Ab hier nix mehr ändern                                                                                                                                                                                                                                                                                                                                                         if (logging) log("Skript " + name + " in der Instanz " + instance + " gestartet");                                                                                                                                                                            var idAdapter = "system.adapter." + adapter;                                                                                                                                                                                                                                                                                                                                                         createState(idSchalter, false, fC, {                                                                                                                                                                                name: adapter + " Adapter neu starten",                                                                                                                                                                                 type: "boolean",                                                                                                                                                                                 desc: "Schaltet den <" + adapter +  "> Adapter per Skript zB aus VIS",                                                                                                                                                                                role: "switch"                                                                                                                                                                            });                                                                                                                                                                                                                                                                                                                                                         // Neustart triggern                                                                                                                                                                                                                                                                                                                                                         on({                                                                                                                                                                                id: idSchalter,                                                                                                                                                                                change: "ne",                                                                                                                                                                                from: "system.adapter.web.0" // Schaltung nur aus VIS möglich                                                                                                                                                                            }, function (dpobj) {                                                                                                                                                                                var obj = getObject(idAdapter);                                                                                                                                                                                if (dpobj.state.val) {                                                                                                                                                                                    obj.common.enabled = true;  // Adapter einschalten                                                                                                                                                                                } else if (!dpobj.state.val) {                                                                                                                                                                                    obj.common.enabled = false;  // Adapter ausschalten                                                                                                                                                                                }                                                                                                                                                                                setObject(idAdapter, obj);                                                                                                                                                                                if (logging) log("Adapter <" + adapter + "> wurde " + ((obj.common.enabled) ? "ein" : "aus") + "geschaltet");                                                                                                                                                                            });
                              

                              Danke ja damit kann ich arbeiten super.

                              ostseereiter 1 Reply Last reply Reply Quote 0
                              • ostseereiter
                                ostseereiter @ostseereiter last edited by ostseereiter

                                Hat zweimal hingehauen und nun wird nicht mehr geschallten. Habe mich zu früh gefreut.

                                Update ich habe festgestellt das ich das nur per VIS schalten kann über Blockly wird zwar von false auf true geschallten aber der Adapter reagiert nicht.Machen wir es halt händisch.

                                1 Reply Last reply Reply Quote 0
                                • R
                                  RainerHp @Diginix last edited by

                                  @Diginix script.js.yeelight_neustart: exec is not available. Please enable "Enable Exec" option in instance settings

                                  Wie mache ich das? Finde nicht wo ich das auf enabel setzen kann?

                                  Diginix 1 Reply Last reply Reply Quote 0
                                  • Diginix
                                    Diginix @RainerHp last edited by

                                    @RainerHp Steht doch genau da: In den Einstellungen der javascript Instanz. Da kannst du einstellen was alles in Skripten genutzt werden darf, u.a. eben auch exec.

                                    b910cb16-437b-4bce-9db9-c7e04e1d8c83-image.png

                                    R 1 Reply Last reply Reply Quote 0
                                    • R
                                      RainerHp @Diginix last edited by

                                      @Diginix Ach in der Javainstannz jau habs. gleich nochmal testen.

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        Tobi75 last edited by

                                        Hallo,

                                        mein milight verliert nach ca. 20 sekunden die Verbindung.
                                        Habt Ihr hier schon eine Lösung gefunden?
                                        Mfg
                                        Tobias

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        837
                                        Online

                                        31.8k
                                        Users

                                        80.0k
                                        Topics

                                        1.3m
                                        Posts

                                        11
                                        19
                                        14162
                                        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