FHEM – I2C-Baugruppen einbinden

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]


 

 

Speichere in deinen Favoriten diesen permalink.

2 Kommentare

  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.

Schreibe einen Kommentar

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