RPI_GPIO output

Begonnen von Maergsche, 13 Juni 2014, 14:57:45

Vorheriges Thema - Nächstes Thema

klausw

Zitat von: Maverick229 am 13 Dezember 2014, 09:41:34
Jetzt weiss ich wieder was da schiefgelaufen ist. Mein Raspberry ist inkompatibel mit dem aktuellen Image bzw Update, wenn ich das installiere bootet der nicht mehr.
Komisch, die Images sollten abwärtskompatibel sein.
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

Bigsonic1

#76
Hallo,
bei mir lassen sie die GPIO´s von FHEM aus nicht schalten aber über einen Shell-Befehl lassen sie sich schalten, vllt. könnt ihr  mir ja helfen.

wiringPi ist installiert, FHEM und Raspian sind aktuell.

Logfile:
Zitat2014.12.16 09:15:55 1: Can't open file: Pin3, value
2014.12.16 09:15:55 1: Pin3: readout of Pinvalue fail


config:
Zitatdefine Pin3 RPI_GPIO 2
attr Pin3 direction output
attr Pin3 poll_interval 5
attr Pin3 active_low yes

Ralli

Ist fhem Mitglied der Gruppe gpio?
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Bigsonic1

Anscheinend schon:
Zitatroot@raspberrypi:~# cat /etc/group
.
.
.
gpio:x:1003:pi,fhem

Zitat2014.12.16 08:14:27 0: Server started with 69 defined entities (version $Id: fhem.pl 7124 2014-12-05 07:10:20Z rudolfkoenig $, os linux, user fhem, pid 14625)

Zitatroot@raspberrypi:/sys/class/gpio/gpio2# ls -l
insgesamt 0
-rwxrwx--- 1 root gpio    4096 Dez 16 09:45 active_low
-rwxrwx--- 1 root gpio    4096 Dez 17 00:24 direction
-rwxrwx--- 1 fhem dialout 4096 Dez 16 09:45 edge
drwxrwx--- 2 root gpio       0 Dez 16 09:45 power
lrwxrwxrwx 1 root gpio       0 Dez 16 09:45 subsystem -> ../../../../class/gpio
-rwxrwx--- 1 root gpio    4096 Dez 16 09:45 uevent
-rwxrwx--- 1 fhem dialout 4096 Dez 16 09:45 value

klausw

was gibt denn
cat /proc/version
aus?

Zitat von: Bigsonic1 am 17 Dezember 2014, 08:35:39
root@raspberrypi:/sys/class/gpio/gpio2# ls -l
insgesamt 0
-rwxrwx--- 1 root gpio    4096 Dez 16 09:45 active_low
-rwxrwx--- 1 root gpio    4096 Dez 17 00:24 direction
-rwxrwx--- 1 fhem dialout 4096 Dez 16 09:45 edge
drwxrwx--- 2 root gpio       0 Dez 16 09:45 power
lrwxrwxrwx 1 root gpio       0 Dez 16 09:45 subsystem -> ../../../../class/gpio
-rwxrwx--- 1 root gpio    4096 Dez 16 09:45 uevent
-rwxrwx--- 1 fhem dialout 4096 Dez 16 09:45 value

die Gruppe dialout klingt nach einer alten Raspbian Version.
Du kannst auch fhem testweise zur Gruppe dialout hinzufügen.
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

Bigsonic1

Ich habe fhem zur Gruppe dialout hinzugefügt, aber keine besserung..

cat /proc/version
gibt raus:
Zitatroot@raspberrypi:~# cat /proc/version
Linux version 3.12.28+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #709 PREEMPT Mon Sep 8 15:28:00 BST 2014

klausw

versuche das ganze mal mit gpio22
auf gpio2 ist der I2C Bus, wenn die I2C module geladen sind dann blockieren die vielleicht den GPIO
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

Bigsonic1

Mit gpio22 das selbe spiel.
Wäre es besser wenn ich das ganze System neu aufsetze?

klausw

Zitat von: Bigsonic1 am 17 Dezember 2014, 12:14:15
Mit gpio22 das selbe spiel.
Wäre es besser wenn ich das ganze System neu aufsetze?
hast du nachdem du fhem in die gruppe dialout hinzugefügt hast mal das pi neu gestartet?
es ist seltsam, von den rechten her sollte es gehen
eine Neuinstallation kann natürlich helfen
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

Bigsonic1

ja ich habe immer <shutdown restart> in der fhem Konsole eingegeben.
Jetzt hab ich über Putty neugestartet und jetzt geht es, komisch???  ;D

Vielen vielen Dank!!!!

klausw

Zitat von: Bigsonic1 am 17 Dezember 2014, 12:43:36
ja ich habe immer <shutdown restart> in der fhem Konsole eingegeben.
Jetzt hab ich über Putty neugestartet und jetzt geht es, komisch???  ;D

Vielen vielen Dank!!!!
bitte bitte

das ist nicht komisch, shutdown restart ist nur für FHEM, aber die Rechteänderung erfordert einen kompletten Systemneustart.
...aber allemal besser als eine komplette Neuinstallation ;)
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

Ralli

#86
Hallo Klaus,

nachdem auf meinem RPi B+ fhem mit RPI_GPIO problemlos läuft, habe ich mich nun dran gegeben, das ganze mal auf einem nagelneuen Banana Pi Pro zum Laufen zu bringen. Die Pro-Banane hat das gleiche GPIO-Layout wie der RPi B+. Allerdings darf nicht das original wiringPi installiert werden sondern die Alternative von https://github.com/LeMaker/WiringBP .

Die Binary gpio klappt. Sie liegt in /usr/local/bin und hat root:root mit gesetztem Sticky-Bit - also wie bei der Standardinstallation auf einem RPi auch. fhem ist Mitglied der Gruppen gpio und dialout.

Allerdings sehen bei Anwendung die Rechte anders aus:


drwxrwx---  2 root gpio    0 Dez 18 13:12 .
drwxr-xr-x 61 root root    0 Dez 18 13:12 ..
-rwxrwx---  1 root gpio 4096 Dez 18 13:12 export
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpio17 -> ../../devices/platform/gpio-sunxi/gpio/gpio17
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpio18 -> ../../devices/platform/gpio-sunxi/gpio/gpio18
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpio21 -> ../../devices/platform/gpio-sunxi/gpio/gpio21
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpiochip1 -> ../../devices/platform/gpio-sunxi/gpio/gpiochip1
-rwxrwx---  1 root gpio 4096 Dez 18 13:12 unexport


Bis dahin alles gut. Aber dann:


bananapi@fhem /sys/class/gpio $ cd gpio17
bananapi@fhem /sys/class/gpio/gpio17 $ ls -la
insgesamt 0
drwxr-xr-x 3 root root       0 Dez 18 13:12 .
drwxr-xr-x 6 root root       0 Dez 18 13:12 ..
-rw-r--r-- 1 root root    4096 Dez 18 13:12 active_low
lrwxrwxrwx 1 root root       0 Dez 18 13:16 device -> ../../../gpio-sunxi
-rw-r--r-- 1 root root    4096 Dez 18 13:12 direction
-rw-r--r-- 1 fhem dialout 4096 Dez 18 13:12 edge
drwxr-xr-x 2 root root       0 Dez 18 13:16 power
-rw-r--r-- 1 root root    4096 Dez 18 13:16 pull
lrwxrwxrwx 1 root root       0 Dez 18 13:12 subsystem -> ../../../../../class/gpio
-rw-r--r-- 1 root root    4096 Dez 18 13:12 uevent
-rw-r--r-- 1 fhem dialout 4096 Dez 18 13:12 value


Die Folge ist, dass fhem bspw. u.a. die Datei active_low nicht beschreiben kann. Aber ich kann sie auch mit sudo nicht verändern - nach sudo su (also richtig als root) schon.

Da ist also noch irgendwo der Wurm drin und ich werde versuchen, dem auf den Grund zu gehen.

Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

klausw

Hi Ralli,

Zitat von: Ralli am 18 Dezember 2014, 13:19:59
nachdem auf meinem RPi B+ fhem mit RPI_GPIO problemlos läuft, habe ich mich nun dran gegeben, das ganze mal auf einem nagelneuen Banana Pi Pro zum Laufen zu bringen.

Kannst du bitte mal bei folgenden Ports testen ob diese als Input beim B+ funktionieren?:
GPIO 4 - PIN 7
GPIO 5 - PIN 29
GPIO 6 - PIN 31
GPIO 7 - PIN 26
GPIO 8 - PIN 24

Beim Kollegen IPPhoner2b bleibt der value immer 1 egal was er an den Pin anlegt. Mich würde interessieren ob es sich bei dir auch so verhält.

Zitat von: Ralli am 18 Dezember 2014, 13:19:59
Die Pro-Banane hat das gleiche GPIO-Layout wie der RPi B+. Allerdings darf nicht das original wiringPi installiert werden sondern die Alternative von https://github.com/LeMaker/WiringBP .

Die Binary gpio klappt. Sie liegt in /usr/local/bin und hat root:root mit gesetztem Sticky-Bit - also wie bei der Standardinstallation auf einem RPi auch. fhem ist Mitglied der Gruppen gpio und dialout.

Allerdings sehen bei Anwendung die Rechte anders aus:


drwxrwx---  2 root gpio    0 Dez 18 13:12 .
drwxr-xr-x 61 root root    0 Dez 18 13:12 ..
-rwxrwx---  1 root gpio 4096 Dez 18 13:12 export
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpio17 -> ../../devices/platform/gpio-sunxi/gpio/gpio17
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpio18 -> ../../devices/platform/gpio-sunxi/gpio/gpio18
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpio21 -> ../../devices/platform/gpio-sunxi/gpio/gpio21
lrwxrwxrwx  1 root gpio    0 Dez 18 13:12 gpiochip1 -> ../../devices/platform/gpio-sunxi/gpio/gpiochip1
-rwxrwx---  1 root gpio 4096 Dez 18 13:12 unexport


Bis dahin alles gut. Aber dann:


bananapi@fhem /sys/class/gpio $ cd gpio17
bananapi@fhem /sys/class/gpio/gpio17 $ ls -la
insgesamt 0
drwxr-xr-x 3 root root       0 Dez 18 13:12 .
drwxr-xr-x 6 root root       0 Dez 18 13:12 ..
-rw-r--r-- 1 root root    4096 Dez 18 13:12 active_low
lrwxrwxrwx 1 root root       0 Dez 18 13:16 device -> ../../../gpio-sunxi
-rw-r--r-- 1 root root    4096 Dez 18 13:12 direction
-rw-r--r-- 1 fhem dialout 4096 Dez 18 13:12 edge
drwxr-xr-x 2 root root       0 Dez 18 13:16 power
-rw-r--r-- 1 root root    4096 Dez 18 13:16 pull
lrwxrwxrwx 1 root root       0 Dez 18 13:12 subsystem -> ../../../../../class/gpio
-rw-r--r-- 1 root root    4096 Dez 18 13:12 uevent
-rw-r--r-- 1 fhem dialout 4096 Dez 18 13:12 value


Die Folge ist, dass fhem bspw. u.a. die Datei active_low nicht beschreiben kann. Aber ich kann sie auch mit sudo nicht verändern - nach sudo su (also richtig als root) schon.

Da ist also noch irgendwo der Wurm drin und ich werde versuchen, dem auf den Grund zu gehen.
Ja das scheint leider ein Manko des BananenKernels zu sein. Wurde hier etwas beleuchtet.
Der export eines GPIO über /sys/class/gpio/export legt den gpio ausschließlich mit rootrechten an.
Das gpio Tool passt wenigstens die Rechte von value und edge an.
Das Exportieren der GPIO und Rechteändern in der rc.local sollte aber gehen, oder?
Um sudo nutzen zu können muss dein aktueller user Mitglied der entsprechenden Guppe sein, evtl. liegt es daran das sudo nicht will.
Wie auch immer, super ist das ganze nicht. Dazu müssten die gpio Kernelmodule angepasst werden.

Grüße
Klaus
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

Ralli

Hallo Klaus,

mit folgenden Einträgen in der rc.local klappt es zumindest mit den Output-Pins:


echo 17 > /sys/class/gpio/export
echo 21 > /sys/class/gpio/export
echo 18 > /sys/class/gpio/export
chown -R fhem:root /sys/devices/platform/gpio-sunxi/gpio
chown -R fhem:root /sys/class/gpio


Bei den als Input definierten Pins keine Chance. Mit gpio readall sehe ich Statusänderungen, in fhem kommen sie aber nicht an.

Auf dem B+ kann ich erst später testen.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

klausw

Zitat von: Ralli am 18 Dezember 2014, 15:15:43
Hallo Klaus,

mit folgenden Einträgen in der rc.local klappt es zumindest mit den Output-Pins:


echo 17 > /sys/class/gpio/export
echo 21 > /sys/class/gpio/export
echo 18 > /sys/class/gpio/export
chown -R fhem:root /sys/devices/platform/gpio-sunxi/gpio
chown -R fhem:root /sys/class/gpio


Bei den als Input definierten Pins keine Chance. Mit gpio readall sehe ich Statusänderungen, in fhem kommen sie aber nicht an.

Um mal kurz zusammenzufassen:
- mit der wiringpi alternative geht es grundsätzlich (input/output interrupt) nur der active_low will nicht
- wenn du es über die rc.local machst dann funktionieren output pins aber input geht nicht

steht bei den inputs was im logfile?
wie sind die rechte der dateien?
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