NEWS
[Vorlage] Adapter/Instanz per VIS neu starten
-
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
-
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
-
"Function "setObject" is not allowed. Use adapter settings to allow it." `
In der Konfiguration der Javascript-Instanz setObject freigeben ! -
Hallo pix,
sehr cool wieder einmal!
Vielen Dank!
-
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.
-
Hallo,
kann mir jemand erklären wie dass mit dem harmony adapter funktioniert damit ich diesen auch über vis neu starten kann?
mfg
-
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
-
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
-
@pix Hi. Ich glaube ddie Umstellung hat etwas zerschossen. Kannst du das nochmal Posten? Bei mir wird der Schalter nicht erstellt.
-
Hallo excalibur270,
welche Umstellung meinst du denn?
Code steht oben.Gruß
Pix -
@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.