gpio21 schalten über console OK in fhem nicht OK

Begonnen von fadi1, 03 März 2021, 14:54:50

Vorheriges Thema - Nächstes Thema

fadi1

Hallo
ich kann jeden gpio port über Fhem ansprechen nur der gpio21 (pin29) nicht wenn ich es über die Konsole versuche geht es

Zitat

pi@solar:~ $ gpio  mode 21 out
pi@solar:~ $ gpio  write 21 1
pi@solar:~ $ gpio  write 21 0


das funktioniert vollständig

wenn ich in fhem

define Pin29 RPI_GPIO 5
attr Pin29 direction output

5 ist der BCM Wert vom gpio 21

habe ich ein scheinbar funktionelles Device

das leider nicht schaltet. Im log ist auch kein Fehler

bei anderen GPIO Ports funktioniert das problemlos nur bei den Gpio21 nicht



Frank_Huber


fadi1

Ja habe ich,
sonst würde es ja bei den andern Ports auch nicht funktionieren es ist nur genau dieser Gpio 21 der in fhem nicht funkt

Frank_Huber

Erstmal sorry, hab das vorhin zu oberflächlich gelesen. die Headline klang eindeutig nach der Berechtigung. ;-)

Aber Du schreibst einmal GPIO5 dann GPIO21 für Pin 29.
Pin 29 ist GPIO 5.
GPIO 21 ist Pin 40.

vielleicht prüfst Du ja nur am falschen Pin?

fadi1

hallo Frank

+-----+-----+------------+-------+---+-Pi ZeroW-+---+------+---------+-----+-----+
| BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
+-----+-----+------------+-------+---+----++----+---+------+---------+-----+-----+
|        |       |    3.3v     |          |    |  1  |  | 2  |     |        | 5v        |       |       |
|   2   |   8  |   SDA.1    | ALT0  | 1 |  3 || 4  |   |      | 5v      |     |     |
|   3   |   9  |   SCL.1    | ALT0  | 1 |  5 || 6  |   |      | 0v      |     |     |
|   4   |   7  | GPIO. 7   |   IN    | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
|        |       |      0v      |           |   |  9 || 10 | 0 | IN   | RxD     | 16  | 15  |
|  17  |   0  | GPIO. 0   |  OUT  | 0 | 11 || 12 | 1 | ALT0 | GPIO. 1 | 1   | 18  |
|  27  |   2  | GPIO. 2   |  OUT  | 0 | 13 || 14 |   |      | 0v      |     |     |
|  22  |   3  | GPIO. 3   |  OUT  | 0 | 15 || 16 | 0 | OUT  | GPIO. 4 | 4   | 23  |
|        |       |    3.3v     |           |    | 17 || 18 | 0 | OUT  | GPIO. 5 | 5   | 24  |
|  10  |  12 |    MOSI    |   IN    | 0 | 19 || 20 |   |      | 0v      |     |     |
|   9   |  13 |    MISO    |   IN    | 0 | 21 || 22 | 0 | OUT  | GPIO. 6 | 6   | 25  |
|  11  |  14 |    SCLK    |   IN    | 0 | 23 || 24 | 0 | OUT  | CE0     | 10  | 8   |
|        |       |      0v      |           |    | 25 || 26 | 0 | OUT  | CE1     | 11  | 7   |
|   0   |  30 |   SDA.0   |   IN     | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
|   5   |  21 | GPIO.21 |  OUT   | 0 | 29 || 30 |   |      | 0v      |     |     |
|   6   |  22 | GPIO.22 |  OUT   | 0 | 31 || 32 | 0 | OUT  | GPIO.26 | 26  | 12  |
|  13  |  23 | GPIO.23 |  OUT   | 1 | 33 || 34 |   |      | 0v      |     |     |
|  19  |  24 | GPIO.24 | ALT0   | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
|  26  |  25 | GPIO.25 |   IN     | 0 | 37 || 38 | 0 | ALT0 | GPIO.28 | 28  | 20  |
|        |       |      0v     |           |   | 39 || 40 | 0 | ALT0 | GPIO.29 | 29  | 21  |
+-----+-----+-----------+--------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
+-----+-----+-----------+--------+---+-Pi ZeroW-+---+------+---------+-----+-----+

genau um rot markieren Pin geht es

es ist GPIO21 der den BCM Code 5 hat und eigentlich Pin 29 ist

bei allen anderen Pins funktioniert der BCM code in Fhem und auf der Console der wPi code

auf der Konsole funktioniert der Gpio21 somit kann ich einen Hardwaredefekt ausschließen.


Frank_Huber

Die 21 ist die WiringPi Nummer. Pin 29 ist gpio 5.
https://www.raspberrypi.org/documentation/usage/gpio/
Aber ja, doof dass es so viele verschiedenen Nummerierung gibt...
Mach mal anstelle von "gpio readall" ein "pinout" 😉

Versuch mal in der Konsole die 5 zu schalten.
Als nächstes dann im fhem Gerät den verbose Level hochschrauben.

fadi1

hallo frank

auf der Konsole funktioniert es mit 21,

Zitat
pi@solar:~ $ gpio  mode 21 out
pi@solar:~ $ gpio write 21 1
pi@solar:~ $ gpio mode 21 out
pi@solar:~ $ gpio write 21 1
pi@solar:~ $ gpio write 21 0
pi@solar:~ $ gpio mode 21 in



in Fhem bekomme ich jetzt einen Error 

2021.03.04 00:03:30 1: Can't open file: Pin29, value
2021.03.04 00:03:30 1: Pin29 GetFn: readout of Pinvalue fail
2021.03.04 00:03:30 1: PERL WARNING: Use of uninitialized value $zustand in concatenation (.) or string at ./FHEM/51_RPI_GPIO.pm line 198.
2021.03.04 00:04:26 1: Can't open file: Pin29, value

das Device ist so angelegt:
define Pin29 RPI_GPIO 5
attr Pin29 direction output

Zitat
Pinout:
    Physical/Board pin 29
    GPIO/BCM pin 5
    Wiring Pi pin 21

Frank_Huber

Moin,
Dem Log nach stimmt was mit dem define nicht.
Er will auf Pin29 zugreifen anstatt 5.
Hast du evtl in der cfg editiert?

Lösche doch mal das Gerät und lege es über die Webgui mit deiner define Zeile neu an.

fadi1

#8
Hallo

ich habe jetzt das Device gelöscht. den raspi neu gestartet. danach mit

define neu_Pin29 RPI_GPIO 5
attr neu_Pin29 direction output

angelegt.

im log kommt wieder die gleiche Fehlermeldung.



Zitat

actual_windspeed_msec 0.177760
actual_windspeed_msec 0.222200
actual_windspeed_msec 0.177760
actual_windspeed_msec 0.000000
2021.03.04 10:33:56 1: Can't open file: Pin29, value
2021.03.04 10:33:56 1: Pin29 GetFn: readout of Pinvalue fail
actual_windspeed_msec 0.000000
actual_windspeed_msec 0.133320
actual_windspeed_msec 0.000000
actual_windspeed_msec 0.000000
2021.03.04 10:35:29 1: Can't open file: neu_Pin29, value
2021.03.04 10:35:29 1: neu_Pin29 GetFn: readout of Pinvalue fail
actual_windspeed_msec 0.000000
2021.03.04 10:35:47 1: Can't open file: neu_Pin29, value
2021.03.04 10:35:47 1: neu_Pin29 GetFn: readout of Pinvalue fail


eigentlich stimmt ja "Pin29" das wäre der richtige -> "Physical/Board pin 29" =  "GPIO/BCM pin 5"


ich habe folgendes gefunden:



root@solar:/home/pi# ls /sys/class/gpio/
export  gpio12  gpio13  gpio15  gpio17  gpio22  gpio23  gpio24  gpio25  gpio27  gpio29  gpio6  gpio7  gpio8  gpiochip0  unexport
root@solar:/home/pi#




da sind alle GpIOs drinnen die in Fhem funktionieren, der gpio5 fehlt :-\
und bitte nicht sagen der Gpio29 ist eh da
das ist eigentlich Pin40   
 
ZitatPinout

Physical pin 40
    BCM pin 21
    Wiring Pi pin 29


ps:
die Entwickler vom Gpio gehören eigentlich erschla.....  da kämpft man mit lauter unterschiedlichen Nummern  >:(

Frank_Huber

Ja, dieser Nummern WirrWarr hat mich auch am Anfang Nerven gekostet.
Aber ich sehe in deinem Log dass sich Pin29 auf den Device-Namen bezieht, nicht auf den Ordner auf den er zugreifen möchte.

dein sys/clas/gpio ist ziehmlich leer. HAst Du am PI andere Funktionen aktiviert?
der Pin29 aka GPIO5 kann z.B. auch als "GPCLK1" verwendet werden. denke dann ist der Ordner weg weil eine andere Funktion darauf liegt.

Hier der Inhalt bei mir, hab ausser I2C alles deaktiviert:
root@FHEM-OG-BUSTER:/sys/class/gpio# ls
export  gpio11  gpio13  gpio15  gpio17  gpio19  gpio21  gpio23  gpio25  gpio27  gpio5  gpio7  gpio9      gpiochip508
gpio10  gpio12  gpio14  gpio16  gpio18  gpio20  gpio22  gpio24  gpio26  gpio4   gpio6  gpio8  gpiochip0  unexport
root@FHEM-OG-BUSTER:/sys/class/gpio#

fadi1

Hallo

ich habe folgendes gefunden

https://forum.fhem.de/index.php/topic,80163.msg792195.html#msg792195

das ist zu genau diesen Problem mit dem GPIO5. der Beitrag ist zwar als gelöst markiert, (Lösung = "nicht verwenden") vielleicht gibt es ja inzwischen eine Lösung da der Fehler schon 2018 aufgetreten ist.

mein Problem ist dass ich eine Platine fertigen lassen habe die genau den Pin29 verwendet. beim Test Aufbau habe ich die Gpio testweise über die Konsole geschaltet und noch nicht Bedacht dass dann in Fhem doch nicht geht -> neue Erfahrung.
vielleicht weis wer welche Anwendung Pin29 am Raspi belegt. oder wie man das herausfinden kann.

Frank_Huber

#11
Also ich hab 2er, 3er und 4er Raspberrys laufen. Alle können unter FHEM den 5er nutzen.
Schau doch mal in der Shell im raspi-config dass du alles deaktivierst das du nicht benötigst.
Welche OS Version hast Du am laufen?
kannst evtl auch das Raspbian config file posten?

schau dir mal das an:
https://raspberrypi.stackexchange.com/questions/3469/how-can-i-turn-an-gpio-to-its-alternate-function
http://abyz.me.uk/rpi/pigpio/pigs.html#M/MODES

Stelaku

Hallo alle zusammen

Ich kann den Fehler von fadi1 auf einem neu aufgesetzten Fhem Server auch nachstellen.

Bekomme die selbe Meldung im log


2021.03.05 16:18:17 1: Can't open file: neu_Pin29, value


Warscheinlich hast Du das bestimmt schon alles gemacht. Aber bei mir war der fehler weg nachdem ich folgendes in der Konsole abgesetzt hatte


sudo adduser fhem gpio
sudo apt-get install wiringpi


Danach noch ein shutdown restart von Fhem und ich konnte den GPIO ansteueren ohne eine Fehlermeldung.

Viele Grüsse

Stephan

fadi1

hallo Stephan


root@solar:/home/pi#
root@solar:/home/pi#  adduser fhem gpio
Der Benutzer »fhem« ist bereits ein Mitglied der Gruppe »gpio«.
root@solar:/home/pi# apt-get install wiringpi
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
wiringpi ist schon die neueste Version (2.50).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
root@solar:/home/pi#


Habe ich schon alles gemacht Ohne dem User würden ja dei anderen GPIOS auch nicht funktionieren.

@frank_huber

es ist ein Rapberry Zerro W mit einen aktuellen Raspian Lite von voriger Woche


root@solar:/home/pi# cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
root@solar:/home/pi#



das configfile ist im Anhang

in Raspi config habe ich nur I2c und 1Wire aktiviert alle anderen deaktiviert.