NEWS
prüfen vor wieviel Sekunden ioBroker gestartet wurde?
-
Ich möchte per JavaScript prüfen ob ioBroker in den letzten paar Minuten neu gestartet wurde. Leider finde ich kein passenden Datenpunkt. Ich glaube mit dem alten Admi Adapter hat man per Objekte gesehen!?
Hintergrund: Ich lasse mich über Status Änderungen meiner USV per Push benachrichtigen. Irgendwann will ich die Funktion dann weiter ausbauen. Derzeit ist das ganze aber eher suboptimal, denn die Stati des NUT-Adapters ändern sich halt beim Neustart von ioBroker. Das heißt derzeit bekomme ich immer eine Meldung wenn ioBroker neu gestartet wurde. Da ich jeden Samstag-Nacht ein Backup vom ganzen Docker Container mache fahre ich dazu ioBroker runter.
Ich suche also am Besten einen Datenpunkt vom js-controller oder Admi-Adapter der sich eigentlich nur beim start einmal ändert.
-
Habe die Objekte nun doch gefunden:
Nur welcher ist am Besten? Oder gibt es noch einen anderen besseren Weg?
system.adapter.admin.0.uptime system.adapter.nut.0.uptime system.host.iobroker_V51.uptime
Der letzte ist wohl eher nicht perfekt geeignet, da ich den Hostnamen immer nach der Docker-Version benenne. Das heißt der Punkt ändert sich und wenn man dann vergißt die Scripte anzupassen wäre das nicht mehr zuverlässig.
-
Kann man nicht einfach ein Skript ohne Trigger erstellen welches einen dp schaltet?
Wird ja dann mach einem Neustart ausgeführt.Dann gibt's beim rpi2 Adapter noch
rpi2.0.uptime.uptime
-
@david-g said in prüfen vor wieviel Sekunden ioBroker gestartet wurde?:
Kann man nicht einfach ein Skript ohne Trigger erstellen welches einen dp schaltet?
Wird ja dann mach einem Neustart ausgeführt.stimmt. Das würde auch funktionieren. Wäre halt wieder ein zusätzliches Script und Datenpunkt. Aber auf die Idee wäre ich nicht gekommen. Derzeit favorisiere ich die uptime vom nut-Adapter. Da ich dann auch keine Nachricht bekäme wenn nan den Adapter aktualisiert (wobei dort ja eher selten eine neue Version kommt).
-
@cash Ich würde den ioB eigenen nutzen:
system.host.[hostname].uptime
Den "hostnamen" könnte man mittels Alias umgehen (dann braucht man ihn ggf. nur einmalig zentral zu ändern; ist auch für andere Skripte hilfreich die den Hostnamen brauchen/nutzen
).
-
@sborg heißt aber man muss beim ändern des Hostnames dran denken den Alias oder die Scripte zu ändern. Gerade wenn man etwas eher selten macht vergißt man so etwas gerne.
Wenn man den Hostnamen per Script abfragen könnte wäre es interessanter.
-
Kann man das nicht mit id von selector machen und den Hostnamen durch ein * ersetzen?
Jenachdem wie man es abfragt.Solange man kein Multihost nutzt (Vermute mal, da erscheinen auch die entfernten Systeme).
-
@cash warum ändert man den namen des hosts? und selbst wenn, brauchst du nur den alias ändern, in den scripts hat sich das dann erledigt. deswegen gibts ja alias.
-
@da_woody Ich ändere den Alias wenn ich vom Docker Image eine neue Version nutze. Somit weiß ich immer welche Version ich gerade im Einsatz habe…
Wie schon geschrieben ist Alias eine nette Sache bei Geräten die man austauscht und wechselt. Aber wenn man etwas selten macht neigt man dazu etwas zu vergessen. Den Gerätewechsel macht man zwar auch selten aber dort ist es klar, da man ein Gerät hat um es zu nutzen. Bei Hilfsvariablen ist das anders, die nutzt man nur um Probleme zu lösen. Wenn ich manche Scripte von mir aktualisiere die ich schon ein paar Monate nicht mehr geändert habe, frage ich mich öfter welchen Sinn hat diese Variable in dem Script.
Außerdem hat bei mir Heimautomation etwas mit Automation zu tun und dazu gehört für mich auch das ich mich um Dinge nicht kümmern muss. Man errechnet ja auch die Feiertage und trägt die nicht manuell in eine Liste ein um sie zu berücksichtigen.
Habe jetzt erstmal die uptime vom Adapter genommen. Dort bleibt der Name immer gleich.
-
@cash sagte in prüfen vor wieviel Sekunden ioBroker gestartet wurde?:
Ich ändere den Alias wenn ich vom Docker Image eine neue Version nutze. Somit weiß ich immer welche Version ich gerade im Einsatz habe…
was jetzt? alias, oder image name? will dir nicht zu nahe treten, aber warum dauernd neu versionen? man könnte latürnich sowas auch in einem textfile mitschreiben, nennt man dokumentieren... anhand vom datum ist das relativ ersichtlich...
Man errechnet ja auch die Feiertage und trägt die nicht manuell in eine Liste ein um sie zu berücksichtigen.
echt? bis jetzt hab ich die immer aus dem kalender genommen... wüsste nichtmal, wie ich die berechnen sollte.
-
@da_woody sorry meinte natürlich den hostnamen wenn ich ein neues Docker Image nutze.
Ja man kann dokumentieren oder man benennt den Hostnamen entsprechend der Docker Image Version und spart sich das dokumentieren. Jeder wie er will.
Natürlich kann man Feiertage errechnen, ausser die festen natürlich die immer am gleichen Tag sind.
Passend dazu: Berechnung von Ostern. Ist aber ein anderes Thema.