Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Adapter/Instanz per VIS 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

    [Vorlage] Adapter/Instanz per VIS neu starten

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

      Hallo,

      ich habe https://forum.iobroker.net/viewtopic.php?f=20&t=2992&start=140#p137756, wie man den Adapter aus VIS heraus neu starten kann, um aktuelle Werte zu erhalten.

      Das Skript ist recht allgemein gehalten und kann auch andere Adapter neu starten. Man muss nur den Namen der Adapter-Instanz korrigieren.

      ! Die Aktion startet nur aus VIS heraus. Um andere Eingaben/Trigger zu nutzen, bitte die Zeile````
      from: "system.adapter.web.0" // Schaltung nur aus VIS möglich

      >! ````
      /* Spritpreis tankerkoenig adapter neu starten
      >! erzeugt Objekt, das in VIS geschaltet werden kann
      Schaltung triggert Neustart eines Adapters
      >! 28.03.2018 erstellt von pix
      >! */
      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 + ".Sprit.Adapter.Schalter";
      const adapter = "tankerkoenig.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");
      });
      

      Der Beitrag ist im tankerkoenig-Thread etwas versteckt, daher mache hier mal ein neues Thema auf.

      Viel Spaß

      Pix

      E 1 Reply Last reply Reply Quote 1
      • A
        Arktim last edited by

        Hi Pix,

        danke für die Information, hab ich gleich mal ausprobiert, leider macht das Skript bei mir nichts.

        Wenn ich in der Visualisierung auf den Button klicke, schaltet dieser zwar auf grün, sonst tut sich nix. Bei den Instanzen ist die Tankerkönig weiter deaktiviert. Im Log findet ich allerdings den Eintrag: "Function "setObject" is not allowed. Use adapter settings to allow it."

        Hab den iobroker auf einem Raspberri Pi 3b installiert. Ich hoffe Du kannst hier weiterhelfen.

        Grüße

        Markus

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

          @Arktim:

          "Function "setObject" is not allowed. Use adapter settings to allow it." `
          In der Konfiguration der Javascript-Instanz setObject freigeben !

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

            Hallo pix,

            sehr cool wieder einmal!

            Vielen Dank!

            1 Reply Last reply Reply Quote 0
            • A
              Arktim last edited by

              @paul53:

              In der Konfiguration der Javascript-Instanz setObject freigeben ! `

              Vielen Dank, darauf bin ich nicht gekommen… Glaub ich muss mir die Adapter nochmal alle genauer anschaun 😉

              Danke Dir.

              1 Reply Last reply Reply Quote 0
              • R
                Reese1 last edited by

                Hallo,

                kann mir jemand erklären wie dass mit dem harmony adapter funktioniert damit ich diesen auch über vis neu starten kann?

                mfg

                1 Reply Last reply Reply Quote 0
                • D
                  dos1973 last edited by

                  weil ich eben selbst danach gesucht habe… hier meine Anpassung.

                  /* harmony adapter neu starten
                  
                  erzeugt Objekt, das in VIS geschaltet werden kann
                  Schaltung triggert Neustart eines Adapters
                  
                  28.03.2018 erstellt von pix
                  
                  */
                  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 + ".harmony.Adapter.Schalter";
                  const adapter = "harmony.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");
                  });
                  

                  und es braucht den metro adapter für das widget und dort muss noch die Objekt id angepasst werden

                  javascript.0.harmony.Adapter.Schalter
                  
                  1 Reply Last reply Reply Quote 0
                  • Z
                    Zippolighter last edited by

                    Hallo,

                    irgendwie stehe ich auf dem Schlauch und bekomme es nicht am laufen. Bzw. Ich sehe im VIS das Widget nicht

                    Habe ein Javascript erstellt und den Inhalt wie oben beschrieben eingefügt.

                    Muss ich irgendwo in dem Script was anpassen / ändern??

                    /* Spritpreis tankerkoenig adapter neu starten
                    
                    erzeugt Objekt, das in VIS geschaltet werden kann
                    Schaltung triggert Neustart eines Adapters
                    
                    28.03.2018 erstellt von pix
                    
                    */
                    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 + ".Sprit.Adapter.Schalter";
                    const adapter = "tankerkoenig.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");
                    });
                    

                    Habe dann aus dem Ursprünglichen Thread das Widget kopiert und in VIS eingefügt

                    Muss hier noch was angepasst werden??

                    [{"tpl":"tplMetroTileToggle","data":{"visibility-cond":"==","visibility-val":1,"hover":false,"transform":"true","bg_class_true":"ribbed-emerald","bg_class_false":"ribbed-crimson","icon_class_true":"","icon_class_false":"","icon_badge_true":"","icon_badge_false":"","badge_bg_class_true":"","badge_bg_class_false":"","brand_bg_class_true":"","brand_bg_class_false":"","select_on_true":true,"label_true":"Adapter
                    aktiviert
                    
                    tankerkoenig.0 eingeschaltet","label_false":"Adapter
                    deaktiviert
                    
                    tankerkoenig.0 abgeschaltet","toggle_oid":"javascript.0.Optin_Nachtruhe_Sayit","name":"Adapter schalten","oid":"javascript.2.Sprit.Adapter.Schalter","badge_top":"0","badge_left":"0","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"comment":"wird in Skript überwacht"},"style":{"left":"875px","top":"416px","width":"137px","height":"137px","font-family":"","z-index":"26","cursor":"pointer"},"widgetSet":"metro"}]
                    

                    Bei mir wird das Widget in VIS folgendermaßen beschrieben, aber nicht angezeigt

                    Adapter schalten [W01871] (undefined - undefined)

                    SetObjekt ist aktiviert und Metro ist auch installiert

                    Danke für Eure Hilfe

                    Gruß Zippolighter

                    1 Reply Last reply Reply Quote 0
                    • E
                      excalibur270 @pix last edited by

                      @pix Hi. Ich glaube ddie Umstellung hat etwas zerschossen. Kannst du das nochmal Posten? Bei mir wird der Schalter nicht erstellt.

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo excalibur270,

                        welche Umstellung meinst du denn?
                        Code steht oben.

                        Gruß
                        Pix

                        E 1 Reply Last reply Reply Quote 0
                        • E
                          excalibur270 @pix last edited by

                          @pix Meine die forenumstellung. Habe den code von oben genommen. Es wird der Schalter dp nicht erstellt.
                          Hatte das Script schon am laufen. Leider einmal nach einer Änderung kein Backup und es passiert was dann nicht passieren sollte. Sd Crash. Wollte heute neu machen und der dp eird nicht angelegt.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          854
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          8
                          11
                          3857
                          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