Raspberry Heizungssteuerung mit FHEM

    Wir wünschen allen Besuchern und Mitgliedern ein frohes, erfolgreiches und gesundes neues Jahr.
    Euer Forenteam
    Du hast Probleme beim Login? Schreibe uns im Forum "Probleme mit der Registrierung".
      • 1

      • # 142140

      Raspberry Heizungssteuerung mit FHEM

      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:

      1. einen Raspberry Pi 3 (rasppishop.de/Raspberry-Pi-3-M…12-GHz-QuadCore-64Bit-CPU)
      2. eine SD-Karte (darf ruhig ein bisschen Platz haben) amazon.de/SanDisk-Android-micr…3&keywords=micro+sd+karte
      3. Ein USB-Netzteil rasppishop.de/51V-25A-Netzteil…erry-Pi-3-Model-B-Schwarz


      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

      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.

      raspberrypi.org/documentation/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 (chiark.greenend.org.uk/~sgtatham/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 - debian.fhem.de/archive.key | apt-key add -"

      dann
      "nano /etc/apt/sources.list"
      Hier muss die Zeile
      "deb 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:
      elektronik-kompendium.de/sites/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

    Webutation