[gelöst] RPI-IO Pin Interrupt triggert nicht

Begonnen von maddinthebrain, 12 Januar 2018, 14:40:42

Vorheriges Thema - Nächstes Thema

maddinthebrain

Hallo zusammen,
Ich habe eine Gerät mit Opencollectorausgängen an meinen Raspi angeschlossen. Ich konnte die Richtung als Input,  den Pullupwiderstand erfolgreich auf up setzen. Ich habe einen Interrupt auf die fallende Flanke gesetzt. Das Problem ist aber, dass der nicht triggert, wenn der Pin auf low geht. Wenn ich set GW1_Blitzereignis readvalue mache,  kommt im Logfile das an:
8.01.12 13:43:16 1: GW1_Blitzereignis GetFn: readout of Pinvalue fail
2018.01.12 13:43:35 1: Can't open file: GW1_Blitzereignis, edge
2018.01.12 13:44:10 1: Can't open file: GW1_Blitzereignis, value
2018.01.12 13:44:10 1: GW1_Blitzereignis GetFn: readout of Pinvalue fail
2018.01.12 13:44:24 1: Can't open file: GW1_Blitzereignis, value
2018.01.12 13:44:24 1: GW1_Blitzereignis GetFn: readout of Pinvalue fail


Ist das ein Problem mit Zugriffsrechten? Der User fhem darf bei auf /sys/class/gpio zugreifen.

Änderungen des Pullupwiderstand oder Pulldownwiderstand kann mit gpio readall nachvollziehen. Zugriff auf den Pullup geht also. Auch das mit der Richtung.

Das Listing schaut so aus:
Internals:
   DEF        19
   GPIO_Basedir /sys/class/gpio
   GPIO_Nr    19
   NAME       GW1_Blitzereignis
   NR         82
   STATE      ???
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/local/bin/gpio
   filehandle
   Helper:
     DBLOG:
       state:
         logmysql:
           TIME       1515764516.91527
           VALUE      readValue
   READINGS:
     Pinlevel:
       TIME       2018-01-12 15:36:45
       VAL       
   fhem:
     interfaces switch
Attributes:
   direction  input
   interrupt  both
   pud_resistor up
   room       Wetter


Was passt da nicht?
Grüße Martin
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

klausw

was ergibt denn ein "ls-l" vom Verzeichnis "/sys/class/gpio" und dem GPIO Unterverzeichnis?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

maddinthebrain

#2
Here we go


@raspberrypi:/sys/class/gpio $ ls -l
insgesamt 0
-rwxrwx--- 1 root gpio 4096 Jan 12 14:05 export
lrwxrwxrwx 1 root gpio    0 Jan 11 12:07 gpio13 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio13pi@raspberrypi:/sys/class/gpio/gpio19 $ ls -l
lrwxrwxrwx 1 root gpio    0 Jan 11 12:07 gpio19 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio19
lrwxrwxrwx 1 root gpio    0 Jan 11 17:38 gpio26 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio26
lrwxrwxrwx 1 root gpio    0 Jan 11 12:07 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root gpio    0 Jan 11 12:07 gpiochip100 -> ../../devices/gpiochip2/gpio/gpiochip100
lrwxrwxrwx 1 root gpio    0 Jan 11 12:07 gpiochip128 -> ../../devices/gpiochip1/gpio/gpiochip128
-rwxrwx--- 1 root gpio 4096 Jan 11 12:07 unexport

Und

pi@raspberrypi:/sys/class/gpio/gpio19 $ ls -l
insgesamt 0
-rwxrwx--- 1 root gpio    4096 Jan 11 12:07 active_low
lrwxrwxrwx 1 root gpio       0 Jan 11 12:07 device -> ../../../gpiochip0
-rwxrwx--- 1 root gpio    4096 Jan 11 12:07 direction
-rwxrwx--- 1 fhem dialout 4096 Jan 11 12:07 edge
drwxrwx--- 2 root gpio       0 Jan 11 12:07 power
lrwxrwxrwx 1 root gpio       0 Jan 11 12:07 subsystem -> ../../../../../../../class/gpio
-rwxrwx--- 1 root gpio    4096 Jan 11 12:07 uevent
-rwxrwx--- 1 fhem dialout 4096 Jan 11 12:07 value


Hilft das weiter?
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

klausw

Die Rechte der Dateien passen. wenn der user fhem in dn Gruppen gpio und dialout ist und FHEM auch unter dem Nutzer fhem läuft dann müsste eigentlich alles funktionieren.
Aber du hast trotzdem keinen Zugriff, auch das EXCEPT_FD wird nicht angelegt
Hast du nach dem setzen der Rechte neu gestartet? (ein einfacher Reboot scheint in manchen Fällen nicht zu reichen)
Was kommt wenn du {`id`} in FHEM eingibst?
Das gpio Tool von WiringPi finde ich persönlich nicht gut (wird meines Wissens nicht weiter gepflegt) und den Pullup kann man auch an den Pin ranbauen 8). Ich glaube aber nicht, das es daran liegt.
Was passiert wenn du folgende Zeilen direkt in FHEM eingibst:
{`cat /sys/class/gpio/gpio18/direction`}
{`cat /sys/class/gpio/gpio18/value`}
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

maddinthebrain

Also offensichtlich ging was bei der /etc/local.rc schief. Ich hab es noch mal korrigiert und jetzt geht es.

Ansonsten noch zu den Fragen:

Ausgabe bei{`id`} ist uid=999(fhem) gid=20(dialout) Gruppen=20(dialout),997(gpio)

{`cat /sys/class/gpio/gpio18/direction`} da kommt in

{`cat /sys/class/gpio/gpio18/value`} da kommt 0 bzw. 1

Das mit dem Ranbauen vom Widerstand wäre kein Problem gewesen,  ;)
Super vielen Dank, für die schnelle und tollen Antworten.
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

klausw

Zitat von: maddinthebrain am 13 Januar 2018, 21:12:47
Also offensichtlich ging was bei der /etc/local.rc schief. Ich hab es noch mal korrigiert und jetzt geht es.

schön das es geht, aber funktioniert es bei dir nicht ohne Anpassung der local.rc?

user fhem in die Gruppe gpio
neustarten
das wars

so funktioniert es bei einem frisch installierten raspbian (wheezy, jessie, stretch habe ich getestet)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

maddinthebrain

Zitat von: klausw am 13 Januar 2018, 23:13:43
schön das es geht, aber funktioniert es bei dir nicht ohne Anpassung der local.rc?

user fhem in die Gruppe gpio
neustarten
das wars

so funktioniert es bei einem frisch installierten raspbian (wheezy, jessie, stretch habe ich getestet)
Offensichtlich hat das nicht gereicht. Hatte ich zuerst gemacht, und auch so verstanden. Vielleicht ist es ja wert dem mal nachzufühlen.

Grüße Martin
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

klausw

Hallo Martin,
den Thread bitte als gelöst markieren
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

my-engel

Hallo klausw,

ich habe ein ähnliches Problem in Docker.
wäre es dir möglich mal bitte hier zu schauen?
https://forum.fhem.de/index.php/topic,89745.msg1093466.html#msg1093466
vielleicht hast du eine Idee

ich Danke schon mal
MfG
Uwe

maddinthebrain

Das Problem wird hier eher das sein, dass man dem Container ja Rechte geben muss, damit er auf die Schnittstellen zugreifen darf. Wie genau, weiß ich leider nicht. Meine Docker Erfahrung ist nicht besonders viel. Bin wieder davon abgekommen.

Grüße Martin
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren