VZ als Heizungssteuerung

  • Hallo,


    als Neuling hier möchte ich mich kurz vorstellen.
    Ich bin Student und leidenschaftlicher Bastler. Seit ich die Raspberry Pi seit ca. zwei Jahren habe, habe ich schon diverse Projekte mit ihr ausprobiert und mich über die Zeit immer wieder mit Linux beschäftigt. Ich selbst wohne in einer Mietwohnung im zweiten Stock und komme leider nicht an den Stromzähler dran, trotzdem finde ich das Projekt sehr interessant und habe beschlossen stattdessen die Temperatur in meiner Wohnung zu überwachen. Der Volkszähler auf der Raspberry Pi läuft nun schon stabil seit knapp einem Jahr. Da ich zur Zeit des Aufstellens noch einige NTC Sensoren hier hatte, habe ich ein ADC (MCP3008) an den Raspberry Pi angeschlossen, über ein Python-Skript ausgelesen, einen Mittelwert über 10 Messungen gebildet und über http://localhost/middleware.ph…tion=add&value=temperatur entsprechend in die middleware eingetragen.


    Schon seit längerem kam mir der Gedanke, dass man ein solches System auch prima für eine Heizungssteuerung nutzen könnte. Jetzt über die freien Tage habe ich mich mal auf die Suche nach ähnlichen Prjekten im Internet gemacht. Dabei bin ich auf folgende Seite gestoßen:
    https://notdefine.de/projects.…rung-mit-linux-ubuntu-arm
    Dieses Projekt verwirklicht eine Heizungssteuerung auf der Raspberry Pi mit Website zum ansehen der aktuellen Werte. Die gesamte Heizungssteuerung ist in PHP geschrieben und öffentlich zugänglich. Zusätzlich zur Datenlogfunktion gibt es eine zweite Seite, auf der man Grundeinstellungen, wie Zeiten der Nachtabsenkung, gewünschte Temperatur bei Nachtabsenkung usw. einstellen kann.
    An diesem Projekt gefällt mir jedoch nicht, dass die Grafiken vom Raspberry Pi erstellt werden und fix sind, d.h. zoomen nicht möglich ist. Auch gefällt mir die Flexibilität der Sensoren bei dem VZ, weshalb ich mich dazu entschieden habe, ein ähnliches Projekt mittels VZ zu verwirklichen, da hier die grundsätzliche Benutzeroberfläche wesentlich schöner ist.
    Das Projekt wird bei mir momentan leider nicht an eine echte Heizung angeschlossen werden, da ich wie gesagt zur Miete wohne, aber eventuell wird es eines Tages bei meinen Eltern eingebaut. Es geht vorerst also eher um Erfahrungungen zu sammeln und die Möglichkeiten auszuprobieren.


    Mir ist bewusst, dass der VZ eigentlich als Datenlogger gedacht ist und ein solches Thema eher off-topic anzusehen ist. Mir geht es auch weniger um die konkrete Implementierung sondern ich habe eher einige generelle Fragen.


    Macht es Sinn, eine solche Regelung in PHP zu schreiben und somit direkt vom webserver laufen zu lassen? Generell kann ich bis jetzt noch kein PHP programmieren. Aber da ich bereits projektorientiert Programmiert habe kann ich mir vorstellen es in einer überschaubaren Zeit zu lernen.
    Bis jetzt war meine Idee den VZ möglichst nicht anzutasten und alle Daten über GET bzw. SET urls zu erhalten bzw. zu senden. Dies hab ich auch schon ausprobiert und funktioniert auch wunderbar. Den entsprechenden Code füge ich hier mal an:



    Ein solches Skript könnte dann entweder alle 60 Sekunden ausgeführt werden oder eben 60 Sekunden schlafen, wie hier angesetzt.


    Meine Frage ist nun, führt ein solches Skript zu unnötigen Speicherzugriffen und unnötiger Rechenzeit, da ständig die GET und SET Befehle ausgeführt werden? Wäre es schöner in PHP zu programmieren, da ein direkterer Zugriff auf die Daten möglich wäre?
    Die zweite Frage ist, wie bekomme ich eine config Seite für die Heizungssteuerung am einfachsten hin. Nach einiger Suchherrei sollte es ohne weiteres möglich sein einen Button auf dem Frontend zu plazieren, der auf eine Config Seite weiterleited. Diese Config-Seite könnte die eingestellten Werte in eine Datei schreiben, auf die ich aus dem Pythonskript zugreife. Aber gibt es noch eine elegantere Lösung?


    Ich habe vorhin etwas von Eigenverbrauch bei PV-Anlagen gelesen, welcher vom VZ gesteuert wird. Da soll es eine Datei geben, die das steuert. Kann dazu jemand etwas geneaueres sagen? Das wäre ja eigentlich das, was ich vor habe...


    Ich bin über jeden Ratschlag dankbar

  • Hab ich mir beides angeschaut. Ist beides sehr interessant, aber ich glaube ich bleibe beim vz.


    Werde das frontend um eine weitere Seite erweitern, auf der gewisse vorgabewerte eingetragen werden können. Diese trage ich jeweils auf einen separaten Kanal in die Datenbank ein um sie dann über die get Funktion der Middleware aufrufen zu können. Somit sind die Sollwerte mitgeloggt und können entsprechend am frontend angezeigt werden.
    Vielleicht gibt es ja trotzdem noch Anregungen...