Kleine Heizungsüberwachung per Piface

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi,
    zu meinem Problem, meine Gasheizung spinnt gelegentlich, der Monteur findet den Fehler nicht wirklich und deshalb brauche ich eine kleine Überwachungsanlage die nur zwei Funktionen erfüllen muss. Da die Heizung nicht im ständigen Zugriff ist (im Dachboden, muss immer durch vermietete Räume), habe ich mir schon ein Kabel herunter gelegt mit zwei Glimmlampen die zum Einen angehehen wenn die Flamme brennt, die zweite geht an wenn die Heizung in Störung läuft. Die Glimmlampen sind über einen Optokoppler getrennt an einem Transistor, der den Kollektor von High auf Masse zieht, wenn die Lämpchen leuchten.
    Was soll das Programm können:
    Die Zwei, "ich nenne sie mal Ports", sollen überwacht werden. Springt die Flamme an, soll Datum und Uhrzeit erfasst werden, ebenso wenn sie wieder aus geht (Port1).
    Springt die Störungslampe an (Port2), soll Datum und Uhrzeit erfasst werden, nach 10sec Wartezeit soll ein Relais schalten und die Störung quittieren (über einen Schaltkontakt), Störungslampe geht wieder aus, Datum und Uhrzeit erfassen. Das Ganze sollte in einer Datenbank geloggt werden und als Graph in eine Webseite geschrieben werden.
    Die Sache mit Datenbank und Webseite habe ich mir schon in dem Projekt "1-Wire Sensor mit Datenbank" angesehen, da könnte man sicher Einiges übernehmen. Wo ich mir nicht sicher bin, wie würde man die Überwachung angehen, muss man soetwas über Interrupt Steuerung machen oder kann man das als "normale Schleife" programmieren?
    Später könnte man noch Temperaturen mit erfassen, ist aber erst mal nicht geplant.

    Bin leider blutiger Anfänger in solchen Dingen, daher meine Frage? Hat jemand etwas Ähnliches schon umgesetzt oder kann mir Tipps geben? Bin für alle Hilfe dankbar.
    Gruß Pit

    Einmal editiert, zuletzt von pitdahl (5. Mai 2014 um 11:23)

  • Wie alt ist die Anlage? Schon mal die Zündelektroden getauscht? War der Tipp den mir der Kundenservice gegeben hat, nachdem ich alles beschreiben hatte (Hört sich bei dir ähnlich an) Meinen Monteur, darauf angesprochen, meinte: "Nö Zündelektrode, kann es nicht sein. Hab ich überprüft ist so gut wie neu!" Was folgte war ein wildes auseinanderbauen der Anlage, mit dem Ergebnis, das es angeblich eine Steuerplatine sein sollte. Angebot darüber war ein horende Summe, weil die mir eine komplette Steuereinheit mit Gehäuse, Schläuchen und was nicht alles verkaufen wollten. Ich habe mir dann selber die Platine einzeln bestellt ( Faktor 10 günstiger). Ergebnis war aber komischer weise nicht besser - ich kürz mal ab - es waren die Zündelektroden für 10,-€ inkl. Versand. Eingebaut habe ich die selbst ( benötigtest Wissen: Wie man ein Schraube löst). Den Ventilator, der mir der Monteur ebenfalls nach dem Ein- und Ausbau der Art angeschlossen hat, dass sich die Heizung anhörte wie ein Panzer auf Ecstasy im Tank, hab ich auch korrigiert. Obwohl der Monteru ja sagt das das alles richtig ist....
    Und das war nicht der erste Monteur, der mir sinnlose Reperaturen erzeugt oder aufschwatzen wollte und ich es dann doch alles selbst gemacht hab.
    Lange Rede gar kein Sinn, ich würde ehr versuchen die Heizung zu reparieren. Also die Ursache beseitigen als ein Workaround basteln, der nur die Symptome unterdrückt...

    Schon mal geschaut welche Schnittstellen deine Heizung bietet? Meine kann ich via einfachen Ein/Aus Thermostat schalte - ansteuerung via Pi sollte da ganz einfach sein und ich habe noch nen Anschluss für einen "Regler" Da müsst man natürlich wissen was da rein bzw. rausgelesen wird - Aber an den Punkten würde ich ansetzen. Vielleicht hast du ja an deiner Anlage ähnliche (oder bessere) Schnittstellen, wo das Auslesen einer Störung und das Beheben - meinet wegen auch via PI -
    einfach zurealisieren ist.


    GRuß Lunepi

    Nachtrag: Und du hörst dich nicht gerade so an als könntest du nicht mit einem Schraubendreher umgehen.

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

    Einmal editiert, zuletzt von Lunepi (25. April 2014 um 09:07)

  • Hi Lunepi,
    danke schon mal für die Antwort. Die Zündelektroden sind schon getauscht, war auch eine von vielen Ideen des Monteurs, die alle nichts gebracht haben. Habe dann noch mal einen "privaten Monteuer" da gehabt, der hatte schon mal mehr Plan. Haben es eigentlich schon soweit eingekreist, das es entweder der Hochspannungstrafo oder die Gasventilmimik ist.(Die kostet allerdings reichlich) Das konnte man über einen "Art Fehlercode" an einer Walze ablesen. Habe nun schon 1000 Euronen reingesteckt (Tausch Zündelektroden, Kondensator am Lüfter, Umwälzpumpe, Elektronikblock, Druckausgleichsbehälter) Problem bleibt, das die Anlage immer wieder mal in Störung läuft (Was vor den Reparaturen nicht der Fall war grrr), die ich aber durch einen Reset weg bekomme, dann läuft sie erst mal wieder. Um der Störung besser auf den Grund zu kommen, möchte ich deshalb die Überwachung starten.

    Leider hat die Heizung keine Schnittstellen, zu alt (20 Jahre alter Mirola Gasbrenner) Deshalb habe ich mir einfach ein Kabel an die Anzeigelampen am Brenner angeklemmt, da es allerdings "Glimmlämpchen" sind (230V) musste ich via Optokoppler die beiden "Ports potentialfrei" machen und habe somit meine eigene "Schnittstelle :-)"
    Habe also Port1: Flamme an (low) aus (high), (Eingang 1)
    und Port2 Störung an (low) aus (high), (Eingang 2)
    Diese gilt es zu überwachen und in die DB einzutragen und via Relais den "Störungsknopf" zu betätigen,
    (Ausgang 1)
    Gruß
    Pit

    P.S. Und DSu hast natürlich Recht, Reparatur wäre besser, durch die Überwachung möchte ich aber auch feststellen zu welchen Zeiten die Störung auftritt zwecks besserer Fehlersuche und interessehalber möchte ich auch mal sehen wann und wie oft der Brenner so startet :)

    Einmal editiert, zuletzt von pitdahl (25. April 2014 um 10:14)


  • Keine Datenbank, keine graphische Oberflaeche, aber ansonsten koennte es passen:

    GPIO-Pin ueberwachen und loggen

    Falls es so passt: bitte testen und hier melden ;)

    Den Alarm-Eingang noch dazu zu bauen ist nicht weiter schwierig, das Script kann gleich
    als Vorlage dienen.

    Hallo Tell,
    danke für den Link, der kann schon mal als Vorlage dienen. Ich werde das aber wohl in python versuchen zu realisieren, aber die Schleife werde ich mal als Vorlage nehmen. Da ich den Pi mit dem Piface bestückt habe, da sind ja schon zwei Relais drauf, muss ich das eh etwas anpassen.
    Werde mich wieder melden sobald die erstenGehversuche gemacht sind und dann den Code hier mal reinstellen.

    Danke
    Gruß Pit

  • Hallo Tell,
    habe mir nun den Code mal angesehen und als "Ideen Vorlage" genutzt. Mein erstes Programm läuft nun, (in Python Code) allerdings erstmal ohne Web und Datenbank, einfach die Überwachung mit Logging in eine Datei.
    Hier der Code

    Wenn ich wieder Zeit habe sollen die Webseite und Datenbank dazu kommen,
    Gruß Pit


  • Und jetzt noch vom Beispiel den Pfad fuer das Logfile uebernehmen: /var/www/log.txt

    Das liegt im Verzeichnis des Webservers und kann deshalb mit einem Browser angesehen
    werden.

    Ein Webserver muss natuerlich installiert sein, aber das ist keine grosse Sache.

    Hallo Tell,

    guter Tipp. Habe nun die Variable der Logdatei geändert in

    Code
    config_file = '/var/www/heizung/heizung.txt'


    heizung.png
    und kann sie nun im Webbrowser sehen. Ich habe nun auch ein kleines show.php erstellt, um den Status der Überwachung darzustellen und später eine grafische Statistik anzeigen zu können.
    [code=php]
    <html>
    <head>
    <title>Heizungsüberwachung</title>
    </head>
    <body>
    <body bgcolor='#ffffdd'>
    <font face='verdana' color='#000000'>
    <left>
    <h1>Heizungs&uuml;berwachung</h1><p>
    <hr>
    </left>
    <?php
    date_default_timezone_set('Europe/Berlin');
    echo "<p>Zeit: " . date("T D d.m.Y H:i:s") . "</p>";
    $brenner="#FFFF00";
    $fehler="#00FF00";
    ?>
    <hr>

    <table border=1 bgcolor="<?php echo $brenner;?>" >
    <tr><th width=150px> FLAMME</th>
    <th width=400px bgcolor=FFFFFF>Flamme aus gr&uuml;n, Flamme an rot</th>
    </tr></table><p>

    <table border=1 bgcolor="<?php echo $fehler;?>">
    <tr><th width=150px> ST&ouml;RUNG</th>
    <th width=400px bgcolor=FFFFFF>Heizung ok gr&uuml;n, St&ouml;rung rot</th>
    </tr></table><p>

    <font size='2'><p>
    <b><a href='http:/heizung/show.php'>Aktualisieren</a></b><p>
    <b><a href='http:statistik.php'>Statistik</a></b><p>

    </body>
    </html>
    [/php]
    Hier habe ich noch ein Problem, ich würde gerne die Statusänderungen im Webbrowser aktualisieren, sprich die Farben der Tabellenzelle "FLAMME" und "STöRUNG" entweder rot oder grün einfärben über die Variablen "brenner und fehler".
    Wie kann ich nun aus dem Python Programm (heizung.py) die (show.php) aufrufen und die Variablen brenner und fehler übergeben?
    Kann mir dazu jemand einen Tipp geben? Ist das möglich?
    Gruß Pit

    Einmal editiert, zuletzt von pitdahl (7. Mai 2014 um 08:31)

  • > Wie kann ich nun aus dem Python Programm (heizung.py) die (show.php) aufrufen
    > und die Variablen brenner und fehler übergeben?
    Gar nicht.

    Aber das PHP-Script kann das Log lesen und den letzten Status im Log suchen. Das
    muesste der aktuelle Status sein.

    Wenn's dann noch dynamisch sein soll, braucht es AJAX, aber das wuerde ich erst
    mal lassen ;)

    > Ist das möglich?
    Sicher.

  • Zitat von pitdahl


    meine Gasheizung spinnt gelegentlich, der Monteur findet den Fehler nicht wirklich und deshalb brauche ich eine kleine Überwachungsanlage


    Als Gebäudetechniker sage ich mal, du benötigst einen kompetenten Monteur, keine Überwachungsanlage.


  • Als Gebäudetechniker sage ich mal, du benötigst einen kompetenten Monteur, keine Überwachungsanlage.

    Flyppo was soll so ein dummer und überflüssiger Post??? Wenn ich Tipps zur Heizungsreparatur wollte, würde ich sicher nicht in diesem Forum posten. Es geht mir um das Programmieren des PIs und darum mich mit der Technik zu beschäftigen. Mit der Heizung habe ich eine Anwendung die ich mit Hilfe des PIs überwachen möchte, ob die nun heil oder defekt ist. Ist sozusagen mal ein Einstiegsprojekt was erweitert werden wird. Z.B. Mailbenachrichtigung falls mal eine Störung auftritt, sei es in der Heizung oder anderer Technik im Haus. Ausserdem hilft die Überwachung die Zeiten festzustellen, wann ggf. eine Störung auftritt.
    Solltest Du also noch Hinweise und Tipps zu dem Programm haben, gerne schreiben, ansonsten brauch ich das nicht, danke.

    Hi Tell,
    die Idee, das aus dem Log zu lesen wäre eine Möglichkeit.
    Meine Idee war nur die, aus dem Hauptprogramm (heizung.py) die show.php aufzurufen wenn eine Statusänderung auftritt. und die Variablen zu übergeben. Leider bin ich programmiertechnisch noch sehr am Anfang. Allerdings würden beide Möglichkeiten nicht das erfüllen, was mir vorschwebt. Da selbst beim Update der Statusinformation die Webseite ja nicht aktualisiert wird, erst beim neuen Aufrufen oder beim Aktualisieren. Da würde sicher nur eine dynamische Webseite helfen, die sich selbst aktualisiert wenn ich das richtig blicke.
    Eine dynamische Webseite mit Ajax wäre mir aber auch noch zu "hoch".
    Aber eins nach dem anderen.
    Das nächste wird dann wohl erstmal das Einbinden der Datenbank als Ersatz der Logdatei.
    Wenn man nur mehr Zeit hätte :)
    Gruß Pit

    Einmal editiert, zuletzt von pitdahl (6. Mai 2014 um 22:24)

  • Zitat von pitdahl


    Flyppo was soll so ein dummer und überflüssiger Post???


    An einer Gasheizung rumzufriemeln ist dumm. Allein aus dem Sicherheitsaspekt muss man (ich) darauf hinweisen, also nicht überflüssig.
    Gruß

  • > die Idee, das aus dem Log zu lesen wäre eine Möglichkeit.
    Den aktuellen Status vom Python in ein File schreiben zu lassen
    waere noch besser.

    Eine Ziffer wuerde reichen:
    0 -> kein Eingang aktiv
    1 -> Brenner
    2 -> Stoerung
    3 -> Brenner und Stoerung

    > Meine Idee war nur die, aus dem Hauptprogramm (heizung.py) die show.php
    > aufzurufen wenn eine Statusänderung auftritt.
    Ich sag's nochmals, diesmal lauter: NEIN !

    Das File muss vom Browser abgerufen werden, sonst sieht der User den
    Status nicht.

    > Allerdings würden beide Möglichkeiten nicht das erfüllen, was mir vorschwebt.
    Aber es waere immerhin schon was ...

    > Eine dynamische Webseite mit Ajax wäre mir aber auch noch zu "hoch".
    Eben, das kann spaeter noch gemacht werden.

    > Das nächste wird dann wohl erstmal das Einbinden der Datenbank als Ersatz der Logdatei.
    Und warum eine DB ?

  • Hi Tell,

    das mit den Ziffern hatte ich mir auch schon gedacht, wäre sicher erstmal eine Lösung.

    Das Aufrufen aus dem Hauptprogramm geht nicht, verstanden :) Wäre auch vorerst nicht so schlimm die Webseite nicht dynamisch zu haben.

    Mit der Datenbank ist eigentlich auch oversized, aber da ich mich in die Materie nach und nach einarbeiten möchte, will ich mich da auch ran trauen. Ist halt einfach das Interesse an dieser Materie auch wenns nicht nötig wäre.

    Bin jetzt aiuch parallel dabei mir Python PDFs durchzuarbeiten. Habe gerade das "byteofpython_1_20_2 auf Deutsch" , finde ich sehr gut zu lesen, kann ich nur empfehlen für jeden Anfänger wie mich.

    Vielen Dank für die Tipps, wenn ich weiter bin werde ich meinen Code auch wieder hier reinstellen.
    Gruß Pit

  • Schreibe doch bei jeder Überwachung eine kleine Datei mit dem letzten Stand. Mit PHP liest Du den Stand aus und zeigst Ihn auf einer Webseite an. Im Header der Seite stellst Du einfach ein, dass sich die Webseite alle paar Minuten aktualisiert und schon hast Du ohne Ajax (obwohl das z.B. mit JQuery total einfach wäre) einen aktuellen Stand. Ich glaube das Funktioniert sogar wenn Du die Seite die Aktualisieren soll als iFrame einbindest.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!