Hallo Community, hallo Viessmann Mitarbeitende,
da ich an der Anlage selber (eine Vitocal 252-A) nur einige wenige Eventmeldungen angezeigt bekomme, wollte ich mir die Meldungen der Anlage per API auslesen. Laut Dokumentation geht das mit dieser Anfrage:
Wenn ich das mit Limit=1000 mache, bekomme ich jedoch aktuell nur 159 Events. Und das sind noch nicht mal die letzten 159. Der älteste Eintrag ist vom 31.10.2022.
Bei früheren Abfragen hatte ich auf der gleichen Anlage schon mal eine Liste von über 700 Events.
Sehr seltsam finde ich, dass ich vom 12.11.2022 gar keinen und vom 13.11.2022 nur zwei Events bekomme. Ist da was auf dem Server passiert? Ober werden die Events gefiltert?
Ich habe auch den Eindruck, dass zum Ende der Liste eher Einstellungsänderungen gemeldet werden und weniger die Statusänderungen, die am Anfang der Liste noch in der Überzahl sind.
Gibt es eine Regel, nach der die Events gespeichert und vorgehalten werden?
Gibt es eine Möglichkeit die Event Meldungen direkt lokal abzufragen?
An der Anlage selber geht es nicht, weil da nur etwa 10 Meldungen angezeigt werden. Und ein lokaler Netzzugriff ist nicht dokumentiert.
Viele Grüße,
Christof
Hi @ckondo,
Mir ist nicht bekannt, dass Events im Endpunkt nach einer gewissen Zeit entfernt werden. Ein lokaler Zugriff ist soweit ich in der Regel nur mit einem separaten Gateway Modul (z.B. für KNX) möglich. Ob das Gateway dann Events mitgibt, kann ich jedoch auch nicht sagen. Am besten fragst du für andere (lokale) Zugriffsmöglichkeiten nochmal separat im Endkunden-Bereich des Forums nach.
Zur API Frage, hast du bei der Anfrage einmal versucht, Events nur für bestimmte Eventtypen zu filtern? Also z.B. &eventType=device-error.
Außerdem könntest du noch dein Gateway angeben mit &gatewaySerial={{gatewaySerial}}
Sag mir gerne Bescheid, ob sich damit weitere Events anzeigen lassen.
Hallo @MichaelHanna ,
danke für deine Antwort. Leider muss ich sagen, dass die "device-message-status" Events offensichtlich nur eine begrenzte Zeit über die API abrufbar sind.
Aktuell habe ich 1000 Events ohne Filter mit meiner Gateway Nummer angefordert:
https://api.viessmann.com/iot/v1/events-history/events?limit=1000&gatewaySerial=7736172004922217
Als Antwort kam am 16.11.2022 gegen 21:30 Uhr eine Liste mit 506 Events.
In der Liste sind "device-message-status", "gateway-online" und "feature-changed" Events enthalten.
#1 Code: S.123 , 2022-11-16T21:26:23.000Z ("device-message-status")
#2 .. 403 : immer wechselnd, alle drei Eventarten treten auf.
#404: 2022-11-14T00:21:14.000Z ("feature-changed")
#405 .. 506 : nur noch "feature-changed" und "gateway-online" Events werden aufgelistet
#506: 2022-11-02T05:48:38.00Z ("feature-changed")
Aufgrund dieser Abfrage sieht es so aus, als würden die "device-message-status" events nur für etwa 3 Tage gespeichert. Frühere "status" Events werden von der API nicht mehr zurück geliefert. Das es sie gab, zeigt ein Vergleich der Listen (bitte auf die Zeitstempel achten!):
#401 : Code = S.187, active, Time = 2022-11-14T03:52:45.000Z, Device = Boiler (device-message-status)
#402 : Code = , deactivated, Time = 2022-11-14T03:26:37.000Z, Device = (gateway-online)
#403 : Code = , deactivated, Time = 2022-11-14T03:25:06.000Z, Device = (gateway-online)
#404 : Code = , deactivated, Time = 2022-11-14T00:21:14.000Z, Device = (feature-changed)
#405 : Code = , deactivated, Time = 2022-11-13T09:14:44.000Z, Device = (feature-changed)
#406 : Code = , deactivated, Time = 2022-11-13T08:50:04.000Z, Device = (feature-changed)
Da die Eventliste mit Nummer #506 und dem Zeitstempel 2022-11-02T05:48:38.000Z endet, vermute ich zusätzlich ein Serverproblem, bei dem es zu Datenverlust gekommen ist. Denn offensichtlich gab es auch vorher Events in meiner Anlage. Das heißt die Event Liste hätte länger sein müssen:
#506: 2022-11-02T05:48:38.00Z ("feature-changed")
Ich denke in der Dokumentation der API sollte zumindest vermerkt sein, dass die Events nur für begrenzte Zeit verfügbar sind. Eventuell können die Entwickler mal eine kurze Rückmeldung dazu geben.
Aktuell rufe ich die Liste täglich ab, um die Daten selber in meiner eigenen Datenbank zu sichern. So bleiben mir auch die "device-message-status" Events für eine spätere Auswertung erhalten. Der erste Eventeintrag in meiner Datenbank hat den Zeitstempel 2022-10-09T10:05:17.000Z und insgesammt habe ich bisher 1783 Events abgerufen.
Mir ist unklar, warum die "device-message-status" Events nur für die letzten 3 Tage abgerufen werden können. Für eine eventuelle Fehlersuche ist das zu knapp. Denn bis der Kundendienst reagiert, sind die Events schon nicht mehr verfügbar.
Oder sind das einfach zu viele Daten? Dann wäre es vermutlich sinnvoller, die Liste direkt auf dem lokalen System zu speichern und dort abzufragen. Ein lokaler Webserver ist auf der Anlage sogar vorhanden. Allerdings nur, um die Lizenzinformationen der genutzen Open Source Komponenten anzuzeigen.
Schade, eine lokale Abfrage der Daten wäre viel nachhaltiger. Was passiert eigentlich, wenn der Viessmann Server ausfällt. Dann kann ich können alle Kunden die Steuerung der Anlage über die App vergessen. Auch die Abfrage der Daten wäre dann nicht mehr möglich. Also ein möglicher Single Point of Failure! Gilt der Viessmann Server damit als kritische Infrastuktur?
Denkt mal darüber nach!
Viele Grüße,
Christof