NEWS
Instanz per Script neu starten
-
Hallo, ich habe ab und zu das problem, dass eine Instanz (Milight und Sonoff) die Verbindung verliert. Nach einem Neustart (Button 'Neu Laden') läuft die entsprechende Instanz dann wieder. Kann ich den Neustart (Neu Laden) auch per Script realisieren? Wenn ja, könnte ich den Neustart automatisieren.
Grüße Baumert
-
-
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.
-
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.
-
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
-
Ah jetzt hab ich's verstanden, ein Neustart nur wenn die Instanz abgestürzt ist. OK, mach dann Sinn.
-
Hallo, vielen Dank für die Rückmeldungen - ich werde es testen und mich dann wieder melden.
Grüße Baumert
-
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)
Danke im Voraus!mxa
-
Im experten modus gibt es keine option zum Neustart mach Absturz nur cron alle x Zeit Neustart
Sent from my iPhone using Tapatalk
-
Ich starte bei mir mittels exec in Blockly Instanzen bei Bedarf neu.
Es muss ja nicht zwingend dauerhaft per Cron sein. Der exec Block sitzt natürlich in einem Skript mit Trigger und Bedingungen.
-
@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.Bekommt man den Neustart nicht in ein Script eingebunden?Das mit den exec Block habe ich nicht begriffen.
-
@ostseereiter Was für ein Skript?
Und was soll dein Screenshot zeigen? -
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"); });
-
@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.
-
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.
-
@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?
-
@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.
-
@Diginix Ach in der Javainstannz jau habs. gleich nochmal testen.
-
Hallo,
mein milight verliert nach ca. 20 sekunden die Verbindung.
Habt Ihr hier schon eine Lösung gefunden?
Mfg
Tobias