Da mir das Ereignisprotokoll mit das Wichtigste am ViGuide war, habe ich mithilfe AI ein Open-Source-Tool entwickelt, das die Events über die Viessmann Developer API wieder zugänglich macht.
ViEventLog ist ein lokaler Webserver mit Timeline-Visualisierung, der zeigt wann eure Anlage heizt, Warmwasser bereitet und wie häufig sie taktet - Informationen die Viessmann
selbst nicht anzeigt.
Installation: Binary herunterladen, entpacken, starten und im Browser http://localhost:5000 öffnen.
https://github.com/mschneider82/vieventlog
Hinweis: Ihr benötigt eine eigene Client-ID aus dem Viessmann Developer Portal. Anleitung steht in der README.
Feedback und Bugs bitte über die GitHub Issues melden.
viel spaß euch, ich freu mich auf eure Testberichte! Man kann auch mehrere Accounts hinzufügen (da Viessman ein 2 Anlagen limit pro account hat), endlich kann ich damit alle event logs meiner 3 anlagen sehen ohne immer den viguide zugang wechseln zu müssen.
NEU: jetzt auch mit DASHBOARD und Einstellmöglichkeiten um div. settings zu ändern!
Dann muss es an der Basic API liegen. Wenn ich das heute checke sehe ich noch genau das letzte Event von meinem Screenshot und alles was danach neu gekommen ist. Ich habe das Gefühl, das die Daten nur einmal abgerufen werden können und da die nicht auf meiner Seite gespeichert werden sind die dann nicht sichtbar. Aktuell sehe ich 82 Events und habe die nur einmal heute abgerufen (gerade eben).
Kann ich mir die Events auch irgendwie runterladen und ganz unprofessionell in eine Excel Tabelle speichern oder so? Ich bin nicht so der Freak mit Automatisieren und co
Nutze den
Button in deinem ViEventLog Tool 👍🏻
Hallo Norbert,
es läuft jetzt in meiner Umgebung (wie beschrieben) einwandfrei. Aus irgendeinem kühlen Grund brauchte ich das Image scottyhardy/docker-wine. Mein Fehler war, dass ich die Notwendigkeit des Mappings von NAS-Verzeichnisses und WORKDIR ( /app) in den erweiterten Einstellungen missverstanden hatte (ich dachte bei der Containeranlage müsste bei Dateipfad das NAS-Verzeichnis, in dem die liegt und in dem Feld rechts daneben die .exe eingetragen werden; erforderlich ist aber die Eintragung des WORDIR (Mount-Verzeichnis für den Container)). Nachdem mir ChatGPT das so erklärt hatte, dass auch ich das verstanden habe, lief es auf Anhieb. Anfängerfehler (war aber auch das erste mal, dass ich mit dem Container Manager und Docker gearbeitet habe).
Falls jemand in der Community den Bedarf hat, die Anwendung auf einer Synology-Datenstation laufen zu lassen und nicht weiß wie, gerne melden, ich helfe gerne (aber selbstverständlich lasse ich Dir den Vortritt).
Alles in Allem hast Du mir mit Deinem Hinweis sehr geholfen - nämlich das es überhaupt geht (sonst hätte ich gar nicht angefangen, es zu probieren). Denn eigentlich ist die Datenstation der richtige Ort, die Anwendung laufen zu lassen, gerade auch für den Zugriff außerhalb des Heimnetzwerkes.
Herzlichen Dank!
Grüße millih2g
Mal eine Frage.
@mschneider82 hat auf meine Anfrage und input hin das hinzugefügt. Vielen Dank noch einmal an dieser Stelle !
Dies ist eine Berechnung auf Basis der Vorlauf- und Rücklauf-Temperaturen, des Volumenstroms und WP-Leistung ausgewiesen durch die API und der spezifischen Wasserdichte bei entsprechender Temperatur.
So oder so ähnlich müsste das auch durch VM passieren (das wird ja auch nicht gemessen, sondern berechnet).
Bei mir - ohne Heizwasserpufferspeicher - gibt es gegenüber der Anzeige am Display der WP bzw. ViCare zu einem Zeitpunkt etwa +- 200 W Abweichung, wobei ViCare tendentiell eher zu viel anzeigt an thermischer Leistung. Und die API zeitlich etwas hinterherhängt, meine ich. Für mich passt das soweit.
Hat jemand bedeutend größere Abweichungen ?
Insbesondere, wenn ein HW-Pufferspeicher integriert ist ?
Es würde m.E. reichen, soweit ViEventLog läuft, das dies alle zwei h passiert, also max. 12 mal pro Tag, die aktuellen Events gelesen werden und in der DB abgeglichen (alles nach dem letzten Eintrag in der DB hinzufügen).
Ist blöde, wenn ViEventLog nicht ständig läuft. Aber dann Pech - was mich auch betreffen dürfte, denke ich, denn iwann klappt das Laptop zu und hat je nachdem auch mal länger Pause.
Hallo,
habe da eine Verständnisfrage.
Ihr schreibt von der Installation des Webservers auf einem NAS oder Raspberry PI oder ähnlichen LINUX System.
Können dann die Events dauerhaft gespeichert werden, trotz der limitierten API ?
Da ja Viessmann die Events nach wenigen tagen löscht, währe das natürlich eine gute Sache die Events alle über Tage oder sogar Wochen zu speichern um Fehler besser lokalisieren zu können.
Es wurde hier bestimmt schon geschrieben, habe aber nicht alle Beiträge genau gelesen, da es nun doch schon sehr umfangreich ist.
@AndyH
In welcher Version ist das verfügbar, 112?
Wird wahrscheinlich nur angezeigt, wenn die ODU läuft.
Im übrigen ist die Anzeige der diversen Temperaturen grundsätzlich sinnfrei, wenn nicht bekannt ist, wo die Sensoren in der Anlage sitzen.
Das hatte ich schon mal geschrieben, interessiert aber offensichtlich niemanden, mit vielen Werten sind alle glücklich.
So ist die Kesseltemperatur belanglos niemand weiss wo dieser Kessel ist.
Und leider, eine Suche über die Beschreibung der API oder der Pläne (Viessmann schematics) führt zu nichts.
Habe mich sehr intensiv damit beschäftigt, denn mit ViEventlog und ein wenig php werden via curl Datensätze mit ausgewählten Werten für diverse grafische Auswertungen erzeugt. So stehen mir neben der Momentaufnahme im Dashboard die Daten über Tage hinweg zur Verfügung.
Soviel habe ich mittlerweile lernen dürfen:
Bei einer Anlage mit Puffer bedient sich die Heizkreispumpe direkt aus dem Puffer. Die IDU ist da nicht mit im Wasserkreislauf (Puffer 400l: Vitovell 100-E, SVPA) eingebunden, insofern sind die Werte von gemeinsamer Vorlauf, Rücklauf und Spreizung für die Beurteilung völlig unbrauchbar, weil die mit dem Heizkreis nichts zu tun haben.
Die Werte Vorlauf/Rücklauf entstehen beim Laden des Puffers und verändern sich nur die normale Abkühlung.
Da entstehen oft Werte die überhaupt keinen Sinn machen, z.B. Spreizung negativ.
Ungeachtet dessen, ViEventlog ist ein absolut super Tool, meine Hochachtung vor mschneider.
gruß rudi
250A13, 400l Puffer, 300L WW, EFH 1993, Wärmebedarf 8kW, ~150qm, 70% Heizkörper, 30% Fussbodenheizung
Naja, die Werte machen schon Sinn, es hängt wohl aber schwer davon ab, welches (Hydraulik-) Schema dahinter steckt.
Das meine ist ja recht einfach - kein HW-Puffer. Daher ist der Sekundärkreis = Heizkreis. Auch für Warmwasser, hierzu schaltet das 4/3 Wegeventil der IDU nur auf den WW-Speicher.
Und die "gemeinsame Vorlauftemperatur" ist bei mir genau das, was in den Heizkreis geht. "Gemeinsam", weil es ja noch den Durchlauferhitzer gibt, der ggf. den Vorlauf noch zusätzlich heizt. Insofern habe ich auch nur einen Rücklauf für alles. Der Kessel ist bei mir gleich dem gemeinsamen Vorlauf, den ignoriere ich.
Deine -1,1K Spreizung scheint ja aus der Rücklauftemperatur und dem Sekundärkreis zu kommen. Das macht keinen wirklichen Sinn, es sei denn der Verdichter läuft gerade nicht. Der Rücklauf würde eher zum Heizkreis passen (zur Puffertemperatur). Und dann sind da zwei Sachen gemischt und passen nicht.
Du hast die Einstellungen gesehen ? Probiere doch mal aus, falls noch nicht geschehen, ob es mit HW-Pufferspeicher besser klappt. Ansonsten muss man eben noch einmal genau in die API schauen, was für features für dein Schema bereitstehen, und da das passende raussuchen, was Matthias dann aufgreifen könnte.
Wenn ich das richtig verstanden habe, fragt das tool nur dann die API ab, wenn dies über den Browser angefordert wird. Ansonsten "ruht" ViEventLog, kann demnach den ganzen Tag laufen, ohne das 1450-Anfragen-Limit / Tag auszureizen.
Ja, aber es werden/können doch da auch keine Events/Daten auf den lokalem NAS aufgezeichnet/gespeichert werden, wenn keine API Abfrage erfolgt?
Richtig, deswegen meinte ich ja, dass es wohl ausreichen würden, vlcht. 12 autom. Abfragen pro Tag einzubauen, um die DB aktuell zu halten. Mehr wird es nicht brauchen, im Prinzip genügen momentaner Stand zwei Abfragen. Ich denke halt auch an die Windows-User, die das Laptop nicht den ganzen Tag mitlaufen lassen (wie meinereiner). Wenn man die Daten im Browser einsieht, und die Events abgefragt werden, kann/sollte man dies direkt auch mit der DB synchronieren, wenn der letzte Eintrag entsprechend alt ist. So in etwa.
@AndyH :
Da helfen auch die Einstellungen nicht.
Woher weis ein Anwender z.B. ob er Primärkreislauf der Lufteintrittstemperatur auswählen soll?
Von was hängt das ab.
Bitte nicht als Antwort, das wurde im Thread diskutiert, das findet man nicht.
Wenn es Splitt oder Monoblock ist, dann sollte das die SW von alleine können.
Woher nimmt das System Vor-/Rücklauf bei Anlagen mit Puffer?
Bei einer Anlage mit Puffer gibt es keine brauchbaren Werte für Vor-/Rücklauf, Spreizung, weil da einfach keine Fühler dran sind. Das Heizkreiswasser kommt an keinem Fühler vorbei.
Die Fühler sind in der Inneneinheit, da fließt das Heizwasser der externen Pumpe nicht.
Eventuell Ausnahme, wenn die ODU aktiv ist, bzw. niedrigere Aussentemperaturen die Pumpe in der IDU einschalten. Könnte aber sein, dass erst mal nur der Puffer in der IDU im Kreis drin ist. Also auch nicht der ext. Puffer. Selbst mit Puffer, sind die Anschlüsse Heizkreis/Laden nicht auf gleicher Höhe und damit Temperaturen nicht dieselben.
Hydraulik eben.
Bei Anlagen mit Mischer oder mehreren Heizkreisen mag das wieder anders sein.
Ich bin da deswegen so hinterher, weil es in Folge der Nutzung von VIeventlog zu Fragen/Threads kommen wird, deren Grundlage angezeigte Werte sind, die nicht passen sind.
Es gibt schon genug Themen, da braucht es nicht auch noch so was.
Bitte: Qualität vor Quantität.
@mschneider82
Derzeit sind die Kacheln mit den Temperaturwerten ziemlich ungeordnet.
Schön wäre es, wenn die funktional sortiert wären:
1. Zeile: Aussentemperatur, Primärkreis, Sekundärkreis
2. Zeile: Solltemperatur, gem. Vorlauf, Rücklauf; Spreizung, die bei Anlagen mit Puffer entfallen kann.
3. Zeile: Warmwasser, Kessel, Puffer
Danke.
Ich wiederhole micht gerne: Bitte erklärt was die Kesseltemperatur ist.
Ein Messwert, dessen Quelle unklar ist, macht keinen Sinn anzuzeigen.
gruß rudi
Hallo Bahni,
ja, das geht. Oben rechts in der Event-Seite auf den Butto "Export Events" klicken. Die vorhanden Events werden als. JASON-Datei heruntergeladen. Wenn Du diese im Windows Text-Editor öffnest (rechte Maustaste, "Im Editor bearbeiten", kannst Du sie über "Datei-->Drucken" entweder ausdrucken oder Du wählst unter "Drucker" --> "Microsoft Print to PDF". Damit kannst Du sie auch als PDF-Datei speichern, je nachdem, was Du mit den Daten vorhast...
Grüße
ab 0.0.113 könnt ihr unter Account Verwaltung die Event Archivierung aktivieren, so könnt ihr euch die Event Historie bewahren. Die Daten werden in einer sqlite3 db file gespeichert und stehen somit auch anderen applikationen zur Verfügung. Man kann auch einstellen wie oft im hintergrund Refresht werden soll und wie lange die Daten in der DB aufbewahrt werden sollen. Eine ungefähre Schätzung der API calls pro Monat durch diese Einstellung wird auch ausgegeben damit ihr eurer API limit im griff habt.
Super Matthias und vielen vielen Dank!
Ich möchte den ViEventLog Webserver auf einen Raspberry PI installieren bin aber nicht der größte Linux Profi...
Wie stelle ich die Archivierung am einfachsten auf dem Raspberry PI ein?
Einfach das Binary auf dem Rasp starten und dann im Browser die Archvierung aktivieren, man muss nur bei Docker Container aufpassen, dass er ein Volume gemountet hat, sonst ist die DB und die config beim nächsten mal wieder weg.
Ich kann die Einstellungen auch mit einen Windows Browser machen wenn ich den ViEventLog Webserver mit http://IP des Raspberry:5000 aufrufe ?
Sehr cool, danke. Ich bin Netzwerktechnisch nicht so versiert wie Ihr aber das hier reicht mir erstmal.
Wie viele Calls kann ich monatlich abfragen, 700?
Würde ich mit dem Savings Assistant von VM womöglich mehr abfragen "spendiert" bekommen?
Hi Rudi,
laut JS Script definition ist Kesseltemperatur =
boilerTemp: find(['heating.boiler.sensors.temperature.commonSupply', 'heating.boiler.temperature.current', 'heating.boiler.temperature']),
Dieses API Feature wird bei Kesselanlagen mit Boiler wie Holzheizung / Pelletheizung (Vitoligno), Gasheizung (Vitodens/Vitocrossal) oder Ölheizung (Vitoladens) verwendet.
Wenn Ihr dieses API Feature auch bei euch habt, siehe
(Setze ViEventLog-IP, installationId & gatewaySerial ein aus http://<ViEventLog-IP>:5000/api/devices)
http://<ViEventLog-IP>:5000/api/features?installationId=<installationId>&gatewaySerial=<gatewaySeria...
Dann habt Ihr auch eine Kesseltemperatur. Warum dann auch immer bei der Vitocall 250 🤷🏻♂️
Bei meiner Sole-Wasser-Wärmepumpe gibt es den nicht. "notConnected"
Und die Sortierung der Temperaturen macht absolut Sinn, wie du sagst. 👍🏻(Gerne hier ein Issue aufmachen)
Bei dem Rest, halte ich mich raus, da hatte ich schon mit AndyH hier ein Intermesso.
Nur soviel, bei meiner Vitocal 333-G Sole-Wasser-Wärmepumpe mit Vitocell 100-W SVW 200L Pufferspeicher für Heizwasser gibt es auch einen Vorlauftemperatursensor (heating.secondaryCircuit.sensors.temperature.supply) und Rücklauftemperatursensor (heating.sensors.temperature.return) im Sekundärkreis für Brauchwassererwärmung (interner 170L Tank) und einen Mischer für Heizwassererwärmung (Pufferspeicher) mit separaten Vorlauftemperatursensor (heating.circuits.1.sensors.temperature.supply), welcher dann aber über den gemeinsamen Rücklauftemperatursensor (heating.sensors.temperature.return) wieder zurückgeführt wird. Sieht man vielleicht so ein bisschen in meinem Schema.
Beim Primärkreis habe ich nur einen Vorlauftemperatursensor (heating.primaryCircuit.sensors.temperature.supply), weshalb bei mir "Temperaturbezeichnung für Primärkreis = Primärkreisvorlauf" passt.
Da gibt es aber noch den (heating.circuits.0.sensors.temperature.supply) Vorlauftemperatursensor was hier denke ich mit Lufteintrittstemperatur gemeint ist. Der ist bei mir aber auch "notConnected"
Genauso die Spreizungsberechnung, hier wird dann bei "Mit HW-Puffer (Sekundärkreis)" die Vorlauftemp (heating.secondaryCircuit.sensors.temperature.supply) genommen und bei "Ohne HW-Puffer (Heizkreis)" die Vorlauftemp aus dem Heizkreis (heating.circuits.0.sensors.temperature.supply) / Fehler müsste es nicht (heating.circuits.1.sensors.temperature.supply) sein @mschneider82 ?
❗Da fällt mir gerade auf, bei mir müsste es (heating.circuits.1.sensors.temperature.supply) sein für 2. Heizkreis ❗🙈
Details dazu im Dashboard JS L1025-L1068.
@mschneider82 wenn
supplyTemp: find(['heating.circuits.0.sensors.temperature.supply']),
für den Sekundärkreis steht, müsste es doch eigentlich
supplyTemp: find(['heating.circuits.1.sensors.temperature.supply']),
sein oder? > L605
Für die Vorlauftemp im Primärkreis nimmst du ja die Variable
primarySupplyTemp: find(['heating.primaryCircuit.sensors.temperature.supply']),
Ich denke bei allen Anlagen da draußen ist circuits.0 für den Primärkreis und circuits.1 für den Sekundärkreis? Nagelt mich aber bitte nicht darauf fest.
Je nachdem wie die Kreise halt angeschlossen sind. 🤔
Gerne verbessern, wenn ich totalen quatsch geschrieben habe, aber wenn dann richtig 😁.
VG 👋🏻
Im Dashboard wird supplyTemp angezeigt als: "Gemeinsame Vorlauftemperatur" L949
Wenn hier Fehler sind bei der Berechnung bitte einzeln genau als issue definieren, das hilft mir den überblick zu halten.
Durch die massive AI Nutzung und vielen Features ist die Code Basis leider etwas komplex geworden, daher ist jetzt Man- Power im testen und Fehlerfindung gefragt. Aber lieber ein paar Fehler als kein Portal
@mschneider82
kein Problem und überhaupt kein Vorwurf 🫶🏻.
Die supplyTemp ist doch hier L605 als heating.circuits.0.sensors.temperature.supply definiert, was bei mir die Vorlauftemperatur für den Primärkreis ist oder m.w. auch "Gemeinsame Vorlauftemperatur".
Dies wird aber in L1053 als supplyValue gemappt und dann in L1056 "spreizung = supplyValue - returnValue" gerechnet für Heizkreis Spreizung (ohne HW-Puffer: Gemeinsame Vorlauftemperatur - Rücklauftemperatur).
Aber sollte das nicht die Vorlauftemperatur aus dem Sekundärkreis sein oder geht es bei Heizkreis Spreizung (ohne HW-Puffer) um den Primärkreis?
Dann würde aber das returnVal = returnTemp: find(['heating.sensors.temperature.return']), aus dem Sekundärkreis nicht passen oder liege ich da falsch?
Man würde ja dann Vorlauftemperatur Primärkreis - Rücklauftemperatur Sekundärkreis rechnen und dann erhält man ja einen minus Wert in der Spreizung, da Vorlauf Primär i.d.R. niedriger als Rücklauf Sekundär. Wie bei @Rudi_
Da würde sich mir der Sinn nicht erschließen. 🤔
Bei mir passt es mit der Spreizung soweit bei meiner Sole WMP, wobei mir da gerade auffällt, dass die Rücklauftemp Primärkreis (primaryReturnTemp) bei mir im Dashboard fehlt 🤔
Die Rücklauftemperatur (returnTemp) oben Rechts ist bei mir ja die gemeinsame Rücklauftemp im Sekundärkreis für Brauchwasser und Heizwasser.
Die Rücklauftemp Sekundärkreis (secondaryReturnTemp) gibt es bei mir nicht.
Das ich beim Primärkreis eine Minus Spreizung habe (16,9 - 18,1 = -1,2) ist ja gewollt bei Sole. Wäre schlimm wenn's im Winter anders wäre 😉
Aber vielleicht liege ich damit ja auch total falsch und warte mal ab, was die Experten hier noch sagen. 😉
Dann gibt's vielleicht auch ein Issue 👈🏻
VG 👋🏻
@ckoeber
Es ist echt traurig über was da diskutiert wird.
Genauso wie bie der Kesseltemperatur wissen anscheinend die Experten/Profis nicht wo die Sensoren für den Sekundärkreislauf/Primärkreislauf und gemeinsamer Vorlauf sitzen. Vom Kessel mal ganz abgesehen.
Irgendwie werde ich das Gefühl nicht los, dass niemand die Anlagen so gut kennt, dass wirklich bekannt ist, wie die API-Bezeichnung der Fühler auf die jeweilige Anlage passt.
Aus meiner Sicht ist es ist schlicht müssig drüber nachzudenken, wie die Spreizung zu berechnen ist, denn es passt nur für einige Sondervarianten.
Genau genommen müsste @mschneider82 für jede Anlage und jedes mögliche Schema der Hydraulik eine Auswahl ermöglichen wie die Spreizung zu berechnen ist (oder eben nicht).
Bei einer 250A mit Heizwasserpuffer geht es mit den zur Verfügung stehenden Werten garnicht.
@mschneider82 ich werde mir nicht auch noch ein github-Account zulegen nur damit der Wunsch für eine Anpassung den starren Weg via github gehen muss. Sorry, dann bleibt es eben so verworren wie es ist.
Oder auch mit den Worten von @AndyH : Den Wert (Kesseltemperatur) schau ich mir nicht an.
Bei meiner 250-A mit Heizwasserpuffer sind fast 50% der Werte mehr oder weniger belanglose Zahlen.
Darauf irgendeine Diskusion bei Problemen mit der Anlage zu basieren, wenig sinnvoll.
Ich hoffe das andere das auch merken und betrachten die Werte nicht als den heiligen Gral.
Auch wenn in der API eine tolle Beschreibung steht, wissen wir noch lange nicht, wo bei den verschiedenen Anlagen der Fühler dafür sitzt bzw. wo der Wert herkommt.
Ich bin selbst seit 40 Jahren in der Hard- und Softwarentwicklung unterwegs, auch OpenSource.
Auf github habe ich gut und absichtlich verzichten wollen/können.
... und trotzdem Danke für dein Engagement und dieses super Tool.
gruß rudi
Das wird hier teilweise sehr technisch.
Ein Großteil der User wird nicht damit nicht klar kommen.
Wie Matthias schon sagt - issue erstellen in Github, da kann man solche Details diskutieren und unter Struktur verfolgen.
Die, die keinen issue erstellen können, können Ihre Beobachtungen hier gerne beschreiben. Je nachdem macht bestimmt einer der Mitleser den Punkt auf und teilt dies dann hier mit, hinterlässt also die Info, dass es gesehen wurde.
Ansonsten ist jedermanns/-fraus Aufgabe, das Tool für sich zu testen und mit den jeweils individuellen Anzeigen von ViCare, soweit Werte dort sichbar sind, zu vergleichen und bei Abweichungen dies gerne mitzuteilen.
An dieser Stelle möchte ich noch einmal betonen, dass Matthias das auf freiwilliger Basis agil, schnell und mit viel Engagement einfach mal so macht.
Dafür verdient er sich höchsten Respekt und unser aller Mitwirkung wo es nur geht, gerade, wenn etwas noch nicht genau zusammenpasst. Und nat. jeglichen Input, denn er hat auch nur eine bestimmte Anlage und macht viel im "Blindflug", z.B. die Vitocharge-Seite, und die ist richtig gut geworden bei dem, was die Basis-API so hergibt.
@mschneider82 vielen Dank für die tolle Arbeit!
@AndyH zu Deiner Frage zur COP Berechnung bei Anlegen mit HeizwasserPufferspeicher. Ich habe einen solchen 1000l Puffer (auch wegen Solarthermie) und bei mir funktioniert die COP Berechnung. Fahre derzeit mit ca. 35° Puffertemp, Volumenstrom 1010l/h bei 25%. Allerdings wird in ViCare eine um ca. 10% niedrigere COP angezeigt. Leider kann ich nicht bestimmen welcher Wert der Realität besser entspricht.
Hi,
Kesseltemperatur ist bei mir identisch mit "Kältekreislauf Verflüssiger" (Home Assist) 222-S E3.16
VG
| Benutzer | Anzahl |
|---|---|
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |