Das Anlegen eines analogen I2C-Ausgangsmodules wurde in diesem Beitrag beschrieben
FHEM – I2C-Module anlegen und adressieren.
Hier zeigen wir, wie die einzelnen analogwerte definiert und angesprochen werden können.
Um einen Analogwert auszugeben, müssen drei Bytes zum Modul gesendet werden.
Byte 1 Zeiger
Byte 2 Analogwert Low Byte
Byte 3 Analogwert High Byte
Die genaue Beschreibung der 4-Kanal Analog-Output Karte I2HAA ist hier beschrieben.
I2C-Analog Output 4 Kanäle 0-10V 10 Bit
1. Eigene Funktionen in FHEM anlegen
über den Menüpunkt „Edit Files“ kommt man in das FHEM-Filesystem. Hier das Template „myUtilsTemplate.pm“ anklicken und als neue Datei „99_myUtils.pm“ speichern. In diese Datei unter der Zeile „# Enter you functions below _this_ line.“ können nun eigene Funktionen abgelegt werden.
So sieht’s dann aus wenn unsere neue SUB write_AA in die Datei eingetragen ist.
# Enter you functions below _this_ line. sub write_AA($$$) { my ($addr, $ch, $value) = @_;; my $HBy = int($value / 256);; my $LBy = int($value - ($HB * 256));; {system("i2cset -y 1 $addr $ch $LBy $HBy i");"ok"};; }
2. Funktion über den Slider aufrufen
Damit unsere neue Funktion ausgeführt wird, legen wir einen notify an, der die Parameter an unsere Funktion übergibt.
define n_AA58_0 notify AA58_CH0 { write_AA(0x58, 0x00, $EVENT) }
und noch drei weitere notify’s für die Kanäle CH1-CH3
define n_AA58_1 notify AA58_CH1 { write_AA(0x58, 0x01, $EVENT) } define n_AA58_2 notify AA58_CH2 { write_AA(0x58, 0x02, $EVENT) } define n_AA58_3 notify AA58_CH3 { write_AA(0x58, 0x03, $EVENT) }
Wenn jetzt die Slider bewegt werden, ändern sich die Spannungen an den vier Kanälen der Analog-Ausgangskarte.