FHEM – I2C-Module anlegen und adressieren

I2C-Bus in FHEM definieren

mit folgenden drei befehlen kann in FHEM der I2C-Bus angelegt bzw. definiert werden

define myI2C RPII2C 1
attr myI2C room i2c
attr myI2C verbose 5

So ähnlich sollte das dann aussehen

I2C-Eingangsmodul in FHEM anlegen

Als nächstes müssen wir eine I2C-Eingangskarte mit dem PCF8574A anlegen.

define modulE38 I2C_PCF8574 0x38
attr modulE38 room i2c
attr modulE38 IODev myI2C
attr modulE38 InputPorts 0,1,2,3,4,5,6,7
attr modulE38 OnStartup 0=on,1=on,2=on,3=on,4=on,5=on,6=on,7=on
attr modulE38 event-on-change-reading state,Port0,Port1,Port2,Port3,Port4,Port5,Port6,Port7
attr modulE38 poll_interval 0.2

In der ersten Zeile wird der PCF8574A mit der Adresse 38hex definiert
und anschließend einem neuen Raum „i2c“ zugeordnet.
Die dritte Zeile wird das Modul dem I2C-Bus zugeordnet
In der vierten Zeile definieren wir alle Pins als Eingänge (Input-Ports)
Die fünfte Zeile sorgt dafür, dass alle Ausgänge vom PCF8574A beim Einschalten auf HIGH gesetzt werden.
Zeile sechs sagt FHEM, dass egal welcher Pin kippt ein event ausgelöst werden soll
In Zeile 7 wird festgelegt, dass die Eingänge alle 0.2 Sekunden abgeholt werden sollen

Unsere Eingangs-Module arbeiten genau wie die Ausgangsmodule in der invertierten Logik.
Nach dem Lesen muss der Eingang invertiert werden.
Wie das mit FHEM geht zeigen wir später.

 

I2C-Ausgangsmodul in FHEM anlegen

Jetzt legen wir eine I2C-Eingangskarte mit dem PCF8574 an.

define modulA20 I2C_PCF8574 0x20
attr modulA20 room i2c
attr modulA20 IODev myI2C
attr modulA20 OnStartup 0=on,1=on,2=on,3=on,4=on,5=on,6=on,7=on

In der ersten Zeile wird der PCF8574 mit der Adresse 20hex definiert
und anschließend einem neuen Raum „i2c“ zugeordnet.
Die dritte Zeile wird das Modul dem I2C-Bus zugeordnet
Die vierte Zeile sorgt dafür, dass alle Ausgänge vom PCF8574 beim Einschalten auf HIGH gesetzt werden.

Unsere Module arbeiten in der invertierten Logik.
Damit ist sichergestellt dass alle Ausgänge bei Spannungs-Wiederkehr AUS-geschaltet bleiben.
Bei der Ansteuerung unserer Module muss das Bitmuster invertiert werden.
Wie das mit FHEM geht zeigen wir später.

 

So ähnlich sollte das aussehen nachdem die Modue angelegt sind

Die Eingänge werden zyklisch eingelesen. Schaltet ein Eingang auf HIGH geht kurz die rote LED am Eingang-Modul ein. Sobald der Raspberry die DI-Karte eingelesen hat, wird die LED wieder dunkel.

Später zeigen wir noch wie man das INT-Signal (GPIO 17) benutzen kann um Eingänge nur dann zu lesen wenn sich etwas verändert hat.
Bei Endschaltern (Türkontakten / Fensterkontakten) kann auch ein zyklisches Einlesen alle 5 Sekunden ausreichend sein ohne das INT-Signal auszuwerten.
In dem Fall einfach diese Eingangs-Module nicht mit dem INT verbinden.

FHEM – GPIO Pins abfragen und reaglieren

 

I2C-Analog-Eingangsmodul in FHEM einbinden

Für die Horter & Kalb I2C-Eingangsmodule z.B. I2HAE  (oder I2AE8) gibt es kein fertiges Modul in FHEM.

Als erstes legen wir einen Dummy für den Analogwert CH0 an und legen ihn in die Gruppe „Modul E08“

define AE08_CH0 dummy
attr AE08_CH0 group ModulE08
attr AE08_CH0 room i2c

Anschließend noch vier weitere Dummies AE08_CH1 … AE08_CH4 anlegen und dem Raum und der Gruppe zuweisen.

So sollte das dann ungefähr aussehen. Werte werden aber noch nicht angezeigt.

Im nächsten Beitrag zeigen wir, wie die Werte gelesen und in den Feldern eingetragen werden.
FHEM – Analoge Eingänge einlesen

 

I2C-Analog-Ausgangsmodul in FHEM einbinden

Als nächstes wollen wir eine Analoge Ausgangskarte über FHEM ansprechen. Dazu verwenden wir einen Slider, der wie folgt angelegt wird.

define AA58_CH0 dummy
attr AA58_CH0 group ModulA58
attr AA58_CH0 room i2c
attr AA58_CH0 setList state:slider,0,1,1023
attr AA58_CH0 webCmd state

das gleiche machen wir noch drei mal für die Analog-Kanäle CH1 -CH3

Das sollte dann in FHEM so angezeigt werden.

Die Slider können jetzt schon bewegt werden. Damit die Werte zur analogen Ausgangs-Karte übertragen werden muss aber noch einiges gemacht werden.
FHEM – Analoge Ausgänge ausgeben

 

 

 


Weitere Beiträge zum Thema

[maxmegamenu location=max_mega_menu_1]


 

 

 

Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

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