Über den Adapter i2c ist es möglich diverse Geräte über den I²C-Bus in ioBroker einzubinden.

In meinem Projekt HomePi verwende ich einige ICs vom Typ PCF8574 zur Bereitstellung von zusätzlichen GPIOs. Dieser Beitrag soll die Einbindung der PCF8574 ICs in ioBroker beschreiben.

Es wird davon ausgegangen, dass der I²C-Bus bereits am Raspberry Pi eingerichtet ist und die angeschlossenen ICs erreichbar sind.


Installation des Adapters i2c

Die Installation des Adapters i2c ist grundsätzlich über das latest-Repository möglich.

In der dort verfügbaren Version ist jedoch leider noch keine Unterstützung für die Verwendung des Interrupt-Signals des PCF8574 enthalten. Über einen Fork habe ich den Adapter um diese Funktion erweitert und einen entsprechenden Pull Request erstellt. Da der Autor des Adapters aktuell inaktiv zu sein scheint, zeige ich im Folgenden die Installation des Adapters direkt von GitHub auf Grundlage meines Forks.

Für die Installation direkt aus einem GitHub Repository benötigen wir ein Terminal. In diesem Terminal installieren wir den Adapter direkt mittels npm wie folgt:

sudo -H -u iobroker npm install https://github.com/crycode-de/ioBroker.i2c/tarball/master --production --save --prefix "/opt/iobroker"

Nachdem diese Installation abgeschlossen ist aktualisieren wir die Adapterseite in der Administrationsoberfläche und suchen dann nach i2c. Bei dem gefundenen I2C Adapter klicken wir auf den +-Button, um eine neue Instanz hinzuzufügen.

Sobald dies Abgeschlossen ist, öffnet sich automatisch die Adapterkonfiguration, welche wir vorerst auch direkt wieder schließen können.

In der Übersicht der Instanzen starten wir nun die Instanz i2c.0 durch einen Klick auf den Play-Button.

Sobald die Instanz läuft, öffnen wir wieder die Adapterkonfiguration durch einen Klick auf den Schraubenschlüssel-Button und klicken dort dann auf Geräte suchen. Die erkannten I²C-Geräte werden daraufhin als einzelne Tabs angezeigt und können über diese konfiguriert werden.


Verwendung der Interrupts

Für die Verwendung der Interrupts ist der RPI-Monitor Adapter erforderlich. Die Installation von diesem habe ich bereits im Beitrag ioBroker GPIOs beschrieben.

Standardmäßig werden Veränderungen an Eingangspins über aktives Polling abgefragt. Das Intervall, in dem die Abfragen stattfinden wird über die Option Abfrage-Intervall festgelegt.

Über die Auswahl eines Interrupt-Objektes kann ein GPIO des Raspberry Pi ausgewählt werden, an dem die Interrupt-Leitung des PCF8574 ICs angeschlossen ist. Sobald sich dann der State von diesem Interrupt-Objekt ändert, werden die Eingänge des ICs neu gelesen. Das Abfrage-Intervall kann dann auf 0 gesetzt und damit deaktiviert werden.


Objekte

Gemäß den gewählten Einstellungen für die einzelnen ICs werden die Objekte für die Ein- und Ausgänge automatisch durch den Adapter angelegt und jeweils auch als Input oder Output gekennzeichnet.