Raspberry Pi

Seitenversionierung:
Version 1.023.12.2012Initialversion
Version 1.106.01.2013Anmerkung zum I2C-Bus ergänzt
Dr. Boris Neubert omega@online.de
Hausautomation
Home

Zusammenfassung

Diese Seite beschreibt die Nutzung des Raspberry Pi für die Hausautomation mit FHEM.

1-wire

Hardware

Die Schaltung wird auf einer Dreierstreifenrasterplatine aufgebaut. Die 1-Wire-Geräte werden mittels eines DS 2482-100S 1-Channel 1-Wire Master mit dem Raspberry Pi verbunden. Da der DS2482 nur in einer SMD-Variante erhältlich ist, wird er auf einen SMD-Adapter gelötet und auf einen Sockel gesteckt.

Anschlüsse am Raspberry Pi (untere Reihe):

PinSignal
P1-013.3V
P1-03SDA
P1-05SCL
P1-09GND

Die Busleitung wird mit einem Modularstecker (4p4c) an die Platine angebunden. Die Belegung ist gleich zur Belegung beim CUNO gewählt.

Der Bus wird über einen 60 Ω-EMV-Ferrit-Entstörfilter mit Spannung versorgt. Die Spannungsversorgung des Raspberry Pi ist mit einer rückstellenden Sicherung (200 mA Auslösestrom) auf der Streifenrasterplatine geschützt.

Software

Auf dem Raspberry Pi ist in /etc/modprobe.d/raspi-blacklist.conf das Blacklisting des Moduls i2c-bcm2708 auszukommentieren:

#blacklist i2c-bcm2708
In /etc/modules ist
i2c-dev
einzutragen. Die weiteren erforderlichen Schritte sind
sudo apt-get install libi2c-dev python-smbus i2c-tools
sudo adduser pi i2c
sudo shutdown -r now
Am I2C-Bus angeschlossene 1-wire-Geräte können mittels
i2cdetect -y 1
detektiert werden. Achtung: der DS2482 wird nicht angezeigt!

Auf dem Raspberry Pi (Hostname: raspi) läuft OWFS. Die Konfigurationsdatei /etc/owfs.conf hat diesen Inhalt:

server: device = /dev/i2c-1 # i2c port: DS2482-100
http: port = 2121
ftp: port = 2120
server: port = localhost:4304
server: port = raspi:4304
Celsius
Die FHEM-Konfigurationsdatei kann beispielsweise wie folgt ergänzt werden:
define OWSERVER OWServer raspi:4304

define 0.hr.t1 OWDevice 10.487653020800 60 
define 0.hr.t1.log FileLog /opt/fhem/log/0.hr.t1.log 0.hr.t1
attr 0.hr.t1.log logtype temp4:Plot,text:Text
Anmerkung: diese Anleitung gilt für Raspberry Revision B. Revision A hat nicht den I2C-Bus 1 sondern den I2C-Bus 0 nach außen geführt. Entsprechend muß es heißen:
i2cdetect -y 0
und
server: device = /dev/i2c-0 # i2c port: DS2482-100