In dem ein oder anderen Zimmer befindet sich ein Onewire Sensor um die Temperatur zu messen, die gemessene Temperatur soll nun im openhab dargestellt werden.
Für das auslesen habe ich das Shellscript onewiretemp.sh erstellt:
#!/bin/bash
wert=`cat /sys/bus/w1/devices/$1/w1_slave | tail -n1 | cut -d '=' -f2`
wert2=`echo "scale=3; $wert/1000" | bc`
echo $wert2
Das Script liegt unter /home/openhab/bin und beim Aufruf muss die Sensor ID mit angegeben werden.
./onewiretemp.sh Sensor Id
Die gemessene Temperatur wird dann wie folgt ausgegeben 20,745.
Die Abfragen der einzelnen Sensoren habe ich in einer items Datei zusammengefasst.
Group temperatur
Number Temperature_Flur "Temperatur Flur [%.1f °C]"
Damit die Ausgabe an mehreren Stellen in der Sitemap erfolgt, können bei der jeweiligen Abfrage mehrere Gruppen angegeben werden.
Hier noch ein Auszug aus der sitemap:
Frame label="Temperatur"{
Group label="Temperatur" icon="house" item=temperatur
}
Wie die Onewire Sensoren mit dem Raspberry Pi verbunden werden, habe ich in dem Artikel beschrieben.
moin hermann,
vielen Dank für Dein Tutorial. Nach so einer Lösung hab ich lange gesucht, um meine DS18B20-Sensoren native via w1-gpio einzubinden und nicht noch nen DS94*-USB-OneWire-Adapter für viel Geld kaufen zu müssen und den owserver auf dem Raspi laufen zu lassen.
Danke und viele Grüße ausm Norden
revil.o
Sorry for writing in English, but I don’t speak German. I am trying to use your script above, but I am getting the following error message:
root@raspberrypi:/opt/openhab# ./onewiretemp.sh 28-00000433cda6
./onewiretemp.sh: line 3: bc: command not found
What did I do wrong?
I think bc is not installed on your system, try to install it with apt-get install bc
Hallo,
vielen Dank für die tolle Anleitung. Ich habe das Script geschrieben und es funktioniert auch wunderbar. Temp wird korrekt ausgegeben.
Unter openHab bekomme ich jedoch keine Temperatur angezeigt. :-(( Exec Binding ist installiert. Mache ich hier noch etwas falsch?
Vielen Dank und einen guten Rutsch
Darf der Benutzer unter dem openhab läuft das Script ausführen?
Steht ein Hinweis in der Log Datei?
Hallo,
habe das gleiche Problem wie Nicolas.
Alles genau so gemacht, Script läuft und ist für jeden ausführbar.
Trotz der Exec Binding keine Anzeige im Openhab.
Bin echt am verzweifeln.
Frohes neues Jahr wünsche ich euch allen.
Heiko
Ich habe die Sensoren im Moment leider nicht im Einsatz, versuche es Abern die Tage einmal nachzustellen.
Der openhab Benutzer kann das Script auf der Kommandozeile ausführen?
Hello,
I try to get this to work in openhab2 but run against issues when I try to read the temperature values.
Is the onewiretemp.sh script correct? Please look at my folder contents below.
When I run it I get the following error:
[10:57:05] openhabian@openHABianPi:/etc/openhab2/scripts$ sudo bash ./onewiretemp.sh 28-0416c428d3ff
(standard_in) 1: illegal character: ^M
An ls of the folder /sys/bus/w1/devices returns 4 subfolders:
[10:57:08] openhabian@openHABianPi:/etc/openhab2/scripts$ ls /sys/bus/w1/devices
28-0416c428d3ff 28-0416c4aaa6ff 28-0416c4b607ff w1_bus_master1
Please help.
Thank you,
GiGi
The ^M Looks like Windows Commands in a Text file.
Did you edit the file with vi?
Schönes artikel.
ist es egal mit welchem GPIO pin der DS18B20 verbunden ist?
Leider nein, den zu verwendenden Pin findest du im Artikel http://www.itbasic.de/raspberry-pi-temperatur-sensor-auslesen/
Danke, das war nicht klar zu mir
sadly I get
cat: /sys/bus/w1/devices/280F2A2800809f/w1_slave: No such file or directory
(standard_in) 1: syntax error
Is the Folder 28… under the path /sys/bus/w1/devices/?
actually, the „w1“ and „w1/devices“ folders only appeared after i manually entered
sudo modprobe w1-gpio and
sudo modprobe w1-therm
Subsequently running the ./onewiretemp.sh 28etcetera command again gives the same error (No sucg file or directory and has not created the ’28‘ Folder
In the First Moment I think t there could be a connection problem to the one wire Sensor.
can you check the connection or another Sensor?
Hermann, Thank you for your prompt replies. After reading up on linux commands and what your script does, indeed i started to suspect my sensor as well.
Turns out it has problems on an arduino as well.
I best get a new one and try again.
Thankyou for your help
No Problem, you are welcome
Thank you. no it is not. I do not even have the folder ‚ẃ1‘ or ‚w1/devices‘ should I have created that?