NEWS
Benachrichtigung wenn ioBroker neu gestartet wurde
-
Hallo,
ich hatte die Anforderung, dass ich nach einem kompletten Neustart von ioBroker eine Benachrichtigung darüber bekomme.
Ich verwende Docker und habe dort eine Überwachung des Health-Status mittels autoheal laufen, die den ioBroker Container automatisch neu startet, sollte das erforderlich sein. Hoffentlich geht anschließend alles wieder, aber über diesen Ausnahmezustand wäre ich trotzdem gerne informiert, um bei einer Häufung auch mal weiter nachzuschauen.
Über den JavaScript Adapter lasse ich deshalb ein Blockly Skript beim Start des Adapters laufen, der dann über die letzte Aktualisierung der Prozess-ID des JS-Controllers ermittelt, ob auch der JS-Controller neu gestartet wurde und nicht nur der JavaScript Adapter selbst (oder nur das Blockly Skript).
Da ich dazu bisher kein Snippet finden konnte, teile ich hier das Blockly Skript mit anderen. Die Benachrichtigung ist hier über Pushover gelöst, aber das kann jeder leicht selbst anpassen.
Gruß,
—Julian -
@loredo sagte: letzte Aktualisierung der Prozess-ID des JS-Controllers
Wäre es nicht einfacher, die "Controller - uptime" auszuwerten?
-
@paul53 mag erstmal naheliegend klingen, habe ich absichtlich anders gelöst.
Wie willst du das ganze ohne Trigger und ohne Timer auswerten? Du weißt nicht, wann genau der JavaScript Adapter vom JS-Controller gestartet wird. Zudem kann ja der Adapter oder auch das einzelne Skript zur Laufzeit immer mal wieder neu gestartet werden, aber da darf nix auslösen. Welchen Wert wolltest du also als Schwellenwert für den Unix Timestamp der Runtime wählen, damit keine wiederholte Benachrichtigung stattfindet?Mir war wichtig, dass die Benachrichtigung während der Laufzeit überhaupt keine Rolle mehr spielt und diese Lösung funktioniert wunderbar dafür.
-
@loredo sagte: Wie willst du das ganze ohne Trigger und ohne Timer auswerten?
So:
Die Wahrscheinlichkeit, dass das Skript oder die Instanz innerhalb von 2 Minuten noch einmal neu gestartet wird, ist äußerst gering.