Test GPIO am Raspberry 5 (ohne wiringpi)

Begonnen von Adimarantis, 28 Dezember 2023, 19:07:23

Vorheriges Thema - Nächstes Thema

hugo

Hallo zusammen,
ich hänge mich mal hier rein.
Bei funktioniert mein "IR Infrarot Modul" am GPIO Port nicht mehr.

Raspi 2B mit Bookworm 

Hat jemand eine Idee, damit mein Modul wieder funktioniert?

define GPIOTest RPI_GPIO 539\

attr GPIOTest active_low yes
attr GPIOTest direction input
attr GPIOTest interrupt both
attr GPIOTest pud_resistor up
attr GPIOTest room Unsorted,hidden
attr GPIOTest toggletostate yes
#   CFGFN     
#   DEF        539
#
#   FUUID      6648fe99-f33f-046a-7820-4f9d3dfb9f937a2b
#   GPIO_Basedir /sys/class/gpio
#   GPIO_Nr    539
#
#   NAME       GPIOTest
#   NR         95
#   STATE      ???
#   TYPE       RPI_GPIO
#   WiringPi_gpio
#   eventCount 1
#   filehandle
#   READINGS:
#     Pinlevel:
#       TIME       2024-05-18 21:38:29
#       VAL       
#   fhem:
#     interfaces switch
#
setstate GPIOTest 2024-05-18 21:38:29 Pinlevel 0


Vielen Dank für eure Hilfe

Gruß Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

Stelaku

Hallo hugo

Ich glaube du hast das selbe Problem wie ich hier schon in Beitrag #12 geschrieben habe.
Dir wird ein Hardware Seitiger 50 Kohm pull up Wiederstand vom gpio27 auf 3,3 Volt des Rasperry Pi fehlen.

Gruß

Stephan




Christoph Morrison

Es gibt für den RPI5 übrigens ein Tool namens pinctrl mit dem man die Pullups (wieder) softwareseitig setzen kann.

wbini

entweder wie der Christoph schreibt die Pullups über pinctrl (z.B.: pinctrl set 8,15,20,22,23,27 ip pu) setzen. oder in der config.txt (gpio=8=ip,pu)

hugo

Hallo zusammen,
leider bin ich nicht so bewandert in der Elektronik.

Jetzt für mich nochmal zum Verständnis.

Ich mache die Einträgen in der rc.local (echo 22 > ...) führe die chmod aus.
config .txt geändert gpio=22,27=pu,ip
Zwischen 3V und Gpio27 ein 100k Widerstand beim IR-Modul

Starte den Rechner neu.

Der Status vom RPI_GPIO bleibt auf ???
ein "set GPIOTestreadValue" bringt keine Änderung

Die PIN-Belegung habe ich nochmal geprüft.

Wo liegt mein fehler?

Danke für die Antworten.

Gruß Josef



Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

wbini

Hallo hugo,

auf dem Pi4 gilt noch die ursprüngliche Nummerierung (cat /sys/kernel/debug/gpio | grep 22)

Das Beispiel funktioniert so bei mir auf einem Pi4:
define GPIOTest RPI_GPIO 22
attr GPIOTest active_low yes
attr GPIOTest direction input
attr GPIOTest interrupt both
###attr GPIOTest pud_resistor up
attr GPIOTest room Unsorted,hidden
attr GPIOTest toggletostate yes

Pullup setzen (verwende lediglich den internen PullUp):
Variante 1: über die config.txt per "gpio=22=pu,ip"
Variante 2: in der rc.local per "pinctrl set 22 ip pu"

Den Status für den Pin 22 kannst mit "pinctrl 22" prüfen

hugo

Hallo wbini,
wenn ich deine Einstellungen vornehmen, wird in der Console einmal hi/lo angezeigt sobald das Modus den Status ändert.
Allerding wird in Fhem nichts angezeigt bzw geändert.
Scheint wohl da ein Problem zu sein?


pi@FhemHome:~ $ pinctrl 27
27: ip    -- | lo // GPIO27 = input
pi@FhemHome:~ $ pinctrl 27
27: ip    -- | hi // GPIO27 = input

define GPIOTest RPI_GPIO 27\
\

attr GPIOTest active_low yes
attr GPIOTest direction input
attr GPIOTest interrupt both
attr GPIOTest room hidden
attr GPIOTest toggletostate yes
#   DEF        27
#
#
#   FUUID      6648fe99-f33f-046a-7820-4f9d3dfb9f937a2b
#   GPIO_Basedir /sys/class/gpio
#   GPIO_Nr    27
#
#
#   NAME       GPIOTest
#   NR         95
#   STATE      ???
#   TYPE       RPI_GPIO
#   WiringPi_gpio
#   eventCount 7
#   filehandle
#   READINGS:
#     Pinlevel:
#       TIME       2024-05-19 13:25:16
#       VAL       
#   fhem:
#     interfaces switch
#
setstate GPIOTest 2024-05-19 13:25:16 Pinlevel 0

Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

wbini

Das kann ich leider nicht beantworten. Wenn im LogFile sonst keine Fehler auftauchen, könnte es sein.

Meine aktuelle Definition meiner Türklingel läuft auch über GPIO 27 ohne Probleme:

define K_Innen RPI_GPIO 27
attr K_Innen active_low yes
attr K_Innen alias KlingelInnen
attr K_Innen devStateIcon on:Wecker.Immer off:Wecker.Aus
attr K_Innen direction input
attr K_Innen event-on-change-reading state
attr K_Innen interrupt both
attr K_Innen room OWX,System->GPIOs

Übrigens: Dein Setzen des PullUps hat wohl nicht gegriffen. Bei mir sieht das so aus:
27: ip    pu | hi // GPIO27 = input

Setz doch mal ein "pinctrl set 27 ip pu" ab und prüfe das mal erneut.

Auch das Attribut "attr GPIOTest toggletostate yes" verwende ich nicht, da nur bei falling oder rising funktioniert.

hugo

pi@FhemHome:/opt/fhem $ pinctrl set 27 ip pu
pi@FhemHome:/opt/fhem $ pinctrl 27
27: ip    -- | hi // GPIO27 = input


Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

wbini

Ist schon mal ein anderes Verhalten wie bei mir.

Eventuell neu aufsetzen.

Muss jetzt leider wieder raus, Pfingsten ruft.

Stelaku

Hallo Hugo

hab das jetzt auch nochmal auf meinen 3er Test pi mit dem aktuellen bookworm OS getestet.
mit Deiner Ursprungs def
defmod GPIOTest RPI_GPIO 539
attr GPIOTest active_low yes
attr GPIOTest direction input
attr GPIOTest interrupt both
attr GPIOTest pud_resistor up
attr GPIOTest room Unsorted,hidden
attr GPIOTest toggletostate yes

funktioniert das bei mir mit einen 100 Kohm Wiederstand von gpio27 zu 3,3Volt ohne Probleme.
Hats Du denn im fhem log irgentwelche Fehlermeldungen.
Eventuell vergessen fhem der Gruppe gpio zuzuweisen ?.

sudo adduser fhem gpio

Gruss

Stephan

hugo

Hallo Stefan,
vielen Dank dass du dir so viel mühe machst.
Jetzt war auch noch das Internet ausgefallen. Einfach alles ....

Also fhem war der Gruppe gpio zugewiesen.
adduser: Der Benutzer »fhem« ist bereits ein Mitglied der Gruppe »gpio«.

Im Logfile steht folgendes.
2024.05.20 11:15:29 1: Can't open file: GPIOTest, value
2024.05.20 11:15:29 1: GPIOTest GetFn: readout of Pinvalue fail
sh: 1: export: 539: bad variable name

Bei meinem Wasserzähler auf GPIO 22 kommt folgende Meldung:
2024.05.20 11:17:23 1: Can't open file: GPIOZaehlerWasser, value
2024.05.20 11:17:23 1: GPIOZaehlerWasser GetFn: readout of Pinvalue fail

GPioTest auf 27 umgestellt.
sh: 1: export: 27: bad variable name
2024.05.20 11:23:21 1: Can't open file: GPIOTest, value
2024.05.20 11:23:21 1: GPIOTest GetFn: readout of Pinvalue fail

Gruß Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

Stelaku

Hallo Josef

Die Meldungen im log sagen das fhem nicht auf die gpio´s zugreifen kann. Was normal mit

sudo adduser fhem gpio
und ein reboot des pi´s erledigt ist.

Was ich mir jetzt noch denken könnte, ist das Du in den vorangegangenen Versuchen mit der config.txt oder den eintrag in Deiner rc.local
die gpio schon belegst, und diese für fhem als busy nicht mehr verfügbar sind.

Hast Du die vorangegangenden Änderung auch alle wieder gelöscht ?



hugo

Hallo Stefan,
alles aus der config.txt und rc.local gelöscht.
adduser ausgeführt, user ist bereits in der Gruppe.

Reboot durch geführt.

Nach dem reboot nochmal ein shutdown und restart durchgeführt.

Jetzt erhalte ich diese Meldungen im Log-file
2024.05.20 20:24:02 0: Server shutdown
Can't use an undefined value as a symbol reference at ./FHEM/51_RPI_GPIO.pm line 418.
2024.05.20 20:25:34 3: [UtilsHourCounter] Init Done with Version 1.0.1.0 - 10.12.2014 (john)
2024.05.20 20:25:34 1: Including fhem.cfg
2024.05.20 20:25:39 2: eventTypes: loaded 856 lines from ./log/eventTypes.txt
2024.05.20 20:25:45 1: PERL WARNING: Can't exec "export": Datei oder Verzeichnis nicht gefunden at ./FHEM/51_RPI_GPIO.pm line 647, <$fh> line 96.
2024.05.20 20:25:45 1: PERL WARNING: Use of uninitialized value $exp_result in pattern match (m//) at ./FHEM/51_RPI_GPIO.pm line 649, <$fh> line 96.
2024.05.20 20:25:45 1: PERL WARNING: Use of uninitialized value $exp_result in concatenation (.) or string at ./FHEM/51_RPI_GPIO.pm line 659, <$fh> line 96.
2024.05.20 20:25:45 1: Can't open file: GPIOZaehlerWasser, active_low
2024.05.20 20:25:45 1: PERL WARNING: Can't exec "export": Datei oder Verzeichnis nicht gefunden at ./FHEM/51_RPI_GPIO.pm line 647, <$fh> line 99.
2024.05.20 20:25:45 1: PERL WARNING: Use of uninitialized value $exp_result in pattern match (m//) at ./FHEM/51_RPI_GPIO.pm line 649, <$fh> line 99.
2024.05.20 20:25:45 1: PERL WARNING: Use of uninitialized value $exp_result in concatenation (.) or string at ./FHEM/51_RPI_GPIO.pm line 659, <$fh> line 99.
2024.05.20 20:25:45 1: Can't open file: GPIOZaehlerWasser, edge
2024.05.20 20:25:45 1: PERL WARNING: Can't exec "-g": Datei oder Verzeichnis nicht gefunden at ./FHEM/51_RPI_GPIO.pm line 647, <$fh> line 101.
2024.05.20 20:25:45 1: PERL WARNING: Use of uninitialized value $exp_result in pattern match (m//) at ./FHEM/51_RPI_GPIO.pm line 649, <$fh> line 101.
2024.05.20 20:25:45 1: PERL WARNING: Use of uninitialized value $exp_result in concatenation (.) or string at ./FHEM/51_RPI_GPIO.pm line 659, <$fh> line 101.
2024.05.20 20:25:51 1: PERL WARNING: Unsuccessful stat on filename containing newline at ./FHEM/51_RPI_GPIO.pm line 118, <$fh> line 511.
sh: 1: export: 539: bad variable name
2024.05.20 20:25:56 1: Can't open file: GPIOTest, active_low
sh: 1: export: 539: bad variable name
2024.05.20 20:25:56 1: Can't open file: GPIOTest, edge
2024.05.20 20:25:56 1: Including ./log/fhem.save

Gruß Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

Stelaku

hast du in den defs für die gpios die richtige Nummer stehen . Sprich für gpio27 def 27
oder def 539.
539 hab ich bei mir. Und bitte nicht vergessen shutdown restart in fhem.
bei mir funktionieren nur die debug nummer.

gruss Stephan