FHEM – GPIO Pins abfragen und reaglieren

Unser INT vom I2C-Bus liegt auf dem GPIO17 vom Raspberry PI.

Mit den zwei Zeilen wird ein GPIO mit FHEM alle 20ms eingelesen

define GPIO17 RPI_GPIO 17
attr poll_intervall 0.002

Das gleiche machen wir noch mit dem GPIO4. An diesem Pin ist der Taster von unserem I2C-Repeater mit Taste angeschlossen

define GPIO4 RPI_GPIO 4
attr poll_intervall 0.002

Auf der Oberfläche sollte es dann in etwa so aussehen. Wird der Taster auf dem Repeater gedrückt toggelt der GPIO4.

Ändert sich ein Bitmuster an der angeschlossenen Eingangskarte toggelt der GPIO17

 

2 Kommentare

  1. Hallo, ich habe 8x I2HA, 8 I2HE und den I2RPI+T. Ich habe meine raspi 3b soweit vorbereitet und auch über i2cdetect -y 1 alle digital IOś erreicht. Nach ein paar Versuchen in FHEM ein Test Programm zu schreiben merkte ich das die LED´ś sich nicht mehr veränderten(hatte beim einpflegen der einzelnen I2c Module jeweils die Portś testweise angesteuert wo auch die LED´s der einzelnen Module an und aus gingen). Nach einem Reboot merkte ich das die RPII2C – myI2C in error stand im FHEM. Nach einem reboot konnte ich den Fehler nicht beheben. Bei der Überprüfung des i2cdetect -y 1 konnten keine i2c Module gefunden werden. Raspberry und I2C Module laufen mit 2 separaten Netzteilen. Der Repeater bekommt die 5V von der I2c Spannungsversorgung.

    Könnte es sein das die Repeater Platine oder die I2C Module einen Fehler haben?
    Oder muss ich die raspberry neu aufsetzen?

    • Hallo,
      ich würde mal nur den Repeater und eine Karte an den Bus hängen und testen ob die sich mit i2cdetect -y 1 ansprechen lässt.
      Das beschriebene Verhalten zeigt sich wenn ein Slave den Bus stört oder ganz auf GND zieht.
      Sie können auch mal zwischen SDA und GND sowie zwischen SCL und GND die Spannung messen.
      Im Ruhezustand, also wenn keine Kommunikation zu den Slaves läuft, müssen hier ca. 5V anliegen.
      Viel Erfolg

Schreibe einen Kommentar

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