Hallo @Awot252 , ich nutze die Viessmann API (https://documentation.viessmann.com) um mir die 'events-history' der Anlage abzufragen. Das mache ich in einem Script alle 15 Minuten. Die zurückgelieferten Einträge speichere ich in einer MySQL Datenbank. Die Auswertung und Visualisierung erfolgt dann über Grafana. In den meißten Event Einträgen gibt es EventCodes, die einen Rückschluss auf den aktuellen Gerätestatus erlauben. Beispiel: {"body": {"active": true, "modelId": "E3_Vitocal", "deviceId": "0", "errorCode": "S.123", "equipmentType": "Boiler", "errorDescription": "S.123"}, "origin": "system", "editedBy": "system", "audiences": ["IS-SUPPLIER", "IS-DEVELOPMENT", "IS-MANUFACTURING", "IS-AFTERSALES", "IS-AFTERMARKET", "IS-DEVELOPER-VEG", "IS-BIG-DATA", "IS-MANUFACTURING-VEG"], "createdAt": "2023-12-28T22:11:00.315Z", "eventType": "device-message-status", "gatewaySerial": "77xxxxxxxxxxxx17", "eventTimestamp": "2023-12-28T22:10:30.000Z"} "ErrorCode: S.123" steht für "Wärmepumpe aus" und durch das "active:true" weiß man, dass dieser Status ab "eventTimestamp: 2023-12-28T22:10:30.000Z" gilt. Es gibt immer zwei Einträge mit der gleichen Zeit. Einmal mit active:true und einmal mit active:false. Der "true" Eintrag zeigt an, was ab jetzt gilt, und der "false" Eintrag bezeichnet den Status der bis jetzt galt. Wenn man sich ein paar Log Einträge angeschaut hat, versteht man die Logik dahinter recht schnell. Die Liste mit den möglichen Status Codes habe ich mir aus verschiedenen Quellen zusammengesucht. Und sie ist auch noch nicht vollständig. Aber man kommt damit schon recht weit. Einige Texte zu den Fehlercode kann man auch über die API abfragen. Das habe ich jedoch noch nicht genutzt. Hier die Status codes, die Ich bisher kenne (in meinem System bisher gesehen habe): 'A.17', 'Temperatur Hygienefunktion nicht erreicht', 'A.21', 'Maximaldruck überschitten', 'A.66', 'Decodierung Feedbacksignal Umwälzpumpe nicht möglich (Heizkreis 1)', 'A.91', 'Betrieb ohne Außeneinheit (nur Heizstab)', 'F.1007', 'Außengerät verriegelt', 'F.1011', 'Fehler: Hochdrucksensor', 'F.75', 'Kein Volumenstrom', 'F.881', 'Kältekreislauf', 'I.10', 'Laufzeitlimit Warmwasserbereitung', 'I.114', 'SmartGrid Normalfunktion aktiv', 'I.135', 'Abtauung aktiv', 'I.75', 'Inverter: Übertemperatur im internen Leistungsmodul erkannt', 'I.76', '?', 'I.77', '?', 'I.78', 'Inverter: Selbstständige Leistungsreduzierung (Derating)', 'I.79', 'Inverter: Selbstständige Leistungsreduzierung (Derating)', 'I.80', '?', 'I.81', '?', 'I.82', '?', 'S.115', 'Ventil Trinkwassererwärmung' 'S.116', 'Ventil Heizkreis 1' 'S.117', 'Ventil Heizkreis 2' 'S.118', 'Ventil Pufferspeicher / Bypass' 'S.120', 'Normalbetrieb aktiviert (kein Eingriff durch Energieversorger)' 'S.123', 'WP Aus' 'S.124', 'WP Vorlauf' 'S.125', 'WP Heizen' 'S.126', 'WP Kühlen' 'S.127', 'WP Vorbereitung Abtauen' 'S.128', 'WP Abtauen' 'S.129', 'WP Nachlauf' 'S.130', 'Heizstab Aus' 'S.131', 'Heizstab Stufe 1' 'S.132', 'Heizstab Stufe 2' 'S.133', 'Heizstab Stufe 3' 'S.134', '4/3-Wege-Ventil Leerlauf' 'S.135', '4/3-Wege-Ventil Abtauen' 'S.136', '4/3-Wege-Ventil Raumbeheizung/Raumkühlung' 'S.161', 'Befüllung aktiv' 'S.162', 'Entlüftung aktiv' 'S.163', 'Wärmepumpe Systemstatus inaktiv' 'S.164', 'Wärmepumpe Systemstatus Wartung Standby' 'S.165', 'Wärmepumpe Systemstatus Regelung' 'S.176', 'Abtauen angefordert' 'S.217', 'Elektrische Zusatzheizung Phase 1 deaktiviert' 'S.218', 'Elektrische Zusatzheizung Phase 2 deaktiviert' 'S.219', 'Elektrische Zusatzheizung Phase 3 deaktiviert' 'S.60', 'Sommerbetrieb aktiv ' Die Abfrage selber erfolgt über ein PHP script, dass die Daten abholt und dann in die MySQL Datenbank schreibt. Das Script wird über einen Timer aufgerufen. Der 15 Minuten Takt scheint überflüssig eng zu sein, aber mir ist aufgefallen, dass einige Events nach einer Stunde schon nicht mehr in der Event History angezeigt werden. Daher hole ich die Events 4 mal in der Stunde und speichere sie komplett ab. Natürlich werden keine Dubletten erzeugt. Es werden nur die neuen Einträge hinzugefügt. Falls es dich interessiert, schau mal unter https://github.com/ckondodev/vitocal_250A nach. Viele Grüße, Christof
... Mehr anzeigen