Raspberry Heizungssteuerung mit FHEM

Es gibt 2 Antworten in diesem Thema, welches 8.263 mal aufgerufen wurde. Der letzte Beitrag () ist von mr. heat.

  • Hi,


    heute will ich mal die lange versprochene Anleitung einlösen.
    Im ersten Schritt werden wir einen Raspberry Pi dazu bringen, das zu tun, was wir wollen.

    • Hardware:



    Fürs erste einrichten eine USB-Tastatur und einen Bildschirm mit HDMI ( z.B den Fernseher im Wohnzimmer)
    Und natürlich brauchen wir noch nen Computer mit SD-kartenleser und Internet.


    ### Installation des Betriebssystemes


    https://www.raspberrypi.org/downloads/noobs/


    Bitte von dort eine der zwei Downloads herunterladen.
    Ich bevorzuge das -Lite, welches allerdings bei der Installation
    eine Netzwerkverbindung benötigt, da es schlanker ist und die Ressourcen
    des Raspberry Pi nicht unnötig auffrisst.
    Auch ihr solltet den Drang unterdrücken, unbedingt eine grafische
    Oberfläche zu installieren, denn die benötigt massiv Leistung.


    Nach dem Herunterladen liegt euch eine Zip-datei vor, die ihr bitte entpackt
    und den Inhalt auf die SD-Karte kopiert.


    Ist das erledigt, wird die SD-Karte in den Raspberry Pi eingesetzt. Nun müssen
    Tastatur ,Monitor und Netzwerk an den Raspberry Pi angeschlossen werden.
    Auf die Maus könnt ihr getrost verzichten, diese wird in dieser Anleitung nicht benötigt.
    Jetzt wird der Raspberry PI mit Strom versorgt.


    Nun erscheint auf dem Bildschirm eine Darstellung, in der ihr ggf.
    verschiedene Betriebssysteme
    auswählen könnt. Bitte wählt Raspian aus und entfernt ggf. die Auswahl bei
    den anderen Systemen.


    https://www.raspberrypi.org/do…ion/installation/noobs.md


    Der Raspberry Pi installiert jetzt ein bisschen herum und bootet irgendwann
    in sein neues Betriebssystem.
    Nun müsst ihr euch anmelden: Benutzername lautet "pi", das dazugehörige Passwort
    lautet "raspberry". Das könnt ihr natürlich alles ändern, in meiner Anleitung
    gehe ich davon aus, dass es erstmal bleibt, weil ihr kein Kernkraftwerk damit
    steuert.


    Wenn ihr euch eingeloggt habt, installiert ihr bitte mit
    "apt-get install openssh-server" den SSH-Server, mit dem ihr dann sämtliche
    weiteren Einstellungen vornehmen könnt.


    mit einem "ifconfig" erhaltet ihr eine etwas unübersichtliche Ausgabe von
    Netzwerkinformationen, darunter eine Zahlenkombination, die etwa so aussehen
    sollte "192.168.xxx.yyy) Die zahlen xxx und yyy sind fast beliebig, wir brauchen
    diese, um uns im nächsten Schritt mit dem Raspberry pi zu verbinden.
    Das Ganze nennt sich IP-Adresse und ist sowas wie die Telefonnummer der einzelnen
    Geräte im Netzwerk.


    Die Arbeiten *direkt* am Raspberry Pi sind hiermit erstmal erledigt.


    Weiter gehts am PC. Linux-Usern sollten IP-Adressen und SSH ein Begriff sein,
    windows User laden sich bitte Putty herunter (https://www.chiark.greenend.or…gtatham/putty/latest.html)


    Dann verbinden wir uns mit der IP-Adresse, die wir im oberen Schritt ausgelesen haben.
    Bei Putty in das lange Feld eintragen und auf "open" klicken.


    Bei der Frage nach Benutzername tragen wir "pi" ein, die Frage nach dem Passwort
    beantworten wir mit "raspberry".


    Nun sollten wir einen grün/blauen Prompt sehen und sind mit dem Raspberry Pi verbunden.



    • Softwareinstallation



    Erstmal machen wir uns eine angenehme Arbeitsumgebung.
    Wir werden root, da wir den für die folgenden Arbeiten öfter brauchen:
    "sudo su"
    Jetzt ist der Prompt leider nicht mehr farbig, dafür steht dort
    root@raspberrypi:/home/pi
    Das bedeutet, wir installieren alle Software, die wir zum arbeiten brauchen:
    "apt-get install vim htop"
    Jetzt installieren wir FHEM, das ist die Software, mit der hinterher die Sensoren
    ausgewertet werden:
    "wget -qO - http://debian.fhem.de/archive.key | apt-key add -"


    dann
    "nano /etc/apt/sources.list"
    Hier muss die Zeile
    "deb http://debian.fhem.de/nightly/ /" eingetragen werden, Achtung, genau so!
    nach einem "apt-get update" und einem "apt-get -y upgrade"
    können wir FHEM installieren
    "apt-get -y install fhem"


    Wenn das fertig ist, beenden wir die Installation mit "reboot". Dadurch wird
    die aktuelle SSH-Verbindung beendet, die wir ab sofort auch nicht mehr benötigen.
    In einem Browser können wir nun die IP-Adresse, gefolgt von einem :8083 (ohne Leerzeichen)
    eingeben, und erhalten eine sanft-gelbe Oberfläche: FHEM.


    Glückwunsch, soweit hat alles geklappt.


    • Schritt zwei: Temperatursensoren vorbereiten



    Hardware: Für Schritt zwei benötigen wir Temperatursensoren. Dies sind
    One-Wire-Devices mit dem Typ DS18B20. (DS18B20)
    (Achtung, noch nicht an die Rohre anschließen, müssen geprüft werden)
    Nur, dass ichs schonmal gesagt hab ;)
    Klemmverbinder (WAGO-Klemmen)
    Widerstand etwa 1k5Ohm Widerstand 1k5


    Achtung! vor allen Arbeiten bitte den Strom vom Raspberry Pi entfernen!


    Diese Temperatursensoren haben drei Beine: rot (+) Schwarz (GND) und gelb(DATA)
    Zuerstmal handelt es sich um einen Bus, das bedeutet:
    alle Schwarzen verbinden, alle gelben verbinden und alle roten verbinden.
    Ich empfehle die obigen Wago-Klemmverbinder.
    Nachdem das erledigt ist, werden die roten und die gelben Adern mit einem! Widerstand
    verbunden. Nun werden die Adern an die Pin-Leiste des Raspberry angeschlossen:
    https://www.elektronik-kompend…/raspberry-pi/1907101.htm
    Rot an Pin 1 (+3V3)
    Schwarz an Pin 6 (GND)
    Gelb an Pin 7 (GPIO4)


    Drauf achten, dass es keine Kurzschlüsse gibt.
    Ich empfehle die Verbindung mit diesen Kabeln:
    Jumper-Kabel
    Die eine Seite kann schön auf den Raspberry Pi gesteckt werden,
    die andere passt perfekt in die Klemmen.


    Hier nochmal eine Warnung: Der OneWire-Bus ist EXTREM empfindlich gegen
    rumgemurkse beim Verkabeln. Die Leitungen müssen *immer* einwandfreien Kontakt haben.
    Wenn also mal was nicht funktioniert, zuerst die Leitungen überprüfen.
    Wenns immer noch nicht geht, nochmal die Leitungen prüfen.
    Die Jumperkabel sind teilweise mies gefertigt. Die guten sitzen stramm auf den
    Pins, schlechte rutschen leicht ab. Als Fausregel, ihr müsst an einem(1) Kabel den Raspberry
    Pi anheben können, ohne dass es ab geht. Wenn doch -> austauschen!


    Wenn es keine Kurzschlüsse gibt (die können euren Pi zerstören!!) den Strom wieder anschließen.


    Nun brauchen wir doch noch einmal eine SSH-Verbindung zum Raspi, so wie oben.
    Diesmal führen wir das Kommando "sudo raspi-config" aus. Unter _Interfacing Options_
    wählen wir P7 OneWire aus und beantworten die Frage, ob wir 1-wire aktivieren wollen, mit "ja".
    Nach dem Beenden des Tools starten wir den Raspberry PI neu:
    "reboot".


    Nun können wir uns wieder auf die Webseite verbinden (IP-Adresse:8083).
    Dort legen wir nun ein Device an, welches uns den Zugriff auf die Temperatursensoren
    ermöglicht:
    Bitte oben in der weissen Befehlszeile eingeben:
    "define Raspberry GPIO4 BUSMASTER"
    Damit legen wir ein Device an, welches One-Wire-Sensoren am GPIO4 erkennt und
    automatisch anlegt.


    Die automatisch angelegten Devices haben jetzt einen Namen ähnlich wie
    "28-0416c24350ff". Diese Zahlen sind zum einen der Family-Code (28 sagt uns, dass es
    ein Temperatursensor der DS18B20-Reihe ist)und zum anderen die Seriennummer,
    die für alle Geräte der Welt eindeutig ist (theoretisch).


    Wenn man jetz auf den Namen klickt, kommt man ins innere des Sensors.
    Dort gibt es ein sog. Reading "temperature", welches die aktuelle Temperatur des Sensors darstellt.
    Darunter gibt es eine Schaltfläche "attr", mit der man mit dem Dropdown-Menü verschiedene Einstellungen auswählen kann.
    Die Werte gibt man dann natürlich in das Feld dahinter ein.
    Ich habe meine wie folgt eingestellt:


    "pollingInterval 30"
    "stateFormat {sprintf("T: %.2f °C %s",ReadingsVal($name,"temperature",0),ReadingsTimestamp($name,"temperature",0))}"


    Nun muss noch der Sensor geprüft und zugeordnet werden.
    Dies führen wir durch, indem wir einen Behälter mit Wasser und reichlich Eiswürfeln füllen.
    Hier können wir davon ausgehen, dass das Wasser etwa 0°C hat.
    Durch das StateFormat sieht man in der Übersicht alle Temperaturen, so dass man einen einzelnen Sensor,
    der Richtung 0 abweicht, sofort erkennen.
    Nun können wir den Sensor in FHEM benennen:
    "rename 28-0416c24350ff DS18B20_HV_VL" für den Vorlauf z.B.
    Falls der Wert nicht 0 erreicht (oder niedriger wird) kann mit dem parameter
    "tempOffset 5" ein entsprechendes Offset kontrolliert werden.


    ACHTUNG: dies ist eine reine Vorsichtsmaßnahme. Normalerweise sollten die Sensoren alle so genau sein,
    dass keine OffsetKorrektur notwendig ist. Hin und wieder passiert es aber, dass die Sensoren ausfallen
    oder von den Werten her abweichen.


    Nun können die Sensoren an die entsprechenden Rohre angebracht werden. Hierbei sind Hilfsmittel wie:
    Kabelbinder
    Wärmeleitpaste
    Dämmung


    sehr zu empfehlen.


    Als letztes wollen wir noch eine grafische Darstellung haben. Diese erhalten wir ebenfalls von FHEM:
    "define FileLog_TEMP FileLog ./log/TEMP-%Y-%m.log DS18B20.*"
    Das bedeutet: Schreibe alle Daten von Sensoren, deren Namen mit DS18B20 anfangen, in die Logdatei.
    Es macht also Sinn, die Sensoren alle mit dem selben Prefix zu versehen.


    In dem FileLog-Device gibt es jetzt den Link "create SVG plot".
    Dadurch öffnet sich ein Fenster mit einer (leeren) Grafik.
    Unter der Grafik kann man nun in jeder Zeile einen Sensor auswählen, der dann dargestellt wird.
    Feld 1: Angezeigter Name des Graphen
    Feld 2: Hier wählen wir FileLog_TEMP aus
    Dann drücken wir auf "Write .gplot File, damit FHEM speichert und uns bei der weiteren Auswahl helfen kann
    Feld 3: muss auf 4 stehen
    Feld 4: hier wählen wir "DS18B20_HV_VL.temperature:" aus ( sinngemäß für jeden Sensor natürlich)
    Feld 5-8 bleiben unberührt
    Feld 9: Hier kann die Farbe für den Graphen ausgewählt werden (sinnvollerweise kann man 8 Linien mit den selben Farben schlecht unterscheiden)


    jetzt auf "write .gplot file" und schon sollte die ersten punkte/linie sichtbar werden.
    Wenn ihr gerade erst die Software eingerichtet habt, kann dort natürlich noch nicht viel stehen.


    Okay, soweit erstmal, ich hoff ich hab nix vergessen, formatierung ist nicht so meine Stärke.
    Wenn Fragen sind, einfach schreiben, dann verbessere ich die Anleitung natürlich.


    Grüße,
    Stephan

  • Hallo
    ein sehr interessanter Artikel. Bei mir ist der FHEM im 1. OG, ein Kabel verlegen in den Keller zur Heizung ist nicht möglich. Besteht die Möglichkeit die Sensoren an einen weitern RasPi anzuschließen und von FHEM abzufragen?
    Danke

Jetzt mitmachen!

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