[Tutorial] DS18S20 Temperatur Sensor an einem Raspberry Pi
Hallo zusammen,
da ich mittlerweile mehrere DS18S20 Temperatur Sensoren betreibe und diese wirklich einfach in Betrieb zu nehmen sind, wird es Zeit fĂŒr ein kleines Tutorial!
Der DS18S20 ist ein relativ gĂŒnstiger Temperatur Sensor (ca. 2âŹ, z.B. bei Reichelt) der vom Prinzip baugleich mit dem oft verwendeten DS18B20 ist. Die Pin-AnschlĂŒsse sind identisch, somit kann das Tutorial auch ruhigen Gewissens fĂŒr einen DS18B20 verwendet werden.
Der Unterschied zwischen beiden Sensoren besteht darin, dass der DS18S20 als Nachfolger des DS1820 konzipiert ist und immer einen 12bit Wert zurĂŒckgibt, wĂ€hrend der DS18B20 je nach Abfrage zwischen 9 und 12bit zurĂŒckgeben kann. Vorteil bei 12bit sind der genauere Messwert, Nachteil der etwas höhere Stromverbrauch und die lĂ€ngere Konvertierungszeit von ca. 750ms.
Hier möchte ich allerdings nicht all zu tief in die Details gehen. FĂŒr die, die sich tiefer mit der Materie beschĂ€ftigen möchten hat Maxim einen englischsprachigen Vergleich herausgebracht: Comparison of the DS18B20 and DS18S20 1-WireÂź Digital Thermometers
Ein kleiner Tipp: Besitzt man eine eigene Domain mit Mailfunktion, so kann man sich kostenlos von Maxim, dem Hersteller dieser und vieler anderer Mikrochips, kostenlose Samples bestellen! Dies funktioniert leider nicht mit Freemailern wie GMX oder Googlemail. Man muss nur etwas Zeit mitbringen bis die Samples aus Amerika ankommen.
Genug der Worte. Was wird benötigt?
- ein oder mehrere DS18S20 oder DS18B20
- ein 4,7K Ohm Widerstand
- Kabel
- Lötutensilien
Hier ein Steckplan fĂŒr ein Breadboard. Es empfiehlt sicht Schaltungen stets vorher darauf zu Testen, da man hier alle Komponenten stecken und nicht löten muss.

Wichtig ist, dass GPIO 4 benutzt wird (das blaue Kabel). Auf anderen GPIOs kann der Sensor nicht ohne weiteres ausgelesen werden! Eine Möglichkeit einen anderen GPIO zu nutzen findet man weiter unten in den Kommentaren. AuĂerdem solltem man darauf achten 3,3V und nicht die direkt daneben liegenden 5V zu verwenden (das rote Kabel), sonst kann das schnell das Ende des GPIO oder sogar des ganzen Pi’s sein.
Der dritte Anschluss, also das schwarze Kabel geht auf Ground. Wichtig ist noch der 4,7K Ohm Widerstand zwischen GPIO4 und 3,3V (Einbaurichtung von WiderstÀnden ist generell egal).
Man kann auch mehrere Sensoren in Reihe stecken, da das ganze mit dem 1Wire Protokoll auf einem Bus lÀuft und fast beliebig erweiterbar ist.

ACHTUNG:
Seit Kernelversion 3.18.3 gibt es einige Ănderungen, bitte den Kommentar von Ingo (weiter unten) anschauen und beachten! Das Tutorial wird demnĂ€chst angepasst.
Nachdem nun alles vorbereitet ist kommt der spannende Teil, den Sensor abfragen! Hierzu mĂŒssen wir erst einmal das 1Wire Protokoll aktivieren:
$ sudo modprobe w1-gpio
$ sudo modprobe w1-therm
Nun mĂŒsste unter /sys/bus/w1/devices/ ein Ordner a la 10-0008017b5e27 auftauchen (die ID des Sensors). Falls man den DS18B20 benutzt fĂ€ngt der Name des Ordners mit 20- an.
Falls unter /sys/bus/ der w1 Ordner fehlt, so ist das aktivieren des 1Wire Protokolls fehlgeschlagen oder ihr nutzt nicht GPIO 4.
Ob das 1Wire Prokoll aktiviert ist lÀsst sich leicht mit
$ lsmod
herausfinden. Mit dem Befehl werden alle aktivieren Kernel Module mit AbhÀngigkeiten angezeigt.
Wurden die beiden Module erfolgreich geladen, mĂŒsste lsmod u.a. folgende Zeile ausgeben:
$ wire 24973 2 w1_gpio,w1_therm
Damit die beiden Kernelmodule bei jedem Start geladen werden, mĂŒssen sie noch in die Datei /etc/modules eingetragen werden. Dies erledigen wir mit folgendem Befehl:
$ sudo echo >> /etc/modules w1-gpio && sudo echo >> /etc/modules w1_therm
Nun den Sensor mit folgendem Befehl abfragen (Achtung, den Namen des Sensors bite anpassen!):
$ cat /sys/bus/w1/devices/10-0008017b5e27/w1_slave
Die Ausgabe sollte folgendermaĂen aussehen:
2c 00 4b 46 ff ff 0f 10 d3 : crc=d3 YES
2c 00 4b 46 ff ff 0f 10 d3 t=21812
Hier ist der Wert am Ende der letzten Zeile der Wert den wir suchen (t=21812). Dies ist die Ausgabe des Sensors in Grad Celsius. Den Wert mĂŒssen wir jetzt noch durch Faktor 1000 teilen und wir erhalten eine Temperatur von 21,812 °C.
Um die Abfrage einfacher zu gestalten habe ich ein kleines Script geschrieben, dass den Wert direkt ausgibt wenn man einfach temp im Terminal eingibt.
Einfach eine neue Datei namens temp (ohne Endung) unter /usr/bin/ anlegen und folgenden Inhalt einfĂŒgen (Achtung auch hier wieder den Namen des Sensors anpassen!):
1 2 3 4 5 6 7 8 | #! /bin/bash # Temperatur des Sensors auslesen tempread=`cat /sys/bus/w1/devices/10-0008017b5e27/w1_slave` temp=`echo $tempread | egrep -o '[\-0-9]+$'` temp2=`echo "scale=2; $temp / 1000" | bc` # Wert ausgeben echo "Gemessene Temperatur des Sensors" $temp2 "°C" |
Danach muss noch ein Paket nachinstalliert und die Datei noch ausfĂŒhrbar gemacht werden:
$ sudo aptitude update
$ sudo aptitude install bc
$ chmod +x /usr/bin/temp
Fertig, nun kann man die Temperatur bequem mit temp abfragen đ
Was ist nun aber, wenn man den Sensor regelmĂ€Ăig automatisch abfragen lassen möchte um sich z.B. den Temperaturverlauf grafisch darstellen zu lassen?
Nichts leichter als das! Dies kann man relativ einfach mit MRTG realisieren. Dazu habe ich bereits ein Tutorial verfasst: [Tutorial] CPU, RAM & Temperatur Monitoring mit dem Raspberry Pi, einem DS18S20 und MRTG
Folgt man diesem Tutorial erhÀlt man schöne Grafiken wie z.B. diese hier

Viel SpaĂ beim ausprobieren!
GruĂ iro
PS: Falls dir das Tutorial gefallen hat, wĂ€re es schön wenn du einen kleinen Kommentar hinterlassen wĂŒrdest und auf eines der Werbebanner klickst. Dadurch kann unser Server und noch viele weitere spannende Kopfkino Projekte finanziert werden đ
[Last Edit: 23.06.2015]
Hallo
Ich hoffe mir kann jemand helfen beim auslesen der werte mit MRTG ĂŒber die grafik bekomme ich nur einen maximal wert von 2. 0C hier mal die mtg.cfg inhalte:
######################################################################
# System: DS18S20 Temperatur Sensor
# Contact: root
# Location: attached to Raspberry Pi
######################################################################
### DS18S20 Temperatur SensorWohnzimmer
TimeStrPos[temp_wohnzimmer]: RU
Target[temp_wohnzimmer]: `/home/pi/skripte/mrtg/update_mrtg_temp.sh`
Options[temp_wohnzimmer]: gauge,growright,nopercent,expscale,transparent
Title[temp_wohnzimmer]: Temperatur Wohnzimmer
PageTop[temp_wohnzimmer]:Temperatur Wohnzimmer
MaxBytes[temp_wohnzimmer]: 125
Step[temp_wohnzimmer]: 60
Legend1[temp_wohnzimmer]: Gemessene Temperatur im Wohnzimmer
LegendI[temp_wohnzimmer]: Innentemperatur
LegendO[temp_wohnzimmer]:
YLegend[temp_wohnzimmer]: Grad Celsius
ShortLegend[temp_wohnzimmer]: Grad °C
Und noch das update_mrtg_temp.sh skript:
tempread=`cat /sys/bus/w1/devices/10-0008028eb146/w1_slave`
temp=`echo $tempread | egrep -o â.{5}$â`
temp2=`echo âscale=2; $temp / 1000? | bc`
# Update database
echo $temp2
echo 0
echo 0
echo temperature
danke đ
Hey Gabriel,
Muhkuh hatte das selbte Problem, das liegt an den Hochkommata und den AnfĂŒhrungszeichen. AuĂerdem muss nach der 1000 ein AnfĂŒhrungszeichen und kein Fragezeichen sein.
Das ganze hat so auszusehen:
temp=`echo $tempread | egrep -o '.{5}$'`
temp2=`echo "scale=2; $temp / 1000" | bc`
GruĂ iro
Hallo Iro,
Ich bin schon seit Tagen am probieren den Temp Sensor DS1820 auszulesen (ĂŒber MRTG) das Script manuell aufgerufen funktioniert problemlos. Aber es kommen keine Daten in MRTG vom Sensor an. Der CPU Wert wird auch nicht angezeigt. Ich bin schon am verzweifeln …
Hab heute gedacht dein obiger Tipp mit den Hochkommata wĂŒrde funktionieren aber Pustekuchen.
Vielleicht weisst Du RAT ???
Hier die Dateien:
mrtg.cfg (nur die AuszĂŒge der beiden Temp-sensoren)
######################################################################
# System: DS18S20 Temperatur Sensor
# Contact: root
# Location: attached to Raspberry Pi
######################################################################
### DS18S20 Temperatur SensorWohnzimmer
TimeStrPos[temp_wohnzimmer]: RU
Target[temp_wohnzimmer]: `/home/pi/skripte/mrtg/update_mrtg_temp.sh`
Options[temp_wohnzimmer]: gauge,growright,nopercent,expscale,transparent
Title[temp_wohnzimmer]: Temperatur Wohnzimmer
PageTop[temp_wohnzimmer]: Temperatur Wohnzimmer
MaxBytes[temp_wohnzimmer]: 125
Step[temp_wohnzimmer]: 60
Legend1[temp_wohnzimmer]: Gemessene Temperatur im Wohnzimmer
LegendI[temp_wohnzimmer]: Innentemperatur
LegendO[temp_wohnzimmer]:
YLegend[temp_wohnzimmer]: Grad Celsius
ShortLegend[temp_wohnzimmer]: Grad °C
### CPU Temperature Raspberry
TimeStrPos[localhost.cpu_temp]: RU
Target[localhost.cpu_temp]: `/home/pi/skripte/mrtg/cpu_temp_auslesen.sh`
Options[localhost.cpu_temp]: gauge,growright,nopercent,expscale,transparent
Title[localhost.cpu_temp]: Raspberry Pi Server CPU Temperatur
PageTop[localhost.cpu_temp]: Raspberry Pi Server CPU Temperatur
MaxBytes[localhost.cpu_temp]: 125
Step[localhost.cpu_temp]: 60
Legend1[localhost.cpu_temp]: CPU Temperatur Raspberry Pi Server
LegendI[localhost.cpu_temp]: CPU Temperatur
LegendO[localhost.cpu_temp]:
YLegend[localhost.cpu_temp]: Grad Celsius
ShortLegend[localhost.cpu_temp]: Grad °C
Hier die Scripte:
#!/bin/bash
# Read temperature from sensor
tempread=`cat /sys/devices/w1_bus_master1/10-000802b57b2c/w1_slave`
temp=`echo $tempread | egrep -o ‚.{5}$’`
temp2=`echo „scale=2; $temp / 1000“ | bc`
# Update database
echo $temp2
echo 0
echo 0
echo temperature
#!/bin/bash
# Read cpu temperature
tempread=`cat /sys/class/thermal/thermal_zone0/temp`
temp=`echo „scale=2; $tempread / 1000“ | bc`
# Wert ausgeben
echo $temp
echo 0
echo 0
echo temperature
exit 0
Hey Irosaurus
habe heute mal meinen alten RasPi rausgesucht und versucht als Thermometer einzurichten. Soweit funktioniert meine Schaltung. Ich kann ĂŒber den Konsolenbefehl „cat /sys/bus.. etc“ den Sensor abfragen und bekomme auch einen Wert zurĂŒck.
nur mit dem Skript funktioniert bei mir gar nichts…
wenn ich in Zeile 5 “ ‚[\-0-9]+$‘ “ ha e gibt mir die Konsole den Fehler „egrep: Das Ende des angegebenen Intervalls ist nicht gĂŒltig“ aus.
mit allen anderen Varianten die ich in den Kommentaren so finden konnte passiert einfach gar nichts.. Die Konsole scheint zu arbeiten und die angezeigte CPU Auslastung steigt auf 100% aber weiter tut sich nix…
Vielleicht haSt du ja ne Idee woran das liegen kann?
Probiere mal bitte:
‚[\-0-9]+?$“
Hi gibbsnich
damit gibt er leider auch nur den Fehler âegrep: Das Ende des angegebenen Intervalls ist nicht gĂŒltigâ aus. Und das immer wiede, so lange bis ich das Terminal schlieĂe..
Hallo Iro,
Ich lese z.Z. die Temp-Sensoren manuell aus (nicht ĂŒber MRTG)
Ich hĂ€tte das natĂŒrlich gerne ĂŒber MRTG.
Nun habe ich wieder mal das Script „update_mrtg_temp.sh“ im Terminal probiert. Ich bekomme jetzt diesen Fehler bei der Ausgabe:
pi@raspberrypi ~/scripte/mrtg $ ./update_mrtg_tempn.sh
(standard_in) 1: syntax error
0
0
temperature
Hier noch das Script:
#!/bin/bash
# Read temperature from sensor
tempread=`cat /sys/bus/w1/devices/w1_bus_master1/28-000005113d27/w1_slave`
temp=`echo $tempread | egrep -o ‚.{5}$’`
temp2=`echo „scale=2; $temp / 1000“ | bc`
# Update database
echo $temp2
echo 0
echo 0
echo temperature
Hast Du einen Tipp woran es hakt?
Hallo, wenn ich mit temp die Temperatur abfragen möchte kommt folgende Meldung: /usr/bin/temp: line 6: /: Is a directory
„Gemessene Temperatur des Sensors“ „scale=2 „°C“
was ist hier falsch ?
Hallo Andi,
Da wurden wohl ein paar Zeichen des Skripts falsch kopiert. Bitte noch einmal neu kopieren und testen.
GruĂ iro
Hallo,
ich habe alles nach Anleitung gemacht.
#! /bin/bash
# Temperatur des Sensors auslesen
tempread=`cat /sys/bus/w1/devices/10-000801605a2c/w1_slave`
temp=`echo $tempread | egrep -o â.{5}$â`
temp2=`echo âscale=2; $temp / 1000âł | bc`
# Wert ausgeben
echo âGemessene Temperatur des Sensorsâ $temp2 â°Câ
Leider bekomme nur diese Fehlermeldung:
/usr/local/bin/temp: Zeile 6: /: Ist ein Verzeichnis
âGemessene Temperatur des Sensorsâ âscale=2 â°Câ
Was mache ich falsch?
Ansonsten eine gute Aneitung
GruĂ Felix
Hey Felix,
Siehe Antwort an Andi đ
GruĂ iro
Hier liegt der Hase im Pfeffer:
temp=`echo $tempread | egrep -o â.{5}$â`
Wenn die ĂŒbergebene Temperatur unter 10°C liegt und nur noch 4 Stellen hat, wird das = zusammen mit dem Wert ĂŒbergeben an bc, das dann jammert. (Bsp: ~2,5°C => „=2543“)
Lösung suche ich gerade… habs mit den Mathebefehlen bei bash nicht so… wird wohl auf ein if then else hinauslaufen…
Es sollte tun, wenn du den regulĂ€ren Ausdruck Ă€nderst – keine Mathe notwendig ^^
temp=`echo $tempread | egrep -o â[0-9]+$â`
Anstelle der letzten 5 Zeichen ‚.{5}‘ zum ende des textes ‚$‘ werden jetzt die letzten beliebig vielen (genauer: mindestens eine) Zahlen vom Ende her gesehen ‚[0-9]+$‘ ĂŒbergeben.
Werde ich gleich mal probieren. Danke fĂŒr den Tip
Torsten
Hallo,
Habs jetzt mal ausprobiert – bei mir keine Ănderung. Manuell funktioniert es – ins MRTG eingebunden werden keine Daten eingelesen. Ich werde wohl doch mal MRTG neu installieren.
GruĂ
Torsten
Hallo,
im Datenblatt des 18s20 steht aber nur 9bit, oder
sehe ich da etwas falsch?
MfG
Oliver
Hallo Oliver,
ja und nein đ Um den ebenfalls verlinkten Vergleich bei Maxim zu zitieren: „[…] the DS18S20 is factory configured to always perform 12-bit conversions. The 12-bit data is then rounded to a 9-bit value and stored in the temperature register. To allow for greater than 9-bit resolution, a value for the Count Remain register is calculated. The Count Per °C register is set by the factory to be 16. Using the Count Remain and the Count Per °C registers and the formula above, up to 12-bit resolution can be obtained with the DS18S20.“
Das bedeutet also, dass der Sensor intern mit 12bit arbeitet, standardmĂ€Ăig aber nur 9bit zurĂŒck gibt, da er als Ersatz fĂŒr den DS1820 gedacht ist, welcher nur 9bit beherrscht und zurĂŒck gibt. Man kann den DS18S20 aber auch so abfragen, dass er einen 12bit Wert zurĂŒck gibt. Dazu mĂŒssen die beiden oben beschriebenen Register bei der Abfrage mit ausgelesen werden. FĂŒr die Zwecke hier ist das allerdings völlig ĂŒberdimensioniert – uns reichen die 9bit RĂŒckgabewert völlig aus đ
GruĂ iro
Also das Tutorial finde ich super. Toll das sich jemnd die mĂŒhe macht das zu erstellen.
Leider zeigen mein Graphen fĂŒr ds18b20 und cpu temperatur keine Werte. Die Scripts allerdings funktionieren, ich bekomme also Werte fĂŒr die beiden Temperaturen. Allerdings scheinen diese nicht in rrd DB zu gelangen bzw., von MRTG angezeigt zu werden.Ich sehe nur zwei leere Graphen mit der Y-Achse Skala = 1.0. Hat jemand eine Tip fĂŒr mich.
Traffic Graf und CPU load funktionieren
Hallo Bernd,
danke fĂŒr die Blumen đ Immer schön wenn man ein positives Feedback bekommt đ
Zu deinem Problem, das hört sich schwer danach an, als wĂŒrden die Rechte nicht passen. Bist du sicher, dass der mrtg Prozess genĂŒgend Rechte hat die Skripte auszufĂŒhren?
Abgesehen davon, wo misst du denn? Innentemperatur oder AuĂentemperatur? Unterhalb von 10 °C gibt es momentan Probleme mit dem Skript, das muss noch gefixt werden.
GruĂ iro
Danke fĂŒr die UnterstĂŒtzung!
Hatte die Berechtigung auf dem Script schon mit chmod 777 angepasst. Das half allerdings nichts. Temperatur ist bei mir ca. 25 grad.
Es funktioniert!!
Danke !!
De Pfad zu den sctipten war falsch script mit k
Hallo irosaurus und gibbsnich!
Danke fĂŒr diese wirklich verstĂ€ndlichen Tutorials, die ich als – bisher Nicht-Linuxer – verstehe und Ansatzpunkte fĂŒr eigene Recherchen nach dem „Warum?“ finde!
Bin ĂŒber den Tor-Router zum Raspi gekommen und entdecke jetzt die Möglichkeiten đ
Mein Projekt ist die Optimierung der Heizzeiten meiner Gasheizung. Dazu möchte ich – bevor ich zu MRTG gehe – eine Textdatei erzeugen, die alle 10 Min mit Uhrzeit die Temperatur zeilenweise erfasst. Habe schon ein Python-Skript gesehen, gibt es so etwas auch als Bash?
WĂŒrde mich ĂŒber Tipps freuen!
Macht weiter so, Jungs! (Ihr seid bestimmt viel jĂŒnger als ich :))
eckermann
Danke fĂŒr Dein Lob, eckermann! Wir geben uns alle MĂŒhe und bei solch netten Worte wissen wir auch sofort wieder warum đ
Zu Deiner Frage:
Ein solches Skript wĂŒrde im so ziemlich einfachsten Fall so aussehen:
#!/bin/sh
value=$(the_command)
curdate=$(date)
echo $curdate "|" $value >> the_file
In der ersten Zeile steht ein sogenanntes Shebang — einfach gesagt: Das Programm, das das Skript ausfĂŒhren wird, in diesem Fall Bash.
Die zweite Zeile ruft das Kommando namens „the_command“ auf und speichert den Wert in der Variable „value“. „the_command“ wĂ€re in Deinem Fall ein anderes Skript, das einen „sinnvollen“ Wert zurĂŒck liefert. Wie hier z.B. das Temperaturausleseskript, das ich fĂŒr diesen Fall so verĂ€ndern wĂŒrde, dass es tatsĂ€chlich nur den Temperaturwert ausgibt und nicht noch die drei anderen, mrtg-spezifischen Zeilen — obwohl man mit wenig Aufwand natĂŒrlich auch nur den gewollten Wert aus der Vier-Zeilen-Ausgabe rausholen könnte..
Die dritte Zeile macht ungefĂ€hr das gleiche mit dem RĂŒckgabewert des „date“-Kommandos (ĂŒber verschiedene Parameter kannst Du dessen Ausgabe in so ziemlich jeder Art anpassen..).
Die vierte Zeile fĂŒgt schlieĂlich das Datum und den Wert getrennt durch ein | in eine neue Zeile in der Datei „the_file“ hinzu. Wenn sie noch nicht existiert, wird sie erzeugt werden.
Du musst das Skript dann noch mit
chmod +x the_script
ausfĂŒhrbar machen und wahrscheinlich einen Symlink in einem Ordner, der in der $PATH-Variable steht (z.B. wahrscheinlich /usr/local/bin), einfĂŒgen, damit du es von jedem Pfad aus aufrufen kannst. Also wenn Du Dich im Ordner /usr/local/bin befindest:ln -s /pfad/wo/das/skript/liegt/the_script
.Um das HinzufĂŒgen alle 10 Minuten passieren zu lassen, wĂŒrde ich einen cron-Job empfehlen. Wie der eingerichtet wird, kannst du z.B. hier erfahren.
Hmm, das war jetzt ziemlich ausfĂŒhrlich đ Ich hoffe, es hilft Dir weiter!
Danke gibbsnich!
Das sieht super und elegant aus! Mal sehen, ob ich das auch hin bekomme? Werde das ausprobieren, scheitern, Ă€ndern …, samt Irrwegen, bis die DrĂ€hte aus dem Kopf hĂ€ngen. đ
Der Mensch ist der Technik ĂŒberlegen!
…Ăffne jetzt ’ne Flasche Wein…
GrĂŒĂe
eckermann
Noch einmal vielen Dank fĂŒr eure Anleitungen! Das hat alles prima geklappt! Gibt es eigentlich bezahl- und fĂŒr den Raspi verwendbare Sensoren fĂŒr die Bodenfeuchtigkeit? Dann lieĂe sich das GewĂ€chshaus optimieren đ
Mit freundlichen GrĂŒĂen
eckermann
Hey eckermann,
danke fĂŒr das Feedback đ
Zu deiner Frage, schau doch mal hier:
Denke da kannst du dir sicher einige Anregungen holen đ
GruĂ iro
Hallo, danke fĂŒr die ausfĂŒhrliche Anleitung.
Das Nachbauen hat auf Anhieb funktioniert đ
Die Raumtemperatur wird von den beiden angeschlossenen Sensoren korrekt gemessen.
Allerdings habe ich folgendes Problem:
Ich wĂŒrde einen Sensor gerne am Heizungsrohr anbringen um die Temperatur des Rohrs zu messen.
Die hier gemessene Temperatur betrÀgt angeblich allerdings nur 45 Grad, es sollte wesentlich (>80) mehr sein.
Aktuell liegt er einfach nur auf dem Rohr, keine Ahnung ob das ein Problem sein könnte.
Hast du eine Ahnung was falsch sein könnte?
Macht es Sinn mal die 5V statt 3,3V zu probieren?
Hallo Dirk,
auf keinen Fall 5V benutzen, damit zerschieĂt du dir den GPIO am Raspberry, wenn nicht noch mehr! Der Sensor misst bestimmt richtig, ich gehe eher davon aus, dass es zu wenig KontaktflĂ€che mit dem (vermutlich) runden Rohr gibt. Abhilfe könntest du schaffen indem du z.B. WĂ€rmeleitpaste (wie vom CPU Einbau) zwischen Rohr und TempfĂŒhler versuchst. Am besten wĂ€re vermutlich wenn du die Möglichkeit hast dir ein StĂŒck Metal so zu bearbeiten, so dass es direkt auf dem Rohr aufliegt und eine gerade OberflĂ€che hat auf dem du dann den Sensor montieren kannst. Evtl. hilft auch noch eine kleine HĂŒlle aus Styropor, die dann alles ummantelt, so dass weniger WĂ€rme abgestrahlt wird.
Viel SpaĂ beim basteln đ
GruĂ iro
Hallo Iro,
nettes Tutorial. Wollte nur darauf hinweisen, dass man nun auch andere GPIOs als #4 mit dem Sensor verwenden kann. Habe hier einen in Betrieb als AuĂensensor. Der GPIO 4 war vorher im Kernel Modul „hard coded“. Im aktuellen Raspbian Wheezy kernel 3.10.25+ kann man den GPIO in der /boot/cmdline.txt einstellen. Ich habe den Sensor an #25 angeschlossen.
bcm2708.w1_gpio_pin=25
GruĂ aus Berlin
Hey luetzel,
Danke fĂŒr die Info! Das ist wirklich gut zu wissen đ Wird auf jeden Fall die Tage im Tutorial erwĂ€hnt!
Vielen Dank noch mal đ
GruĂ iro
Hallo, nachdem ich es Hingekommen habe, den Temperatursensor zum laufen zu bekommen, möchte ich nun die Werte in eine Liste mit einem Zeitstempel einlesen, weiss jemand wie das geht ?
Also das mit dem MRTG Diagramm ist mir zu ungenau.
eckermann hatte mal eine Àhnliche Frage. Vielleicht hilft Dir auch die Antwort, die ich ihm damals gegeben habe?
Hey,
ich hab da eine Frage; und zwar wĂŒrde ich gerne 2 Sensoren betreiben und ohne MRTG auslesen (Nur per Konsole). Ich habe die 2 angeschlossen aber in Reihe, bedeutet ich benutze nur einen Widerstand. Funktioniert das? Kann ein GPIO die Daten von 2 Sensoren hintereinander auslesen?
Lg
Hey Piet,
kurz und knapp, sollte ohne Probleme funktionieren đ Dann einfach das Script zum auslesen duplizieren, Namen Ă€ndern und im Inhalt nur die ID des Sensors Ă€ndern. Alternativ kannst du das Script auch anpassen, dass es beide Sensoren abfragt und ausgibt, aber ersteres wĂ€re auf jeden Fall die einfachere Lösung đ
GruĂ iro
Hallo zusammen,
gibt es schon neue Erkenntnisse zum Thema: Wie kann ich die Skala der Y-Achse Ă€ndern? Die Skala soll sich z.B. ĂŒber den Bereich +10% des Max-Wertes und -10% des Min-Wertes erstrecken – so wĂŒrde man auch die Schwankungen deutlicher erkennen können.
Freue mich ĂŒber jeden Tipp.
GrĂŒĂe
Muhackl
Hallo Muhackl,
wie schon geschrieben ist das mit MRTG so nicht möglich. Du kannst lediglich einen MaxBytes Wert setzen. Die Toleranz macht hier allerdings wenig Sinn, da MRTG alles was gröĂer diesem Wert ist, ignoriert. Somit musst du also einfach dein Max+10% ausrechnen und diesen Wert eintragen.
Ein Minimalwert zu setzen ist mit MRTG leider nicht möglich, hier kommt dann das RRDTool zum Einsatz. Da wir als Unterbau schon auf RRD setzen, könntest du dir eine eigene Abfrage der RRD DB mit dem RRDTool schreiben, der die Grafiken dann so erzeugt wie du haben möchtest. Weitere Infos wie man die Grafiken mit RRDTool skaliert, gibt es hier: http://oss.oetiker.ch/rrdtool/
GruĂ iro
Hallo,
kann ich auch 2 Sensoren anschlieĂen wenn ja wie ?
Hallo Maxi,
wie auf dem Bild zu sehen, einfach in Reihe schalten đ Der Abstand zwischen den Sensoren sollte egal sein solange du 20-30 Meter nicht ĂŒberschreitest đ
GruĂ iro
Hallo,
danke fĂŒr das ausfĂŒhrliche Tutorial. Ich habe zuvor noch nie etwas mit den GPIOs gemacht, hat alles super geklappt.
Ich habe das Shellscript wie in den Kommentaren bereits beschrieben auf:
temp=`echo $tempread | egrep -o â[0-9]+$â`
geĂ€ndert, somit funktionieren einstellige Temperaturwerte. Ein Problem habe ich jedoch noch, wie könnte man das Minus bei negativen Werten mitnehmen? Ich wĂ€re ĂŒber Ideen sehr froh đ
Danke!
Hallo Lukas,
gute Frage đ Ich wollte mich selbst schon lĂ€nger um das Thema kĂŒmmern, habe allerdings immer noch keinen AuĂensensor und somit keine negativen Werte.
Falls du MRTG nutzt wird das allerdings nicht einfach werden, von Haus aus unterstĂŒtzt MRTG keine negativen Werte. Allerdings gibt es in den Kommentaren hier oder im MRTG Monitoring Artikel eine Lösung wie auch negative Werte gespeichert und angezeigt werden können.
@gibbsnich: Pass doch mal das Skript an dass auch negative Zahlen ausgegeben werden đ
GruĂ iro
Hi,
dann wĂŒrde ich irgendwas auf RRDTool basierendes (Munin/Cacti) verwenden. Das ist aber bei mir nicht der Fall, ich ĂŒbergebe den Wert per HTTP POST an einen anderen Server wo die Daten dann verarbeitete werden.
Nur leider eben noch nicht als negativer Wert đ
Lukas
temp=`echo $tempread | egrep -o â[\-0-9]+$â`
Tolles Tutorial, gut erklĂ€rt đ
Hat mich neugierig auf die 1-Wire Technik gemacht. Ein paar Fragen hab ich noch:
– Im Datenblatt vom DS18S20
http://datasheets.maximintegrated.com/en/ds/DS18S20.pdf
steht eine Auflösung von 0.5°C. Wie kommst du auf 21,812°C?
– Die Ausgabe des Sensors ist:
hex0 â hexFA (0°C – 125°C)
hexFFFF â hexFF92 (-0,5°C – -55°C)
Wandelt der Raspi das um?
– Interessieren wĂŒrde mich, ob jemand schon probiert hat, die 1-Wire-Technik ĂŒber 433MHz Sender / EmpfĂ€nger zu lösen. Also irgendwie den Initialisierungspegel (Master/Slave) zu emulieren. Oder eine einfache Möglichkeit, mehrere Sensoren ĂŒber Funk am Raspi zu betreiben (Hausautomation).
GrĂŒĂe aus LA
ralphi
Hey ralphi,
das ist ne sehr gute Frage đ Kann ich dir leider auch nicht direkt beantworten warum der Raspi genauere Werte ausspuckt. Da der Raspi die Kommunikation per 1W ĂŒbernimmt und wir nur die Ergebnisse aus einer Datei auslesen, hat man keinen Einblick wie die Umrechnung erfolgt.
Allerdings wirft das Datenblatt auch folgendes aus:
„Resolutions greater than 9 bits can be calculated using the data from the temperature, COUNT REMAIN and COUNT PER °C registers in the scratchpad.“
Es scheint also durchaus möglich zu sein.
Zum Thema 433MHz und 1W habe ich leider noch keine Erfahrungen gemacht. Mein letzten Versuche mit den billigen China 433MHz EmpfĂ€ngern/Sendern meinen AuĂentemperatursensor oder meine Funksteckdosen (RC-710) auszulesen, sind leider alle schief gelaufen. Allerdings wĂ€re eine eigene Lösung mit Sensoren auf 1W/433MHz Basis wirklich interessant. Hausautomation wird die nĂ€chste groĂe Baustelle đ
Falls du hierzu noch fĂŒndig wirst wĂŒrde ich mich wirklich ĂŒber Tipps und Links freuen!
Viele GrĂŒĂe
iro
Vielen Dank fĂŒr das hilfreiche Tutorial.
Als kleine Anmerkung fĂŒr alle Raspbian User:
Ich musste das Paket BC manuell installieren, um das Shell-Script ausfĂŒhren zu können.
sudo apt-get install bc
Hi Jno,
danke fĂŒr den Hinweis, hab ich tatsĂ€chlich vergessen und ist nun korrigiert đ
GruĂ iro
Hey,
Welche Kabel hast du benutzt um das breadboard mit dem GPIO zu verbinden?
Die f/m Jumper? oder ganz normal aus einem Verdrahtungs-Set die du an den GPIO gelötet hast?
Moin bflerin,
entweder die f/m Kabel oder ein Cobbler Breakout Board wie das von Adafruit – allerdings selbst gebastelt, das von Adafruit ist ja wucher đ War innerhalb von 30 Minuten selbst gelötet und das Material kostet nur ein paar Cent đ
GruĂ iro
Hi iro,
hast du auch die Möglichkeit fĂŒr einen Bilderupload in Deinem Blog?
Hab auf Basis deiner Anleitung eine Heizungssteuerung gebaut.
grĂŒĂe aus LA
ralphi
Hey ralphi,
ist generell möglich, allerdings nur fĂŒr registrierte Benutzer. Falls du aber Lust hast, dann kann ich dir gerne einen eigenen Account erstellen. Dann könntest du auch eigene Artikel/Projekte posten đ
Was hĂ€lst du davon? đ
GruĂ iro
Hi iro,
danke fĂŒr dein Angebot.
Ich schÀtze deine kurzen und knackigen Tutorials.
Ein Projekt passt eigentlich nicht rein und zu viele Bilder, enden noch in einer Slidshow đ
Wenn ich ehrlich bin, wĂŒrde ich den Ratenschwanz an Fragen, in ein phpBB Forum verbannen und nur die wichtigsten Fragen in ein kurzes FAQ anbinden (dann wĂ€râs noch knackiger ;-).
Ich selber möchte mir jetzt auch wordpress aneignen und mal kucken, ob ich einen Àhnlich wertvollen Blog hinbekomme.
ralphi
PS: ich hab jetzt auch DS18S20 daheim (vorher nur Muster DS18B20). Bei der Temp-Auflösung gibts keinen Unterschied! Wahrscheinlich nur ein Marketing-Gag.
Hallo Iro,
dein Tutorial ist super und alles hat bis jetzt funktionier. Aber wenn ich das Script
#! /bin/bash
…
echo „Gemessene Temperatur des Sensors“ $temp2 „°C“
in /usr/bin speichern möchte erhalte ich nur die Fehlermeldung:“canÂŽt open file to write“
ZusĂ€tzlich wollte ich noch fragen wie man die temperatur irgendwie in ein Programm integrieren kann, da ich ein thermostat mit einem 434mhz sender und den alro funksteckdosen entwickeln möchte. Ist das eventuell sogar ĂŒber das leafpad möglich also mit if und while schleife und so weiter.
GrĂŒĂe
Luke
hey luke!
wenn du nicht in /usr/bin schreiben darfst, dann hast du wahrscheinlich nicht die passenden rechte. du musst wahrscheinlich zum root benutzer werden oder das eine kommando mit sudo ausfĂŒhren.
integrieren kannst du die werte sicher auch in einen weiteren Zusammenhang. du kannst den Befehl, der die Temperatur abfragt, direkt in deinem Programm aufrufen und das Ergebnis verarbeiten. oder du kannst den Befehl regelmĂ€Ăig ausfĂŒhren lassen, die Temperatur in eine Datei schreiben lassen und die auslesen. die Datei kannst du in einen ordner legen, der von einem webserver serviert wird: schon ist der wert auch von woanders verarbeitbar. the sky is the Limit đ
gruĂ, gibbsn.
Vielen Dank fĂŒr die schnelle Antwort! Aber eine Sache wĂ€re da noch… Bei dem command
sudo echo >> /etc/modules w1-gpio && sudo echo >> /etc/modules w1_therm
bekomme ich die Fehlermeldung: „permission denied“ und wenn ich direkt in die datei gehe und es dort verĂ€ndern möchte bekomme ich : „canÂŽt open file to write“
hÀngt das auch damit zusammen dass ich kein root bin? und wie werde ich zum root? weil ich habs mit sudo schon probiert funktioniert auch nicht.
GrĂŒĂe
Luke
Hey Luke,
zu root wird man mit „sudo su“ – sofern man die Rechte dazu hat đ Danach den Befehl nochmal ohne die beiden „sudo“ wiederholen.
GruĂ iro
Vielen vielen Dank! Hat mit ein paar Anpassungen problemlos funktioniert.
lg tristan
Schönes Tutorial, gleich mal ausprobieren, wenn ich bloĂ wĂŒsste wo ich die Dinger hingelegt habe…hmm.
hehe, wer kennt das Problem nicht…^^
GruĂ iro
Hallo, hab hier sehr interessiert gelesen. Ein Lob an den Autor. Möchte auch die DS18B20 nutzen.
Als kleinen Tipp zur Visualisierung und Steuerung möchte ich mal das FHEM-Projekt hierlassen. Das ist ein freier Server welcher sich mit vielen Sensoren und Aktoren unterhĂ€lt und diese dann auch visualisieren kann z.B. ĂŒber ein Web-Interface. Neben meiner Wetterstation und Funk-Heizkörpersystem MAX möchte ich nun auch die DS18B20 integrieren. LĂ€uft wunderbar auf dem Raspi :).
Ăbrigens ist der ominöse 0,5-Wert nur die Abweichung, also wie weit die gemessene Temp von der reellen abweichen kann/darf(Messfehler, lĂ€sst sich also kalibrieren) nicht aber die Auflösungsgenauigkeit.
lg motsch
Hey motsch,
danke fĂŒr die RĂŒckmeldung und den Hinweis – wieder etwas gelernt đ
FHEM habe ich auch testweise am Laufen, sieht vielversprechend aus! MĂŒsste nur noch die Zeit finden ein kleine Touch LCD anzuschlieĂen das hier noch rumliegt und mehr Sensoren integrieren đ
GruĂ iro
Hallo Gemeinde,
ich finde das ja ganz toll und auch nachvollziehbar, was ich hier als Windows-User mit dem RaspPi alles machen könnte…. und hier werden die Projekte durch Iosaurus super erklĂ€rt und durch die Kommentatoren gut ergĂ€nzt! Aber ich komme garnicht soweit… nach den beiden „modprobe“-Befehlen ( w1-gpio + w1-therm) habe ich zwar einen w1-busmaster – Eintrag in dem Verzeichnis, aber kein device ala „10xxxx“. Kann ich irgendwie prĂŒfen, ob mein Sensor defekt ist? Was machen die Befehle, wenn sie mit modprobe in den Kernel geladen wurden? Geben die ein „Hallo, Sensor, melde Dich!“ aus, oder warten die, das da was passiert? Kann ich das irgendwie prĂŒfen?
(RaspPi B+ mit DS1820-Sensor, der frĂŒher ĂŒber den Conrad-Temperaturdatenlogger im parasitĂ€ren Modus funktioniert hat, nun aber fĂŒr RaspPi-Einstieg herhalten darf)
GruĂ
Obersimulant
Hallo Obersimulant,
wenn lsmod anzeigt, dass die Module fĂŒr 1wire geladen wurden, dann ist zu 99% der Sensor falsch angeschlossen. Hast du den Widerstand mit eingebaut? Falls + und – vertauscht ist, wird der Sensor sehr heiĂ. Wenn man das nicht schnell genug bemerkt, kann er dabei bestimmt auch drauf gehen. Aber prĂŒf als aller erstes noch einmal deine Verkabelung anhand meiner Zeichnung.
GruĂ iro
Sorry, wenn ich mich jetzt erst melde, aber ich hab mir erst noch einen Cobbler und ein paar neue Sensoren besorgt und siehe da: Mit den neuen Sensoren gehts ( DS 18B20). Anscheinend habe ich die alten zerschossen.Vmtl. habe ich durch das Flachbandkabel die AnschlĂŒsse verdreht. Durch den Cobbler (U-Form) hab ich sie nun beschriftet zum Breadboard gefĂŒhrt und es geht… đ
Nun werde ich mich mal an Dein Tutorial mit MRTG wagen!
Vielen Dank fĂŒr Deine Hilfe, Iro
Bam! Geiles Tutorial!!! Geiler Blog!!!
… Aber .. mit der Syntax [\-0-9] in Zeile „5“ aus dem Tutorial klappt das bei mir nicht… erst wenn ich die ‚.{5}$‘ einsetzt, wie es ursprĂŒnglich der Fall zu sein schien klappt das… Hat mich alles in allem aber enorm weiter gebracht… Ich baue mir einen Aquarien Computer und auch die Ausgabe in eine Grafik werde ich mir bei Euch „klauen“ … Habt Ihr einen Tip, wo ich ein Tutorial finde, damit ich Relais Temperatur abhĂ€ngig schaltbar mache? Das werde ich mit $ if, then & else machen mĂŒssen, das ist klar… Schalten kann ich die bereits mit einer anderen .sh aber ich finde nichts wie ich die anbinden kann an den DS18B20 … Bin Linux / Shell / Python noob – aber lern willig đ
Also fĂŒr einen „hint“ wĂ€re ich mega Dankbar!
Greeeeetz Chris
Hey Chris,
danke fĂŒr die Blumen đ Mit den Regex verzweifle ich jedes mal wieder aufs neue und muss gibbsnich fragen^^ Aber schau dir mal die ganzen Antworten an, da gabs verschiedene Regex die funktioniert haben đ
Thema Relais schalten fallen mir spontan zwei einfach Lösungen ein, entweder du liest die Daten in einem loop mit for aus und lÀsst die Schleife alle X Sekunden/Minuten laufen. Oder noch einfacher mit einem Cron der alle X Minuten lÀuft und dein Script aufruft.
GruĂ iro
Hi zusammen,
bitte das Tutorial noch ergĂ€nzen, da die Einbindung der DS 1820 (und alles andere ĂŒber GPIO) nicht mehr wie oben beschrieben ab der Kernelversion 3.18.3 funktioniert!!! (bzw. die function „device tree“ ab 3.18.3 deaktiviert werden muss )
folgendes sollte geprĂŒft werden:
– Kernelversion kontrollieren (muss mindestens v3.18.3 sein) mit
> uname -r
wenn die Kernelversion >= 3.18.3 dann:
folgende Zeilen in „/boot/config.txt“ eintragen:
># activating 1-wire with pullup
>dtoverlay=w1-gpio-pullup
falls eine Debug-Funktion gewĂŒnscht wird auch folgendes in die „config.txt“eintragen:
># activating device tree debugging (use: sudo vcdbg log msg)
>dtdebug=on
Debuggen kann man mit dem Befehl:
>sudo vcdbg log msg
In der Datei „modules“ sollten die Zeilen „w1_gpio“, „w1_therm“ + „w1_wire“ auskommentiert oder gelöscht werden.
Danach ein Reboot!
(Quelle: FhemWiki:http://www.fhemwiki.de/wiki/Raspberry_Pi_und_1-Wire#ab_2015_bzw._Kernelversion_3.18.3 )
GruĂ
Ingo
Hey Ingo,
vielen Dank fĂŒr die Info ĂŒber die Ănderungen! Werde den Artikel demnĂ€chst mal ĂŒberarbeiten mĂŒssen đ
GruĂ iro
Moin, toller Tutorial.
Kann mir jemand sagen wie lang die Leitung vom FĂŒhler sein darf?
Ich wĂŒrde gerne den DS18B20 nehmen mit 10m LeitungslĂ€nge.
Danke
Hey dobi,
bis zu 100m, je nach gewÀhltem Widerstand. Schaust du hier: https://de.wikipedia.org/wiki/1-Wire
GruĂ iro
Hallo,kann mir mal jemand sagen wie ich den Sensor Ds18b20 am Raspberry anschlieĂen muss?!
Am Sensor habe ich rot,blau und weiĂ.
Danke
Hallo, ich hoffe ihr könnt mir helfen ich habe meinen DS18B20 Sensor angeschloĂen, der Sensor wird leider nicht erkannt. Aber ich habe den Ordner /modules garnicht.
Wenn ich lsmode eingebe dann zeigt er an:
wire 311248 2 w1_gpio,w1_therm
was mache ich falsch?
Vielen dank fĂŒr die hilfe!!!
ok, es geht alles soweit, aber warum habe ich den Ordner etc/modules nicht??
danke
Hey dobi,
solange alles funktioniert, brauchst du den Ordner nicht đ Falls es nicht funktioniert, dann schau dir bitte mal den Kommentar von Ingo an.
GruĂ iro
Hallo,
hoffe ihr Profis könnt mir weiterhelfen. Habe Raspberry Pi2 B geholt und ein paar DS18S20 Sensoren. Da die Kernelversion 3.18.13 ist, habe ich so wie Ingo beschrieben konfiguriert.
dtoverlay=w1-gpio,gpiopin=4,pullup=on
nach dem reboot:
sudo modprobe w1-gpio pullup=1
sudo modprobe w1-therm
aber devices Ordner ist leer đ Also Sensor wurde nicht erkannt.
Sensor habe ich so wie oben beschrieben angeschlossen. Hab am Anfang leider den Sensor falschrum reingesteckt, sodass es verpolt wurde (Sensor war sehr heiĂ).
Dieser Sensor könnte kaputt sein, aber habe noch zwei neue. Leider wurde keinen von den Sensoren erkannt.
Hey 2bndone,
ich hab momentan leider keine Zeit das noch einmal mit dem neusten Kernel zu probieren. Sobald ich dazu komme, gibts hier ein Update đ Allerdings kann ich dich beruhigen, die Sensoren funktionieren normalerweise auch noch, nachdem sie sehr heiĂ geworden sind – hab ich auch schon getestet đ
GruĂ iro
Hallo zusammen,
erstmal muĂ ich ein groĂes Lob an den Verfasser dieses Tutorials richten.
FĂŒr mich als „Neuling“ des Raspberry PiÂŽs, ist schon erstaunlich, wie einfach das mit dem Programmieren geht, oder auch nicht. Wenn ein Punkt, Zeichen oder Leerstelle
das Programm zum „Einsturz“ bringt und man hĂ€nderingend nach Lösungen sucht.
Ich habe das Programm, wie ganz oben beschrieben durchgefĂŒhrt. Und wenn ich in LX den Befehl: temp eingebe, bekomme ich immer wieder die folgende Meldung:
pi@raspberrypi ~ $ temp
egrep: Das Ende des angegebenen Intervalls ist nicht gĂŒltig
(standard_in) 1: syntax error
Gemessene Temperatur des Sensors °C
Dabei habe ich in dieser Zeile folgendes stehen:
temp=`echo $tempread | egrep -o ‚[\-0-9]+$’`
Kann mir jemand erklÀren, wie ich dem Fehler auf die Spur kommen kann.
Danke allen schon mal vorab.
GruĂ aus der Eifel von Helma
Hey Helma,
ich tippe mal auf die “ ` „. Ersetz die mal durch “ ‚ „. Wird bei Copy&Paste manchmal nicht richtig kopiert.
GruĂ iro
schöne Beschreibung, habe damit meinen Sensor zum laufen bekommen. Danke!
Vorgestern habe ich Jessie installiert.
wenn ich hier den Sensor in die /etc/modules Datei eintrage, gibts beim booten eine Warnmeldung.
Ich habe die Zeilen wieder gelöscht und nach einem Neustart ging es trotzdem.
Scheinbar werden die Treiber automatisch geladen.
Den Eintrag in /boot/config.txt musste ich aber trotzdem machen.
Happy Pythoning,
Thomas
Hey Thomas,
danke fuer die Rueckmeldung đ Du hast recht, mit Jessie werden die Treiber mittlerweile wohl automatisch geladen. Muss die Anleitung bald mal wieder updaten đ
Gruss iro
Hallo zusammen,
kann man dem Raspberry auch irgendwie sagen, dass wenn die Temperatur einen Schwellwert ĂŒberschreitet, dann eine Alarm-Email verschickt wird?
Danke und Servus Markus
Hi Markus,
klar, das geht, der Pi spricht ja zum GlĂŒck diverse Sprachen đ Das Vorgehen ist prinzipiell wie oben beschrieben: Du brauchst eine Skript-Datei und die muss periodisch ausgefĂŒhrt werden (z.B. mit cron jede Minute), dort muss eine Bedingung eingebaut sein, wenn die „wahr“ ist, wird mit dem `mail`-Kommando (musst Du wahrscheinlich noch separat konfigurieren!) eine Mail verschickt. UngefĂ€hr so:
#!/bin/bash
maxtmp=12
tempread=`cat /sys/bus/w1/devices/10-0008017b5e27/w1_slave`
temp=`echo $tempread | egrep -o 't=[-0-9]+$' | cut -d = -f 2`
temp2=`echo "scale=2; $temp / 1000" | bc`
if [ 1 -eq `echo "${temp2} > ${maxtmp}" | bc -l` ]; then
mail -s "subjekt" email@address.com <<< "warnung: temperatur ist hoch" fi
Hallo zusammen,
der Beitrag ist zwar schon etwas Ă€lter, aber vielleicht kann mir hier trotzdem jemand einen Rat geben. Ich habe alles wie beschrieben durchgefĂŒhrt, erhalte jedoch unter /sys/bus/w1/devices/ keine weiteren Ordner oder Dateien…erkennt er etwa den Snsor nicht oder was ist da los?
gruĂ Lars
Hallo Lars,
lies die Kommentare, das sollte die Antwort bringen đ Mittlerweile muss man das 1-wire Protokoll anders einbinden. Die Lösung steht aber irgendwo đ
GruĂ iro
Guten Abend,
in den letzten Kommentaren habe ich nun diese Zeile gelesen:
temp=`echo $tempread | egrep -o ‚t=[-0-9]+$‘ | cut -d = -f 2`
Aber auch etliche andere wie ‚[\-0-9]+$’`
oder aber auch ‚.{5}$’`
leider habe ich bei eingabe wie im zweiten Beispiel eine wie oft genannte Fehlermeldung und bei Versuch der anderen bekomme ich keine negativen Zahlen zustande. Beim auswerten der RRD Table werden auch keine zuverlÀssigen Daten gespeichert.
Ich hoffe es kann mal jemand schreiben mit welcher „konfiguration“ zuverlĂ€ssig negative Werte ausgelesen und dargestellt werden können.
Vielen Dank
Liebe grĂŒĂe