LoxBerry - Statistiken und Graphen der Wärmepumpe Alpha Innotec

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Witte
    Extension Master
    • 30.12.2019
    • 144

    LoxBerry - Statistiken und Graphen der Wärmepumpe Alpha Innotec

    Hi zusammen,

    ich würde gerne ein paar Daten meiner Wärmepumpe (Alpha Innotec - Luxtronik) per Netzwerk auslesen und zu statistischen Zwecken erheben und grafisch aufbereiten. Die Frage ist nur wie genau mach ich das? Wie würdet ihr das machen?

    Bis jetzt weiß ich nicht mal, wie ich an die Daten am besten kommen soll.
    In FHEM gibt es ein Luxtronik2 Gerät - aber keine Ahnung wie man das bedient, ich werde aus der Doku nicht schlau. Vielleicht fehlt mir Basiswissen wie man Daten liest und irgendwo hinschreibt wo es dann ein Plot-Programm aufnehmen kann.

    Stats4Lox hört sich auch sehr gut an, leider noch in der Alpha, es gibt keinen Downloadlink um es trotzdem zu installieren: https://www.loxwiki.eu/display/LOXBERRY/Stats4Lox
    Wenn ich das richtig verstanden habe, brauch ich aber dann immer noch den Weg wie die Daten ins Loxone kommen.

    Viele Grüße
  • verdammt
    LoxBus Spammer
    • 27.08.2015
    • 260

    #2
    Hi, ich mache das ganze mittlerweile mit mit NodeRed und einem DockerImage mit Grafana und einer InfluDB.
    Das läuft auch sehr stabil bisher
    Im NodeRed nutze ich das Luxtronik2 von Coolship da man damit auch Daten schreiben kann in die WP.

    Hier dazu noch was aus dem Forum, da gibt es eine PicoC für die WP zu lesen und Infos wegen NodeRed und Grafana.
    Auf mehrfachen Wunsch hier der Programmcode, welchen ich leicht modifiziert (Tipp-Fehler entfernt, Code stammt aus dem "alten" Loxone Forum) verwende




    Im Anhang mal ein Bild wie das dann so aussieht im Grafana.

    Grüße
    Markus
    Angehängte Dateien
    Grüße Markus
    __________________________________________________ ________
    1 Miniserver GEN 2, 6 Extension, AirBase, Tree, Loxberry
    SONOFF 4CH für Garten. MS4Home

    Kommentar

    • maxw
      Lox Guru
      • 25.08.2015
      • 1336

      #3
      Ich mache das mittels Node Red, Influx DB und Grafana. Da bekommt man dann so schöne Auswertungen wie das hier.

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2020-02-15 09.11.46.png
Ansichten: 1255
Größe: 214,1 KB
ID: 235503

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6247

        #4
        Ja, auch ich bin komplett auf dieses Gespann umgestiegen.
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Witte
          Extension Master
          • 30.12.2019
          • 144

          #5
          ​ Hi zusammen,

          danke für eure Infos! Hab mich durch den Thread gearbeitet und hab mich an die Anleitung von @Buoni aus Post #33 und Post #34 im oben verlinkten Thread gehalten und es auf den Raspberry Pi 4 (mit loxberry natürlich) adaptiert.
          Hierzu hab ich Grafana nach dieser Anleitung installiert: https://www.circuits.dk/install-graf...xdb-raspberry/
          Und influxDB inkl. einrichten der DB "heatpump" nach dieser Anleitung: https://pimylifeup.com/raspberry-pi-influxdb/
          Hab also folgende Sequenz in node-red:
          Code:
          [{"id":"402fd073.84b1b","type":"inject","z":"d4ca83 8b.957a9","name":"every 10s","topic":"","payload":"","payloadType":"date", "repeat":"10","crontab":"","once":false,"x":130,"y ":120,"wires":[["5cd745c.6511abc"]]},{"id":"5cd745c.6511abc","type":"Luxtronik2","z": "d4ca838b.957a9","host":"192.168.88.11","port":821 4,"password":"999999","x":320,"y":120,"wires":[["26407efe.5644e2","c223d04b.67801","698bfab9.9675e 4","d1ae6276.be43f","c7d064b4.2aca78","cc087b94.aa ea28"]]},{"id":"26407efe.5644e2","type":"function","z":"d 4ca838b.957a9","name":"proccess temperature data","func":"var data = msg.payload;\nvar result = {};\n\nfunction sanitize(s) {\n s = s.replace(\" \", \"-\");\n s = s.replace(\",\", \".\");\n return s;\n}\n\nfor(var t in data[\"Informationen\"][\"Temperaturen\"]){\n result[sanitize(t)] = parseFloat(data[\"Informationen\"][\"Temperaturen\"][t]);\n}\n\nmsg.payload = result;\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":120,"wires ":[["df3757b3.e885d8"]]},{"id":"c223d04b.67801","type":"debug","z":"d4ca8 38b.957a9","name":"","active":false,"console":"fal se","complete":"false","x":570,"y":60,"wires":[]},{"id":"df3757b3.e885d8","type":"influxdb out","z":"d4ca838b.957a9","influxdb":"6850184.a7a0 fe8","name":"","measurement":"temperatures","x":98 0,"y":120,"wires":[]},{"id":"698bfab9.9675e4","type":"function","z":"d 4ca838b.957a9","name":"proccess input data","func":"var data = msg.payload;\nvar result = {};\n\nfunction sanitize(s) {\n s = s.replace(\" \", \"-\");\n s = s.replace(\",\", \".\");\n return s;\n}\n\nfunction parse(v) {\n if(v === \"Ein\") {\n return 1;\n } else if(v === \"Aus\") {\n return 0;\n } else {\n return parseFloat(v);\n }\n}\n\nfor(var t in data[\"Informationen\"][\"Eingänge\"]){\n if(t != \"Durchfluss\") {\n result[sanitize(t)] = parse(data[\"Informationen\"][\"Eingänge\"][t]);\n }\n}\n\nmsg.payload = result;\nreturn msg;","outputs":1,"noerr":0,"x":600,"y":180,"wires ":[["87f3665c.01c478"]]},{"id":"87f3665c.01c478","type":"influxdb out","z":"d4ca838b.957a9","influxdb":"6850184.a7a0 fe8","name":"","measurement":"inputs","precision": "","retentionPolicy":"","x":960,"y":180,"wires ":[]},{"id":"d1ae6276.be43f","type":"function","z":"d4 ca838b.957a9","name":"proccess output data","func":"var data = msg.payload;\nvar result = {};\n\nfunction sanitize(s) {\n s = s.replace(\" \", \"-\");\n s = s.replace(\",\", \".\");\n return s;\n}\n\nfunction parse(v) {\n if(v === \"Ein\") {\n return 1;\n } else if(v === \"Aus\") {\n return 0;\n } else {\n return parseFloat(v);\n }\n}\n\nfor(var t in data[\"Informationen\"][\"Ausgänge\"]){\n if(!t.startsWith(\"seit\")) {\n result[sanitize(t)] = parse(data[\"Informationen\"][\"Ausgänge\"][t]);\n }\n}\n\nmsg.payload = result;\nreturn msg;","outputs":1,"noerr":0,"x":600,"y":240,"wires ":[["b45745a3.c3f958"]]},{"id":"b45745a3.c3f958","type":"influxdb out","z":"d4ca838b.957a9","influxdb":"6850184.a7a0 fe8","name":"","measurement":"outputs","precision" :"","retentionPolicy":"","x":960,"y":240,"wires ":[]},{"id":"c7d064b4.2aca78","type":"function","z":"d 4ca838b.957a9","name":"proccess output data","func":"var data = msg.payload;\nvar result = {};\n\nfunction sanitize(s) {\n s = s.replace(\" \", \"-\");\n s = s.replace(\",\", \".\");\n return s;\n}\n\nfunction parse(v) {\n return parseFloat(v);\n}\n\nfor(var t in data[\"Informationen\"][\"Betriebsstunden\"]){\n if(!t.startsWith(\"Laufzeit\")) {\n result[sanitize(t)] = parse(data[\"Informationen\"][\"Betriebsstunden\"][t]);\n }\n}\n\nmsg.payload = result;\nreturn msg;","outputs":1,"noerr":0,"x":600,"y":300,"wires ":[["94e825ea.3ea0f8"]]},{"id":"94e825ea.3ea0f8","type":"influxdb out","z":"d4ca838b.957a9","influxdb":"6850184.a7a0 fe8","name":"","measurement":"operating-hours","precision":"","retentionPolicy":"","x":990 ,"y":300,"wires":[]},{"id":"cc087b94.aaea28","type":"function","z":"d 4ca838b.957a9","name":"proccess output data","func":"var data = msg.payload;\nvar result = {}\n\nfunction sanitize(s) {\n s = s.replace(\" \", \"-\");\n s = s.replace(\",\", \".\");\n return s;\n}\n\nfunction parse(v) {\n return parseFloat(v);\n}\n\nfor(var t in data[\"Informationen\"][\"Wärmemenge \"]){\n result[sanitize(t)] = parse(data[\"Informationen\"][\"Wärmemenge \"][t]);\n}\n\nmsg.payload = result;\nreturn msg;","outputs":1,"noerr":0,"x":600,"y":360,"wires ":[["704c0b77.c0f574"]]},{"id":"704c0b77.c0f574","type":"influxdb out","z":"d4ca838b.957a9","influxdb":"6850184.a7a0 fe8","name":"","measurement":"heat-quantity","precision":"","retentionPolicy":"","x": 980,"y":360,"wires":[]},{"id":"6850184.a7a0fe8","type":"influxdb","z":"" ,"hostname":"127.0.0.1","port":"8086","protocol":" http","database":"heatpump","name":"","usetls":fal se,"tls":""}]
          Ich bekomme leider ebenso wie ein anderer User im anderen Thread folgende Fehlermeldung in node-red:
          Error: A 400 Bad Request error occurred: {"error":"unable to parse 'temperatures': missing fields"}



          Die Datenbank heatpump ist eingerichtet in influx, könnt ihr mir hier bitte weiterhelfen?

          Danke
          Zuletzt geändert von Witte; 18.02.2020, 11:55.

          Kommentar

          • Witte
            Extension Master
            • 30.12.2019
            • 144

            #6
            So, kurzes Update.
            Die Funktionsblöcke in node-red musste ich komplett anpassen, da meine Wärmepumpe die Benennung anders macht.
            Mittlerweile hab ich alle Werte in der InfluxDB und konnte das erste Dashboard erstellen.

            Aus Loxone werde ich jetzt auch nach und nach alles über virtuelle Ausgänge nach außen (node-red) leiten.
            Es gibt zwar eine API von Loxone über die man zugreifen könnte aber Push ist besser als Polling in Bezug auf Läßt auf dem Miniserver

            Zwei Probleme habe ich aber weiterhin:

            In Grafana bekomme ich nach ein paar Minuten immer den Hinweis "Unauthorized" und werde aus der GUI geworfen und muss mich neu einloggen. Kennt ihr das?
            Bis jetzt hab ich keine Anpassungen an der config.ini gemacht.

            Zweites Problem: Node-red meldet sporadisch in den InfluxDB Bausteinen, dass der Zugriff nicht geklappt hat. "Host not found". InfluxDB liegt aber auch auf dem Raspberry.
            Als erstes werde ich mal schauen ob localhost oder 127.0.0.1 als DB Host einen Unterschied bringt...

            Viele Grüße
            Zuletzt geändert von Witte; 20.02.2020, 13:00.

            Kommentar


            • maxw
              maxw kommentierte
              Kommentar bearbeiten
              Man kann für Grafana einen Anonymen Zugrifff einrichten, habe ich aber noch nicht probiert

              InfluxDB läuft nun ein gutes Jahr bei mir, auch am LoxBerry. Node Red hatte noch nie ein Zugriffsproblem

            • verdammt
              verdammt kommentierte
              Kommentar bearbeiten
              Also sowas habe ich bisher noch nicht gehabt, das ganze läuft jetzt knapp 1 Jahr auf dem Loxberry bzw. dort das NodeRed, Grafana und die InfluDB laufen auf einer Synology DiskStation.
          • Witte
            Extension Master
            • 30.12.2019
            • 144

            #7
            Ich hab auch schon überlegt, ob ich die InfluxDB auf die Synology packe (wegen IO Belastung der SD Karte im PI). InfluxDB wird aktuell noch nicht als Dienst angeboten, hab nur gesehen, dass es wohl einen Dockercontainer gibt.

            Kommentar

            • Michi-43534
              Azubi
              • 19.09.2022
              • 2

              #8
              Hallo Zusammen,

              ich wollte eine Rat erhaschen. Ich suche die Beste Möglichkeit Stromzähler via IR-Lesekopf auszulesen, sowie 3x S0 Strom, 1x S0 Wasserzähler und meine Wärmepumpe (NodeRed) und dies dann zu loggen und zu visualisieren.

              Das Setup mit InfluxDB und Grafana als Docker auf der Synology klingt gut.
              Die Frage ist wie ich die verschiedenen Daten auf die InfluxDB schicken soll in Zukunft.

              Folgendes Setup:
              KNX mit EIBPort
              Synology NAS DS220+ (INTEL Celeron J4025, 2 Kerne, 2Ghz, 10GB Ram)
              PI4 (noch nicht in use) eigentlich ursprünglich gedacht für IR-Lesekopf und S0 Auswertung mit Volkszähler.
              Alpha Innotec WZS 62H3M Sole-Wasser Wärmepumpe mit Bohrung

              1x ISKRA MT175 Haus mit Eltako S0 Zwischenzähler für:
              - Haus
              - Großverbraucher/Küche
              - 19" Rack und Büro (Home Office)
              1x ISKRA MT175 Wärmepumpe
              1x Wasserzähler über Impulszähler via Laser mit S0 Ausgang (noch offen)

              Die S0 sind aktuell an den EIB Port angeschlossen (könnte ich ggf. aufs Netzwerk legen zum auslesen), Die ISKRA Zähler sind noch nirgends eingebunden.
              Gibt über den PI eine gute Anleitung für NodeRed https://odwquad.de/smartmeter-mit-ra...i-und-nodered/

              Der Flow wäre die Daten via USB IR-Lesekopf (MT175 Stromzähler), Ethernet (Wärmepumpe, Eibport 4x S0 Werte Strom und Wasser) über NodeRed einzulesen (PI oder Docker) und dann via InfluxDB und Grafana im Synology Docker zu speichern und zu visualisieren.

              Lohnt sich der PI für NodeRed oder ist das nur eine extra Zwischenstation die man sich sparen kann? Habe noch eine extension für den PI mit S0 via Optokoppler. Aber da die S0 jetzt eh auf dem EibPort liegen wozu nochmal im PI einlesen.
              Habe gelesen das NodeRed nicht vollumfänglich im Docker läuft.
              Node-RED lässt sich auf zwei verschiedenen Wegen auf einer Synology Diskstation betreiben. Neben der manuellen Installation über SSH kann Node-RED auch via Docker auf der Diskstation laufen.


              Ich wollte einfach mal schauen was Ihr meint und ob ich hier im richtigen Forum fragen. Bisher hat mich Google nicht viel weiter gebracht.
              Ein wenig macht mir auch die Performance des DS220+ Sorgen wenn dann drei Container mit UniFi Controller, Influxdb und Grafana laufen.

              Liebe Grüße
              Michi


              Kommentar

              • Witte
                Extension Master
                • 30.12.2019
                • 144

                #9
                Ich würde NodeRed auf dem RPi installieren, da du den einfacher da platzieren kannst, wo deine Leseköpfe sind.
                NodeRed läuft bei mir auf dem RPi in nem Docker, bisher ohne Probleme. Schickt die Daten dann ans NAS in die InfluxDB (Docker)
                Grafana (auch Docker) läuft wieder auf dem Raspberry 4. Läuft da performanter als auf einem NAS (meiner Meinung).
                Unifi läuft auch im Docker auf dem Raspberry
                Den Raspberry kannst dann auch noch für pi-hole und pivpn verwenden, dann kannst von den Handys unterwegs per Wireguard auch noch deine pi-hole Firewall verwenden.

                PiHole im Docker auf der Synology geht übrigens nicht, da das Synology Docker kein IPv6 kann.

                Kommentar

                • Michi-43534
                  Azubi
                  • 19.09.2022
                  • 2

                  #10
                  Hi, danke für die schnelle Reaktion! Über pi-hole oder ad guard hatte ich ehrlich gesagt auch schon nachgedacht. Mein 19" Rack hängt direkt neben dem Zähler und Verteilerschrank und die Wasseruhr ist da auch. Das scheint ein etwas größeres Projekt zu werden Ja die Performance wäre denke ich von der Gewichtung am größten. Obwohl alles in einem System halt auch schön wäre. Unifi läuft sauber auf dem NAS bis dato. Was für ein OS hast du auf dem RPi4 laufen?

                  LG

                  Kommentar


                  • Witte
                    Witte kommentierte
                    Kommentar bearbeiten
                    Loxberry natürlich
                Lädt...