1Wire Temperatursensoren

Aufgabenstellung

Es sollen die Temperaturen der 1Wire Sensoren (DS18x20) eingelesen werden. Sobald die Sensoren im Filesystem erreichbar sind, können diese per exec-Binding und einem kleinen Shell Script eingelesen werden.

Das folgende Bild zeigt einen 1Wire Temperatursensor unter openHAB.

openHAB_Hubo1Wire

 

 Lösung

Die items Datei erhält dazu den folgenden Eintrag:

Number	Temp_Sensor1 "DS 18x20  [%.3f °C]" <temperature> (Hubo_DS18x20, gHubo_Uebersicht {exec="<[/opt/openhab/configurations/scripts/./ReadDS1820 28-00000533f61a:1000:REGEX((.*?))]"}

Die ID des Temperatursensors wird dabei dem Script mitgeteilt, damit dieses auch für andere Sensoren verwendet werden kann. Das Script ist Bestandteil der Installation und beinhaltet nur wenige Zeilen Code.

#!/bin/bash
# Read DS 1820 temperature sensors.
# usage ./ReadDS1820 <sensor-id>
# e.g.  ./ReadDS1820 28-00000533f61a
temp=`cat /sys/bus/w1/devices/$1/w1_slave | tail -n1 | cut -d '=' -f2`
let value=temp/1000
let remainder=temp-value*1000
printf "%d.%d\n" $value $remainder

Die Kommentare wurden geschlossen