Hallo @prohand, hallo @spenceur!
Danke für dieses Thema, der Bedarf ist sehr real: eine Integration, die leise ausfällt (typischerweise ein abgelaufenes Token), ist der schlimmste mögliche Ausfall in der Hausautomatisierung. Nichts scheint kaputt zu sein, und man merkt es erst drei Wochen später 
Gute Nachricht: Bei externen Integrationen gibt es bereits einen großen Teil der Überwachung auf Serverseite. Jede Integration sendet einen Heartbeat an Gladys, eine Gesundheitsprüfung läuft ständig, und die Integration wechselt in den Zustand degradiert, wenn sie die Verbindung zum Drittanbieter verliert oder nicht mehr reagiert, mit automatischem Neustart und Backoff dahinter.
Der « degradiert »-Zustand, den du vorschlägst @spenceur, existiert also bereits intern
Was fehlt, ist der für den Benutzer sichtbare Teil: benachrichtigt werden.
Zu dem Alarm « Verbunden → Getrennt »: Das Beispiel des Fernsehers zeigt gut die Falle. « Getrennt » kann zwei völlig unterschiedliche Dinge bedeuten:
- ein normaler Fall: Gerät ausgeschaltet, WebSocket geschlossen, erwartetes Verhalten;
- ein anormaler Fall: abgelaufenes Token, Zugriff widerrufen, API-Fehler.
Die Unterscheidung existiert bereits teilweise im Modell (die Integration läuft, aber ihre Verbindung zur Cloud ist ausgefallen, also degradiert), man muss nur sicherstellen, dass jede Integration das richtige Signal zurückmeldet, anstatt bei jeder Trennung blind zu alarmieren.
Zu den Ausschlüssen: Ich würde vermeiden, sie zum Hauptmechanismus zu machen. Das zwingt jeden, empirisch herauszufinden, welche Integrationen « laut » sind, nachdem man falsche Alarme erhalten hat. Wenn man sie von Anfang an braucht, bedeutet das, dass das zurückgemeldete Signal nicht das richtige ist.
Konkreter würde ich also sehen:
- Den Zustand sichtbar machen: Der Zustand jeder Integration + das Datum des letzten erfolgreichen Austauschs, direkt in der Oberfläche. Keine Benachrichtigung, aber schon ein großer Teil des Nutzens.
- Eine globale Einstellung in den Gladys-Einstellungen: « Mich benachrichtigen, wenn eine Integration fehlerhaft ist ». Ein einfacher Schalter, keine Konfiguration pro Integration oder Szene zu erstellen. Und das deckt natürlich deine Anfrage @prohand « nur wenn es bereits verbunden war »: degradiert bedeutet von Haus aus « es funktionierte, es funktioniert nicht mehr ».
- Anti-Flapping integriert in die Einstellung: Eine Mindestdauer im degradierten Zustand, bevor eine Benachrichtigung erfolgt (um dem automatischen Neustart die Arbeit zu ermöglichen), keine Duplikate und eine Benachrichtigung über die Rückkehr zum Normalzustand. Ohne das wird diese Art von Funktion von jedem in einer Woche deaktiviert.
Zu der automatischen Verlängerung der Tokens: 100 % einverstanden mit dem Grundsatz, aber das muss Integration für Integration behandelt werden, und selbst mit einem perfekten Refresh wird es Fälle geben, in denen der Zugriff ausfällt (Widerruf durch den Hersteller, API-Änderung…). Die Überwachung muss also trotzdem existieren.
Kurz gesagt: Die Grundlagen sind bereits vorhanden, die Hauptarbeit besteht darin, all das dem Benutzer zu präsentieren 