Prometheus-Exporter für HDG Bavaria Kessel und Visualisierung in Grafana

Es gibt 20 Antworten in diesem Thema, welches 5.852 mal aufgerufen wurde. Der letzte Beitrag () ist von KaiS90.

  • Um die Daten aus dem HDG Control (XL) unseres HDG-Kessels zu exportieren, habe ich einen Exporter für Prometheus geschrieben, den ich gerne mit euch teilen möchte. Er besteht aus einer Go-Anwendung und läuft am besten unter Linux in einem Docker-Container. Der Exporter ermöglicht es Prometheus regelmäßig die Daten des Kessels abzufragen und zu speichern. Aktuell rufe ich die Daten einmal pro Minute ab.


    Die abgerufenen Daten kann man dann in Grafana visualisieren, Alerts definieren, etc.


    So sieht mein Dashboard aktuell aus:



    Das Programm ist auf Github unter https://github.com/srt/hdg-exporter zu finden und steht unter eine Open-Source-Lizenz, so dass ihr es benutzen, verändern und weitergeben dürft.


    Ich freue mich über Feedback :)


    Die Beiträge von BMOD gehen in eine ähnliche Richtung, seine Lösung habe ich allerdings erst gesehen, als meine schon fertig war (u.a. HDG Bavaria: Auswertung HDG Control (XL) und HDG Bavaria: CSV-Datei in Dashboard mit Grafana importieren). Im Gegensatz zur Lösung über die CSV-Datei werden die Werte vom HDG-Exporter direkt vom HDG Control abgerufen, der Umweg über einen Mailserver entfällt also und die Werte sind nicht erst am Folgetag sondern sofort verfügbar. Die Bezeichnungen der Parameter werden direkt von der Anlage gelesen.

  • Etaminator

    Hat das Thema freigeschaltet.
  • Hallo StefanR,


    die Diagramme schauen gut aus... :thumbup:

    "Früher" ^^ , zu FlammTronik-Zeiten, haben einige mit einem RasPi die FlammTronik über USB ausgelesen und dann mit FHEM eine Seite mit Anzeigen, Grafiken und Diagrammen erstellt. FHEM war mir aber zu aufwendig, ich hatte nur eine ganz einfache Seite mit vielen Werten.


    BMOD schreibt, dass Grafana auf seinen RasPi läuft, würde Prometheus und Grafana auch auf einen RasPi 3 laufen, und macht Grafana eine "Intranetseite" daraus?


    Habe mal deine Diagramme ein wenig angeschaut, fährst Du die Brennraum- und Abgastemperatur absichtlich so niedrig?

    Und der Restsauerstoff ist fast immer über 10 %...


    Gruß

    Alfred

  • Hallo Alfred,


    danke für das Feedback!

    Grafana und Prometheus laufen auch auf einem RasPi 3 mit Linux. Das sollte kein großes Problem sein!

    Prometheus sammelt die Daten ein und speichert sie als Zeitserien, Grafana visualiualisiert das dann, macht also die interaktiven Bilder und die "Intranetseite".


    Brennraum- und Abgastemperatur sind nicht absichtlich so niedrig, und der Restsauerstoff hat ja eigentlich einen Sollwert bei 8%... Wir haben die Anlage seit Anfang des Jahres und bisher ist sie nur vom Heizungsinstallateur eingestellt worden, der sich aber auch nicht so richtig ums Finetuning kümmert. Wenn du da Tipps hast sehr gerne!


    Viele Grüße

    Stefan

  • Hallo Stefan,

    ich vermute mal, dass der Kessel mit der niedrigen Abgastemperatur die 95 kW gar nicht erreichen kann. In der Beschreibung beim 95er steht "Abgastemperatur bei Nennleistung 180°C". Damit Dein Kessel eine höhere Abgastemperatur und den Restsauerstoffsollwert erreichen kann, würde ich sagen, er braucht mehr Futter. Bei meinem Kessel habe ich da noch nichts verstellt, hat alles der Monteur gemacht. Im Bild "Regelung" sind die Einstellungen bei meinem Kessel.

    Wenn Du gefahrlos zum Kaminkopf kommst, kannst Du mal die Abgastemperatur messen, die sollte größer 65°C sein. Bei Deinen 110°C wir das vielleicht eng...

    Gruß

    Alfred

  • Hallo Alfred,


    hier sind unsere Werte. Aktuell ist auch ein zweites vorgesehenes Gebäude noch nicht angeschlossen, weshalb wir die volle Leistung noch nicht brauchen. Die idee mal am Kaminkopf die Temperatur zu messen, klingt gut. Da werde ich mal messen.

    Wie hoch ist die Abgastemperatur bei dir?


    Hier unsere Parameter auch vom Heizungsmonteur:



    Viele Grüße

    Stefan

  • Hallo Stefan,

    die Abgastemperatur ist bei meinem Kessel um die 160°.

    Servus

    Alfred

  • Hallo algoe78,


    das ist keine Frage von brauchen oder nicht, das ist eine Frage von wollen...

    Ein Heizungsbauer stellt eine neue Heizungsanlage hin und schaltet sie ein. Der Heizkörper und das Warmwasser werden warm, der Kunde freut sich und der Heizungsbauer freut sich, dass der Kunde sich freut...

    Mit so einer grafischen Aufbereitung sieht man dann im zeitlichen Verlauf, wo etwas nicht optimal läuft, ober vielleicht sogar ein Fehler eingebaut wurde. Stellt man dann in der Grafik einen längeren Zeitraum ein, kann man einen Trend erkennen, ob etwas schleichend schlechter wird...

    Steht man vor dem Kessel und schaut auf die Anzeige, sieht man nur eine Momentaufnahme.


    Die Visualisierung von StefanR ist toll, aber mich schreckt noch, die Komandozeile in Linux und das alles in englisch beschrieben ist, ab. Ich werde das später mal angehen, schätze, da gehen einige Abende drauf, bis das läuft...

  • Hallo Stefan,


    wie bist du an die Informationen über die HDG-API gekommen? Sind die öffentlich zugänglich? Wenn ja, wäre ich für einen Tipp, wo ich sie finde dankbar.


    Gruß


    Uli

  • Hallo Uli,


    du kannst viel über die API lernen, wenn du einfach die Webanwendung in den Dev-Tools im Browser beobachtest.

    Die IDs entsprechen den dokumentierten Parametern bzw. du findest sie als ids im HTML-Code.


    VG, Stefan

  • Für was ist das gut bzw. für ws bruche ich das?

    Das hat Stuart schon sehr gut erklärt. Für mich war tatsächlich der wesentliche Punkt, dass ich den zeitlichen Verlauf sehen und Trends erkennen wollte.


    Die Visualisierung von StefanR ist toll, aber mich schreckt noch, die Komandozeile in Linux und das alles in englisch beschrieben ist, ab. Ich werde das später mal angehen, schätze, da gehen einige Abende drauf, bis das läuft...

    Um die Kommandozeile werden wir nicht ganz drumrum kommen, aber wenn Interesse besteht könnte ich die Installation auf Raspbian mit docker-compose hier ja auch mal auf Deutsch beschreiben.

  • Hallo Stefan,


    habe mir das nochmal angeschaut... es gibt wahrscheinlich nicht viele, die das ohne Hilfe schaffen UND einen HDG-Kessel haben. Es wäre sicher eine große Erleichterung, wenn Du da eine Anleitung dazu erstellst.

    Da mein "Administrator" momentan keine Zeit hat, wird es aber noch ein wenig dauern, bis ich das mal angehe...


    Gruß

    Alfred

  • Moin Stefan,


    erstmal danke für den Container! Bin seit kurzem auch stolzer Besitzer einer HDG K21.


    ich habe mal versucht deinen Container zum Laufen zu bekommen. Ich würde mich als etwas erfahrenen Docker Nutzer bezeichnen, betreibe selbst ein Smart Home Stack mit einigen Containern. Deinen Container selbst kriege ich noch gebaut, aber sobald ich ihn versuche zum Laufen zu kriegen, kriege ich nur ein permission denied.


    Könntest du eventuell mal ein Docker-Compose Beispiel posten?


    Vielen Dank und viele Grüße

    Christian



    Edit: Sehe gerade, du hast ein Beispiel auf github hinzugefügt. Mea culpa

  • Moin Stefan,


    hat alles super funktioniert. Bin noch dabei dein Dashboard nach meinen Belieben anzupassen, da die K21 doch etwas anders zu deiner Compact 95 ist.


    Ich hatte noch dein altes Dockerfile benutzt, bevor du es aktualisiert hattest und kam da nicht weiter, das war aber auch vor einigen Wochen. Jetzt baut sich der Container auch ordentlich und ich kann ihn in meinem Stack integrieren. Mal sehen, ob ich am Wochenende dann mein Dashboard fertig kriege..


    VG

    Christian

  • Hi StefanR,


    sehr cool gemacht.


    Ich hab noch ein paar Beobachtungen bei mir gemacht. Es sieht so aus als müsste ich das scrape_interval auf 20s und scrape_timeout auf 15s stellen. Ansonsten sehe ich Aussetzer im Verlauf... Das deckt sich auch mit der Beobachtung die ich mit curl gemacht habe. Ein curl Befehl auf den hdg-exporter dauert ca. 8-10 Sekunden und kratzt daher ganz knapp am timeout bzw. liegt manchmal sogar darüber.


    Im Dashboard sieht es dann so aus:


    Viele Grüße


    Edit: Durch das verringern/anpassen der IDs komme ich auf ca. 6-7s. Einige IDs machen bei meinem Scheitholzkessel keinen Sinn, ein paar andere IDs wollte ich noch zusätzlich.

  • Danke für das Feedback und den Pull-Request.

    Ich habe Scrape-Intervall und -Timeout im Sample mal so angepasst, wie ich es bei mir auch benutze: 60 Sekunden Intervall und 30 Sekunden Timeout. Die Auflösung ist damit immer noch ausreichend, man hat etwas Luft und erzeugt auch nicht zu viel Last auf dem WebControl.

  • Hallo,


    vielen Dank für den Docker Container, ich selbst habe für eine SmartHome Software eine Erweiterung geschrieben, um die Wert dort auswerten zu können, finde aber die parallele Visualisierung mit Grafana echt super.


    Weiß jemand von euch, ob es eine ID für den gesamten Pelletverbrauch gibt? Im Webinterface der Heizung konnte ich leider keine ID dazu finden. Auf dem Display der Anlage kann man die Werte allerdings ablesen, deswegen habe ich noch Hoffnung, dass es da auche eine ID zur Aswertung gibt.


    Grüße,

    Kai

  • Hallo Kai,


    für welche SmartHome Software hast du denn die Erweiterung geschrieben?

    Für den Gesamtpalletverbrauch könntest du mal die 21005 probieren.

    Eine Liste der Ids findest du u.a. in https://github.com/srt/hdg-exporter/blob/main/data.json, die Übersetzungen der Texte kannst du vom Web-Interface unter /data/dictionaries/deutsch.json abrufen.

    Code
    {"id":21005,"enum":null,"data_type":2,"desc1":"#TNR_PELLETVERBRAUCH_INSGESAMT","desc2":null,"formatter":"iTONNE"}

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!