Ich habe MCP23017 Portextender mit Interrupt Abfrage installiert.
Ich benötige für einige Eingänge zyklische Abfragen damit diese via FHEM2FHEM den aktuellen Status übertragen, falls der RMC den Status nicht mitbekommen hat (Neustart).
Das Polling des MCP23017 funktioniert leider bei mir nicht.
list INT
Internals:
CFGFN /media/hdd/fhem/mycfg/AD_Controller/I2C_MCP23017_rasp02.cfg
DEF 21
EXCEPT_FD 18
FUUID 5c4500f9-f33f-c019-b5f0-dfc1c428017fdc7e
GPIO_Basedir /sys/class/gpio
GPIO_Nr 21
NAME INT
NR 344
STATE AUS
TYPE RPI_GPIO
WiringPi_gpio /usr/local/bin/gpio
READINGS:
2000-01-01 01:00:36 Dblclick off
2000-01-01 01:00:36 Longpress off
2019-02-24 10:19:48 Pinlevel low
2019-02-24 10:19:47 interrupt egal
2019-02-24 10:19:47 state off
fhem:
interfaces switch
Attributes:
active_low yes
alias RPI_GIPO 21 Interrupt für MCP23017 Modul
devStateIcon EIN:control_on_off@0CFB0C AUS:control_home@red
direction input
eventMap on:EIN off:AUS
icon control_on_off
interrupt both
poll_interval 1
room _GPIO,_IO
userReadings interrupt {fhem ("get mcp23017_B1_HZR,mcp23017_B2_HZR");;"egal"}
list mcp23017_B1_HZR
Internals:
CFGFN /media/hdd/fhem/mycfg/AD_Controller/I2C_MCP23017_rasp02.cfg
CHANGED
DEF 0x20
FUUID 5c4500f8-f33f-48ad-afee-c59582979e67026e
I2C_Address 32
IODev RpiI2C_1
NAME mcp23017_B1_HZR
NR 317
RpiI2C_1_SENDSTAT Ok
STATE Ok
TYPE I2C_MCP23017
READINGS:
2019-02-23 14:18:39 PortA0 off
2018-05-04 14:20:05 PortA1 on
2019-02-23 02:25:57 PortA2 on
2019-02-03 09:56:24 PortA3 on
2018-05-04 14:20:05 PortA4 off
2018-05-04 14:20:05 PortA5 off
2018-05-04 14:20:05 PortA6 off
2018-05-04 14:20:05 PortA7 off
2018-05-04 14:20:05 PortB0 off
2018-05-04 14:20:05 PortB1 off
2018-05-04 14:20:05 PortB2 off
2018-05-04 14:20:05 PortB3 off
2018-05-04 14:20:05 PortB4 off
2018-05-04 14:20:05 PortB5 off
2018-05-04 14:20:05 PortB6 on
2018-05-04 14:20:05 PortB7 on
2019-02-24 10:21:47 state Ok
Attributes:
IODev RpiI2C_1
Interrupt A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7
InterruptOut connected_active-low
Pullup A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7
alias Digital I/O Bank 1 | Port A0-A7,B0-B7 (Input)
devStateIcon Ok:it_net@0CFB0C Initialized:it_net@yellow defined:it_net@yellow disconnected:it_net@red error:it_net@red
event-on-change-reading .*
group MCP23017
icon it_net
invert_input A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7
poll_interval 1
room _IO
Gibt es eine Möglichkeit gewisse Eingänge am MCP23017 Modul abzufragen?
Hallo Chris,
woran erkennst du das polling nicht funktioniert?
Bei einem Interrupt funktioniert es?
event-on-change-reading .* sorgt dafür, das bei einem poll Vorgang die Readings nicht aktualisiert werden (ändern sollten sie sich ja nicht denn dann gibt es einen Interrupt)
@klausw
Mit event-on-change-reading .* ist keine gute Lösung. Da hast du Recht. Ich habe es jetz entfernt und das Attribut poll_interval 1 eingefügt.
Es ist anhand dem Reading ersichtlich, dass es sich jede Minute jetzt ändert. Nur ändert das nichts an den Eingängen. Die Eingänge werden trotzdem nicht neu eingelesen.