Hi,
ich versuche im Moment einen TSL2561 in FHEM zu integrieren. Leider bekomme ich immer die Meldung I2C Error. Wenn ich den Sensor allerdings über ein python Skript auslese, geht alles ohne Probleme, weshalb ich von einem Fehler meinerseits bei der Konfiguration in FHEM ausgehen. Die für den TSL2561 relevanten Zeilen (also denke ich) der Config sehen so aus:
define lichtsensorbus RPII2C 1
define tsl2561 I2C_TSL2561 /dev/i2c-1 0x39
attr tsl2561 IODev lichtsensorbus
attr tsl2561 floatArithmetics 1
attr tsl2561 poll_interval 5
attr tsl2561 useHiPiLib 0
im Logfile steht dann das:
2017.03.12 15:45:20 1: I2C_TSL2561_Define start: 4/tsl2561 I2C_TSL2561 /dev/i2c-1 0x39
2017.03.12 15:45:20 2: error initializing 'tsl2561': tsl2561: Error! I2C device not found: ARRAY(0xda2b88). Please check that these kernelmodules are loaded: i2c_bcm2708, i2c_dev
2017.03.12 15:45:21 1: tsl2561: Can't call method "bus_read" on an undefined value
2017.03.12 15:45:29 1: tsl2561: Can't call method "bus_write" on an undefined value
lsmod ergibt folgende Ausgabe:
Module Size Used by
r8712u 161764 0
brcmfmac 186403 0
brcmutil 5661 1 brcmfmac
cfg80211 428431 1 brcmfmac
rfkill 16037 2 cfg80211
bcm2835_gpiomem 3040 0
i2c_bcm2708 4834 0
bcm2835_wdt 3225 0
cdc_acm 17370 2
uio_pdrv_genirq 3164 0
uio 8000 1 uio_pdrv_genirq
i2c_dev 5859 0
ipv6 347594 41
Hat jemand eine Idee was da los ist? Wo liegt mein Fehler? Wenn ihr noch irgendwas braucht, geb einfach Bescheid. Vielen Dank
Lesen bildet ;)
aus der Commandref:
define TSL2561 I2C_TSL2561 [<I2C device>] <I2C address>
<I2C device> mandatory for HiPi, must be omitted if you connect via IODev
Da du über das RPII2C gehst, darf das I2C device nicht im define stehen.
define tsl2561 I2C_TSL2561 0x39
Hi Danke,
ich glaube ich hatte auf Grund der Vielzahl an Möglichkeiten, die Übersicht verloren. Jetzt kommt der Fehler:
2017.03.12 21:29:59 3: lichtsensorbus: HWaccess blockweise von 0x39 lesen, Reg: 0x8a -> syswrite failure: Connection timed out
2017.03.12 21:30:08 3: lichtsensorbus: HWaccess blockweise nach 0x39 schreiben, Reg: 0x80 Inh: 0, laenge: 2| -> syswrite failure: Connection timed out
EDIT: Nach einem Neustart des PI's geht alles. Danke nochmal
Weshalb die Fehler auftreten verstehe ich zwar nicht, aber Hauptsache es funktioniert jetzt.
Evtl. war der I2C noch von deinen händischen Tests blockiert. Das RPII2C Modul hatte keinen Zugriff auf den Bus.