Heizungsdaten auslesen und in SQL schreiben

  • Ich hab ein kleines Projekt angefangen und da hier einige programmiertechnisch gut drauf sind, könnt ihr mir vielleicht helfen.

    Ich habe eine Hargassner Hackgutheizung welche per Telnet angesprochen die aktuellen Werte und Zustände im Sekundentakt in dieser Form ausgibt:

    Code
    pm 1 1.2 7.5 66.9 0 61.8 0 0 0 0 0 0 0 0 13 3 75 0 18 11 140 1000 54.7 58 -3.2 -2.6 72.1 120 60.9 -20 -20 0 -0 0 0 0 0 3 0 0 0 0 97 2 0 109 50.5 0 100 0 0 13 120 26 -20 27.2 28 23.5 16.5 1 1 43.5 45 23.1 12.9 1 1 55.2 55 20 20 1 1 -20 0 20 20 0 1 -20 0 20 20 0 1 -20 0 20 20 0 1 -20 0 20 20 0 1 -20 0 20 20 0 1 21.7 0 76.5 0 -20 0 -20 0 -20 0 0 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68.2 0 90345.8 100 3 3 3 0 1 6 0 0 0 0 0 0 0 0 0 2 0 10 3 0 0 0 55 0 0 49F 1000 7D00 0 0 0 0 200

    nun sollen diese werte abgefangen und in eine SQL geschrieben werden welche diese Struktur hat:


    Das ganze sollte unter Windows laufen (Win Server). Die SQL ist bereits vorhanden und liegt vorläufig auf einem externen NAS zum testen.

    Hat hier jemand einen Ansatz oder Lösung?

    Danke

  • Ich würde das jetzt mit php lösen. Ohne eine Art Interpreter kommst du eh nicht zur Lösung.
    Wie auch immer - warum ist da jetzt Telnet als Schnittstelle gewählt? Canbus oder Modbus sind ja für sowas gemacht.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • Wie könnte das mit php zeitgesteuert laufen zb. Daten im 5 min takt abrufen

    Na, Windows hat seine Aufgabenplanung, alle 5 Minuten als Trigger zum Scriptaufruf wär doch da drin.

    Du musst dich halt nur entscheiden wie Du es machen willst. Wird die Telnet Verbindung automatisch unterbrochen nach der Werteausgabe?

    Code: service.batch
    @echo off
    telnet IP-Adresse -f c:\test.txt
    php scriptname

    würde nun die ausgabe in die Datei test.txt schreiben.
    Und das php script könnte diese Datei dann auswerten und die Daten in mysql schreiben.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • okay dann müsste man den telnet service laufen lassen. im php script kann man dann mit

    $lines = file ('c:\test.txt');
    $letzte_zeile = $lines[count($lines)-1]; 
    die letzte Zeile bekommen. Die kann man dann ja auseinandernehmen anhand der Leerzeichen und danach als Array speichern und in die MYSQL DB eintragen.

    Seh ich so nicht als zu tragisch.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • Ich habe die Auslesegeschichte wie folgt gelöst


    dies funktioniert soweit eigentlich gut. Außer der host / Kessel ist nicht erreichbar (LAN-Kabel abgesteckt, Stromausfall, ...). Dann wird eine leere Zeile (nur Datum Uhrzeit) geschrieben und Grafana hat dann sein Probleme

    kann ich das Script soweit anpassen das leere Zeilen entfernt werden bzw. gar nicht geschrieben werden?

    Original Datenzeile die alle 0,5 Sek. per Telnet kommt

    Code
    pm 1 1.2 7.5 61.4 0 57.3 0 0 0 0 0 0 0 0 10 1 75 0 18 11 140 1000 59.1 58 0.4 -1.7 71.6 120 45.9 -20 -20 1 0 0 0 0 0 3 0 0 0 0 78 2 0 107 50.5 0 100 0 0 13 120 24 -20 26.1 27 23.5 16.5 1 1 44.0 45 23.1 12.9 1 1 54.7 54 20 20 1 1 -20 0 20 20 0 1 -20 0 20 20 0 1 -20 0 20 20 0 1 -20 0 20 20 0 1 -20 0 20 20 0 1 21.4 0 77.0 0 -20 0 -20 0 -20 0 0 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61.0 0 91304.6 100 3 3 3 0 1 6 0 0 0 0 0 0 0 0 0 2 0 10 3 0 0 0 54 0 0 49B 1000 7800 0 0 0 0 200


    Anbei noch meine Umsetzung der Datenauswertung:

    Das Diagramm wird von Grafana erstellt, dazu habe ich ebenfalls eine Frage:

    Die Website läuft auf meinem W10 Server mittels Apache2.4 auf dem üblichen Port 80
    Grafana läuft auf dem Server unter dem Port 3000 und stellt seinen eigenen Webserver

    Was muss im Apache eingestellt werden das Grafana per iframe auf dem Apache Port 80 auch öffentlich angezeigt wird? Ich habe jetzt schon einiges über Reverse Proxy gelesen und probiert, doch nichts funktioniert

  • Das auslesen mach ich jetzt trotzdem mit php. Da hab ich die Daten besser im griff und brauche das WSL nicht zusätzlich bemühen.

    Einzig die Geschicht mit Grafana und Apache konnte ich noch nicht lösen.

    Zufällig einer eine Idee wie Reverse Proxy eingestellt werden muss?

Jetzt mitmachen!

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