Ich hatte in einen meiner letzten Blog-Beiträge schon einiges über Fhem, dem Freundlichen Haus und Energie-Monitor geschrieben. Diese Hausautomations-Software ist Open-Source, in Perl geschrieben, hat eine große Community und läuft auf meinem Raspberry Pi mit Raspbmc perfekt. Wenn ich nicht dauernd die Software und Hardware mit (überflüssigen) Komponenten erweitern würde :-). Da mal wieder das Wochenende vor der Tür stand, bin ich hingegangen und habe aus meinen vorherigen Projekten meinen Temperatur-Sensor DS18B20 herausgebaut und mit dem Raspberry Pi verbunden.
Hardware: Man benötigt, wie schon oben erwähnt, den Temperatursensor DS 18B20 (amazon.de: 10 × DS18B20 Digital Temperature Sensor Thermperatursensor TO92 – 55°C – +125°C
) und einen ohmschen Widerstand mit 4,7 kOhm. Ich habe leider nur 1 kOhm zur Hand gehabt, klappt aber auch. Ebenfalls benötigt man ein mindestens 3-adriges Kabel, welches eine Zuleitung zum Temperatursensor darstellt, solange man nicht auf der Platine des Raspberry Pi die Temperatur messen möchte.
Die Schaltung:
Installation und Testen des Sensors
Wenn man alles verschaltet hat, kommt man zum Testen. Hier gibt man über die Kommandozeilenoberfläche
modprobe w1-gpio
modprobe w1-therm
Im Ordner
/sys/bus/w1/devices
sollte nun ein Ordner mit ID des Temperaturmoduls vorhanden sein. Hier steht neben dem CRC auch die Temperatur, bei mir 21,562 Grad.Damit der Sensor auch nach einem Neustart wieder gefunden wird (die obigen Kommandos gelten nur bis zu einem Reboot), sollte auch sofort softwaremäßig der Sack zu gemacht werden.
Hierzu gibt man auf der Kommandozeilenoberfläche ein:
sudo vi /etc/modules
und fügt folgende Zeilen hinzu
wire
w1_gpio
w1_therm
Ihr könnte anstatt vi auch jeden anderen Editor benutzen. Ich nutze beispielsweise den Midnight Commander mit dem Editor nano.
Ein Reboot tut anschließend gut.
Das wäre es schon mal von der Hardware-Software-Seite:
Fassen wir zusammen:
- Der Temperatursensor wurde installiert und funktioniert auch nach einem Reboot.
- Die Hardware liefert fortwährend Temperatur-Daten.
One-Wire DS18B20 in Fhem.
Hierzu geht man in den /fhem/contrib Ordner und kopiert die Datei 58_GPIO4.pm in den Fhem-Ordner.
Anschließend editiert man die in den Fhem-Ordner liegende Datei 98_autocreate.pm und fügt folgenden Code hinzu
# GPIO
"GPIO4_(DS18B20|DS1820).*"
=> { GPLOT => "temp4:Temp,", FILTER => "%NAME" },
anschließend mit shutdown restart fhem neu starten, oder RPi neu Booten.
In der File-Config-Datei noch folgende Zeile einfügen, damit der Temperatur-Sensor von Fhem erkannt wird.
define Temperatursensor1 GPIO4 BUSMASTER
Nun sollte das Modul auch im Plot die gemessenen Temperaturen anzeigen.
Tipp: Standardmäßig nimmt der Sensor jede Minute (60s) eine Messung vor. Ihr könnt mit dem Attribut pollingInterval die Messintervalle einstellen. Bei einem Eintrag von 320 wird jede 5min gemessen.
[asa]B008XVAUPI[/asa]
Fazit:
Die One-Wire-Messung ist eine preiswerte Methode zum Messen von Temperaturen. Ihr könnt mehrere Sensoren parallelschalten. Der Sensor selber kostet bei Conrad ungefähr 2 bis 3 Euro. Vorteil ist der Preis, nachteilig natürlich die Verkabelung.
Möchte man drahtlos die Temperatur und Luftfeuchtigkeit seiner Räume überwachen, empfehle ich die LaCrosse Temperatur- und Luftfeuchtigkeitssensoren mit einem JeeLink-Transceiver. Bitte dazu auch meinen Blogbeitrag über diese günstigen Sensoren lesen.
Hallo Jack,
der Klassiker für die DS18B20 Serie. Hab ich schon öfter gehört 🙂
LG
/robin
Ja das weiß ich, deswegen habe ich ja schon ein jeelink am laufen mit mehreren Sensoren. 🙂 Dieses Projekt ist für zb. meine Heizung ( Vorlauf u. Rücklauf) gedacht.
Gruß Jack
du weißt, das ein jeelink unter fhem viel cooler ist? kein kabel, und flexibel.
https://blog.moneybag.de/lacrosse-temperatursensor-an-arduino-nano-und-rfm12b-als-jeelink-ersatz/
Ich danke dir!! Ich werde mich melden wenn ich es dann zeitlich mal geschafft habe.
Gruß Jack
passiert nix, man hätte keine Daten. Fange mit dem höheren Wert an.
Kannst ja hier schreiben, wenn es am Ende geklappt hat.
Wichtig: auf die Polung vom Temperatursensor achten!
LG
/robin
was würde passieren wenn man einen falschen Widerstand dazwischen hat? Könnte man damit die Sensoren oder sogar den Raspi schrotten, oder erhält man einfach nur keine Daten?
Gruß Jack
ist nur pi mal Daumen wert und hängt von der Leitungslänge und Leitungsquerschnitt ab. Ich habe immer eine ganze Reihe von Widerständen hier zum testen. Im grunde würde ich 100 OHm 1k, 2k 4,7 k nehmen um zu testen.
LG
/robin
das ist ja wahnsinn wie schnell du Antwortest! 🙂
Wie könnte man das denn herausfinden was für ein Widerstand ich brauche?
Kann man das Messen oder Berechnen??
Gruß Jack
Hallo Jack,
ein Widerstand reicht.
Die DS18B20 werden praktisch parallel geschaltet.
Ob es ein 4,7 kOhm ist hängt, von der Leitungslänge ab.
LG
/robin
Hallo Robin,
ist es möglich mehrere Sensoren über den GPIO pin anzuschliessen?
Müsste man für jeden Sensor einen Widerstand einlöten, oder würde
ein 4,7kohm Widerstand reichen?
Danke
Gruß Jack
Hallo Pinne,
ich habe damals mal einen Blog-Beitrag für Fhem2Fhem – Lacrosse – Temperatursensoren geschrieben, vielleicht hilft er die weiter:
http://blog.moneybag.de/fhem-fhem2fhem-und-temperatursensordaten-empfangen/
LG
/robin
Hi, ich habe heute meine neuen DHT22 Sensoren eingebunden um die Räume zu überwachen. Ich möchte diese jetzt via fhem2fhem zusammen führen , weiß aber nicht recht wie…. Habt ihr vielleicht Ideen?
Vielen Dank
Pingback: Raspi 1-Wire DS18B20 | Bastelhuber
Hallo Mike,
danke für das positive Feedback über meinen Blog.
Wenn du viel mit Fhem „spielst“, solltest Du auch öfter ein Backup Deines kompletten Systems machen.
Ich habe mich mit diesem Thema länger beschäftigt, weil auch die Neigung habe, dauernd alles zu optimieren. Das geht auch öfter daneben. Lese Dir hierzu mal meinen Blog-Beitrag über das Sichern und Wiederherstellen von Backups mit rsync an. Ich habe damit die besten Erfahrungen gemacht.
Temperatur-Erfassung: Hier kommt es immer auf dem Anwendungsfall an. Meiner Meinung hast Du hier mit den günstigen One-Wire-Temperatursensoren DS18B20 die richtige Wahl getroffen.
Bei mir messe ich die Temperatur und Luftfeuchtigkeit in den Räumen drahtlos, zum einen über meine S300TH-Sensoren (gibt es leider nicht mehr zu kaufen) und als Nachfolge mit den günstigen LaCrosse-Temperatur-Sensoren (TX-29 DTH), über welche ich auch in einem separaten Blog-Beitrag geschrieben habe.
LG
/robin
Hi Robin,
ich beschäftige mich auch schon des längeren mit FHEM, ich hab verschiedenste Konfigurationen, also FHEM auf der 7390 als auch auf dem RPi, mittels FHEM2FEHM und robocopy hole ich mir die Log´s auf dem PC da die Auswertung (erzeugen und navigieren in der Plots) deutlich schneller geht.
Ich war lange auf der suche nach einer Temperatur Erfassung für verschiedenste Räume und der Heizung (Vor-/Rücklauf und Speichertemperaturen etc.). Deine hier beschriebene Lösung gefällt mir mit am besten. Sie ist funktionell, günstig und vor allen befriedigt sie meinen Spiel und Basteltrieb 😉
Also Danke für deine Blogs und bitte weiter so.
Beste Grüße aus Nordhorn
Mike
Hallo moarli,
prima, das die Temperaturmessung mit dem Raspberry Pi und dem DS18B20 unter Fhem funktioniert.
Warum da jetzt kein Plot erscheint kann ich Dir nicht pauschal sagen, ich würde erst mal die Logs anschauen und vielleicht unter dem Menüpunkt „Everything“ das Temperaturmodul suchen.
LG
/robin
Hi! Danke für das gelungene Tutorial.
Ich bin noch ein Fhem-noob. Bei mir hat alles soweit geklappt. Die Temperatur wird unter GPIO4 angezeigt, jedoch bekomm ich kein Plot!
Was mach ich falsch?
Hallo Mehdorn,
kein Problem, ich freue mich über jedes Feedback. Viel Spass beim Nachbau. Sag mal Bescheid, ob Du die Auswertung über das RRD-Tool machst oder über Fhem.
LG
/robin
Sorry für die Irritation. Hatte das kleine „bottom view“ in meinem Datenblatt übersehen und „top view“ angenommen.
Bei der Darstellung des Sensors im TO92-Gehaeuse hast du die Numerierung verkehrt herum angebracht und entsprechend auch die Kabelfarben verdreht. Wenn man ihn so herum dreht wie im Bild, sind die Pins in der Reihenfolge „3 – 2 -1“ angeordnet.