[openhab] Onewire Sensoren einbinden

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]" (flur,temperatur) { exec="<[/home/openhab/bin/onewiretemp.sh 28-000004b92eb4:60000:REGEX((.*?))]" } Number Temperature_Pia "Temperatur Pia [%.1f °C]" (temperatur) { exec="<[/home/openhab/bin/onewiretemp.sh 28-000004b91510:60000:REGEX((.*?))]" }

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
}

ob-onewire1

ob-onewire2

Wie die Onewire Sensoren mit dem Raspberry Pi verbunden werden, habe ich in dem Artikel beschrieben.

20 Gedanken zu „[openhab] Onewire Sensoren einbinden

  1. revil.o

    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

    Antworten
  2. Csongor

    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?

    Antworten
  3. Nicolas

    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

    Antworten
  4. Heiko

    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

    Antworten
  5. GiGi

    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

    Antworten
      1. ed

        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

        Antworten
        1. hermann Beitragsautor

          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?

          Antworten
          1. ed

            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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert