NEWS
[gelöst] Subcribe auf Adapter-Instanz.common.enabled
-
Ich möchte in einem Skript reagieren, wenn eine von mehreren Instanzen eines Adapters (hier Telegram), beendet oder gestartet wurde. Entsprechend würde ich die Ausgabe auf einen anderen Bot "umleiten" oder falls keiner mehr aktiv ist, einen "Alarm" auslösen.
Beim Start des Skriptes kann ich das über ".common.enabled" abfragen, bekomme aber keine nachträglichen Instanz-Zustandsänderungen mehr mit.
Habe ich überhaupt die Möglichkeit, mit einem subcribe das Starten oder Beenden einer Adapter-Instanz zu "erfahren"?
Ich habe mir damit beholfen, den Wert von "telegram.X.info.connection" zu überwachen, was sicherlich in diesem Zusammenhang eine gute Alternative ist.
Mir geht es hier mehr um das prinzipielle, habe ich da etwas überlesen oder geht das "bisher" nicht?
-
Wäre system.adapter.<adaptername>.<instanz>.alive ne Variante?</instanz></adaptername>
-
Habe ich überhaupt die Möglichkeit, mit einem subcribe das Starten oder Beenden einer Adapter-Instanz zu "erfahren"? `
Hast Du es mal mit dem Datenpunkt "system.adapter.adapterName.N.alive" versucht ?
@greyhound:Beim Start des Skriptes kann ich das über ".common.enabled" abfragen, bekomme aber keine nachträglichen Instanz-Zustandsänderungen mehr mit. `
subscribe() funktioniert nur mit dem Zustand (state) von Datenpunkten; es reagiert nicht auf Änderungen von statischen Objekt-Elementen wie ".common.enabled". -
Habe ich überhaupt die Möglichkeit, mit einem subcribe das Starten oder Beenden einer Adapter-Instanz zu "erfahren"? `
Hast Du es mal mit dem Datenpunkt "system.adapter.adapterName.N.alive" versucht ?
@greyhound:Beim Start des Skriptes kann ich das über ".common.enabled" abfragen, bekomme aber keine nachträglichen Instanz-Zustandsänderungen mehr mit.
__subscribe()__ funktioniert nur mit dem Zustand (state) von ****Datenpunkten****; es reagiert nicht auf Änderungen von statischen Objekt-Elementen wie ".common.enabled".
Alles richtig.Man muss zwei Arten von der Info unterscheiden:
-
States - Die Werte von verschiedenen Datenpunkten
-
Objekte - meistens statische Beschreibung von Datenpunkten (unit, name, max, min, …)
Für States kann man subscribe machen. Für Objekte gibt so eine Funktionalität nicht. (Weil die sich viel zu selten ändern).
Für alle kritische Informationen existieren aber bereits States, so wie hier "common.enabled" kann man mit system.adapter.adapterName.N.alive monitoren. Ist sogar besser, weil die Instanz kann enabled sein, aber konnte wegen irgendein Problem nicht anlaufen (z.B. npm update error) und das kriegt man mit "common.enabled" nicht raus.
Noch besser ist natürlich "telegram.X.info.connection" zu beobachten, weil da sieht man auch ob Telegram dienst im Internet OK ist.
-
-
Danke für die Erklärungen.
das mit "alive" habe ich beim Durchsuchen des Forums so nicht gefunden.
Bei Telegram werde ich bei der "connection"-Variante bleiben, aber an anderer Stelle werde ich es mit alive lösen.
Danke
GH