Instanz per Script neu starten

Fragen zum Skripten mit ioBroker.javascript
Antworten
Baumert
starter
Beiträge: 57
Registriert: 18.11.2017, 08:03

Instanz per Script neu starten

Beitrag von Baumert » 18.05.2018, 11:07

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

pix
guru
Beiträge: 2693
Registriert: 04.11.2014, 17:49
Kontaktdaten:

Re: Instanz per Script neu starten

Beitrag von pix » 20.05.2018, 19:54

Hallo,

hab ich hier mal gemacht:
viewtopic.php?f=21&t=13193&p=138842&hil ... en#p138842

Pix
Mac mini (OS X 10.12.6, node v6.12.2, npm v4.6.1), Redis, InfluxDB, VIS via iOS; gesteuerte Systeme: Homematic CCU2, Homepilot, Roomba, Sonos, XEOMA auf Odroid XU4; Adapter: feiertage, tvspielfilm, rtv, solarwetter, tankerkoenig, homepilot, epson_stylus_px830

paul53
guru
Beiträge: 3795
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: Instanz per Script neu starten

Beitrag von paul53 » 20.05.2018, 21:27

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):

Code: Alles auswählen

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, function() {
         obj.common.enabled = true;
         setObject(idInst);
      });
   }   
});
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.
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.50-v7+, hmcon 0.18, node 8.11.3, Host 1.4.2, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.7.4, Email 1.0.4, History 1.8.5, Flot 1.9.1, Vis 1.0.4, Web 2.4.0

Jan1
professional
Beiträge: 576
Registriert: 08.01.2018, 16:50

Re: Instanz per Script neu starten

Beitrag von Jan1 » 21.05.2018, 08:49

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.

Benutzeravatar
Dutchman
guru
Beiträge: 3946
Registriert: 07.01.2016, 23:42

Re: Instanz per Script neu starten

Beitrag von Dutchman » 21.05.2018, 08:58

Jan1 hat geschrieben: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

Jan1
professional
Beiträge: 576
Registriert: 08.01.2018, 16:50

Re: Instanz per Script neu starten

Beitrag von Jan1 » 21.05.2018, 09:29

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

Baumert
starter
Beiträge: 57
Registriert: 18.11.2017, 08:03

Re: Instanz per Script neu starten

Beitrag von Baumert » 21.05.2018, 11:33

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

metaxa
starter
Beiträge: 79
Registriert: 06.06.2015, 16:43

Re: Instanz per Script neu starten

Beitrag von metaxa » 01.06.2018, 23:14

Jan1 hat geschrieben:
21.05.2018, 08:49
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)
Instanzen_Expertenmodus.JPG
Danke im Voraus!
mxa

Benutzeravatar
Dutchman
guru
Beiträge: 3946
Registriert: 07.01.2016, 23:42

Instanz per Script neu starten

Beitrag von Dutchman » 01.06.2018, 23:16

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


Sent from my iPhone using Tapatalk

Antworten