Dieser Beitrag befasst sich mit FHEM und wie die Module von Horter & Kalb in das System eingebunden werden können.
Auszug aus der FHEM Homepage
FHEM (eingetragene Marke) ist ein in Perl geschriebener, GPL lizensierter Server für die Heimautomatisierung. Man kann mit FHEM häufig auftretende Aufgaben automatisieren, wie z.Bsp. Lampen / Rollladen / Heizung / usw. schalten, oder Ereignisse wie Temperatur / Feuchtigkeit / Stromverbrauch protokollieren und visualisieren.
Von einigen Kunden angesprochen haben wir uns jetzt auch mal mit dem Thema beschäftigt und festgestellt FHEM ist echt cool 🙂
In Zahlreichen Foren gibt es schon Einträge zu unseren I2C-Baugruppen. Dieser Beitrag soll helfen einen schnellen Einstieg in das Einbinden der Rspberry-SPS-Baugruppen zu schaffen.
Hardwareaufbau
An unsere Testumgebung haben wir zwei Digitale EIngangsmodule und zwei digitale Ausgangsmodule über einen Repeater an den Raspberry angeschlossen.
Wir verwenden zwei Netzteile. Eine für den Raspberry-PI am USB-Port, ein zweites für die I2C-Baugruppen.
Das INT-Signal (graue Leitung im Schema) ist nur an der ersten DI-Baugruppe angeschlossen. An dieser Baugruppe sind Taster angeschlossen, die wir später per Interrupt einlesen wollen.
An der zweiten DI-Baugruppe sollen Rückmeldungen z.B. von Fensterkontakten eingelesen werden. Diese werden zyklisch alle 2 Sekunden gelesen.
Die Adressen der Module sind wie folgt:
Baustein | Jumper | Adresse 8-Bit dezimal | Adresse 7-Bit hex | |
DI-Karte 1 | PCF8574A | OFF OFF OFF | 112 | 38 |
DI-Karte 2 | PCF8574A | OFF OFF ON | 114 | 39 |
DO-Karte 1 | PCF8574 | OFF OFF OFF | 64 | 20 |
DO-Karte 2 | PCF8574 | OFF OFF ON | 66 | 21 |
Raspberry-Installation
Bei uns läuft FHEM auf einem Raspberry Pi 3 Model B Rev 1.2
Eine Anleitung zur Installation von FHEM auf dem Raspberry-Pi finden ihr im FHEM-Wiki
Auf der Seite Erste Schritte mit FHEM findet man viele Informationen für den ersten Einstieg.
Für den Zugriff auf die GPIOs und I2C gibt es im Forum diesen guten Beitrag Raspberry Pi: GPIOs schalten
Das Modul RPI_GPIO für den Zugriff auf die GPIO Pins des Raspberry wird bereits mit FHEM mitgeliefert. Die Ansteuerung der GPIOs erfolgt über das Filesystem (sysFs). Daher werden keine weiteren Programme/Treiber benötigt.
Ob das stimmt weiß ich nicht mehr. Wir haben viel rumprobieren müssen. Ein wichtiger Hinweis war dieser Satz
Der Benutzer „fhem“ muss der Gruppe „gpio“ hinzugefügt werden, damit FHEM später auch Zugriff auf die GPIO Ports hat.
sudo adduser fhem gpio
Falls doch WiringPi benötigt wird bitte diesen Abschnitt beachten
WiringPi installieren: (normalerweise nicht notwendig)
sudo apt-get install git-core git clone git://git.drogon.net/wiringPi cd wiringPi ./build sudo reboot
Über die Konsole sollten spätestens jetzt die I2C-Module erkannt werden
i2cdetect -y 1
Als Antwort vom PI bekommt man diese Tabelle aufgelistet:
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: 20 21 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- 38 39 -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Wenn das läuft den aktuellen Stand der SD-Karte in ein Image sichern.
Weitere Beiträge zum Thema
[maxmegamenu location=max_mega_menu_1]
Hallo,
ich habe folgendes Problem und komme nach einer Woche tüfteln und Neuinstallationen nicht weiter.
Bei der Installation habe ich mich streng an das fhem-wiki gehalten.
https://wiki.fhem.de/wiki/Raspberry_Pi#Betriebssystem
Installierte Version:
Linux raspi-fhem 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/LinuxR
Raspi 3 mit Bluetooth
pi@raspi-fhem:~ $ ls -l /dev/i2c-1
crw-rw—- 1 fhem dialout 89, 1 Apr 10 20:41 /dev/i2c-1
Problem 1:
Der I2c – Bus muss nach jedem Neustart des Raspi neu angelegt werden.
Nach jedem Neustart müssen die Rechte neu von Root auf fhem geändert werden.
Mit Rootrechten lässt sich der i2c-Bus nicht neu installieren .
So startet der Raspi:
pi@raspi-fhem:~ $ ls -l /dev/i2c-1
crw-rw—- 1 root i2c 89, 1 Apr 10 20:41 /dev/i2c-1
sieht nach händiger Änderung dann so aus:
pi@raspi-fhem:~ $ ls -l /dev/i2c-1
crw-rw—- 1 fhem dialout 89, 1 Apr 10 20:41 /dev/i2c-1
Problem 2:
Die digitale Eingangskarte signalisiert zwar an der LED wenn ich 5 oder 9 Volt anlege (Port 0 u.a.), aber unter fhem wird nicht geschaltet, wie es in ihrer Beschreibung steht
Der I2C-Bus unter fhem zeig Initialize und nicht ok an
Haben Sie eine Idee oder Anhaltspunkt, wo ich weitersuchen kann?
Viele Grüße
Udo
Hallo,
versuchen SIe mal folgenden Eintrag in die /etc/rc.local:
chown fhem /dev/i2c-*
chgrp dialout /dev/i2c-*
chmod +t /dev/i2c-*
chmod 660 /dev/i2c-*
Dann sollte es klappen.