RPI_GPIO activ_low funktioniert nicht

Begonnen von rudikx, 12 September 2015, 11:10:16

Vorheriges Thema - Nächstes Thema

rudikx

Hallo zusammen,

ich habe ein kleines Problem.

Ich nutze die GPIO´s des Raspberrys und kann den Status mitteil des attr activ_low nicht umstellen. Egals ob ich auf yes oder no stelle.
der Status bzw. Pinlevel ändern sich nicht.

Das attr scheint nicht übernommen zu werden.
Jemand eine Idee woran das liegt?

hier meine config:mal mit YES und mal mit NO
(http://img5.fotos-hochladen.net/uploads/activlowhnu1dse0qa.jpg)

(http://img5.fotos-hochladen.net/uploads/activlownok3681tzpuo.jpg)

Wie ihr seht ändert sich in den readings nichts.

Thorsten15

Hallo rudikx,

Ich hatte das letztens auch nach einem update. Es war ein Rechte bzw. Owner-Problem für /sys/class/gpio und alles was darunter liegt. Konnte man auch im eventmonitor sehen.
Du musst den Owner auf fhem setzen. Leider bekomme ich den Befehl gerade nicht zusammen.
War in etwa so. Sudo chown-R fhem root /sys/class/gpio.
Nutze mal die SuFu. Dadurch habe ich das auch gelöst.

Gruß

rudikx

Danke für den Tipp,

habe jetzt nochmal folgendes in dem Pi eigegeben:
sudo chmod -R a+w fhem && sudo usermod -a -G tty pi && sudo usermod -a -G tty fhem
sudo adduser fhem gpio

aber es funktioniert nicht :(....

noch jemand eine Idee???

Was mich so wundert ist das es mal funktioniert hat. habe dann aber neu aufsetzen müssen und nun klappt das nicht mehr :/


Thorsten15

Hallo rudikx,

ich stelle es hier mal am Beispiel gpio18 dar.

"Can't open file: Can't open file: Treppe_REL_Wandlampe, active_low " war die Fehlermeldung im Logfile von fhem.

Auf der Konsole ins Verzeichnis  /sys/class/gpio/gpio18 wechseln.
Dort befindet sich die Datei active_low. Die Datei hat nur ein Zeichen Inhalt. Entweder 0 oder 1. Der Wert änderte sich bei mir nicht, wenn ich in fhem das Attribut umgesetzt habe.

Mit folgenden Befehlen konnte ich das Problem beheben:

sudo chown -R fhem:root /sys/class/gpio/*
sudo chown -R fhem:root /sys/class/gpio/gpio18/*

Die Dateiattribute sehen nun wir folgt aus:
pi@raspberrypi /sys/class/gpio/gpio18 $ ls -l
insgesamt 0
-rw-r--r-- 1 fhem root 4096 Sep  7 22:45 active_low
lrwxrwxrwx 1 fhem root    0 Sep  7 22:32 device -> ../../../20200000.gpio
-rw-r--r-- 1 fhem root 4096 Sep  7 22:45 direction
-rw-r--r-- 1 fhem root 4096 Sep  7 22:30 edge
lrwxrwxrwx 1 fhem root    0 Sep  7 22:32 subsystem -> ../../../../../../class/gpio
-rw-r--r-- 1 fhem root 4096 Sep  7 22:32 uevent
-rw-r--r-- 1 fhem root 4096 Sep 12 23:58 value
pi@raspberrypi /sys/class/gpio/gpio18 $

Wie bereits erwähnt, ist das Problem bei mir dadurch behoben worden.

Gruß,
Thorsten

niconoack

Hi Thorsten15,

ist diese Änderung bei einem Neustart noch vorhanden?
Ich hab jetzt zwar meine PINs logisch umgedreht, aber das ist sicher nicht Sinn der Sache...

Hab bisher zu dem Thema lediglich diese Antworten ala chmod ... gefunden,
aber bei jedem Restart legt FHEM die GPIO outputs neu an, mit ROOT Rechten.

Gibts noch Ideen?

Vielen Dank,
Nico

niconoack

Hi all,

dieses hier wäre ein geeigneter Hinweis für den Fall das noch einmal jemand auf dieses Thema stößt.
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=9667

Die angesprochenen Sicherheitsthemen sollte jeder für sich selbst bewerten.
Meine Pins schalten auf jeden Fall wieder per Default auf active_low=yes

Viele Grüße,
Nico

Thorsten15

Hallo niconoack,

ich habe mich länger nicht drum gekümmert, musste nun aber feststellen, dass meine Lösung nicht die Endlösung ist. Nach reboot besteht mein Problem wieder.
Einträge, die ich in der /etc/rc.local laut Commandref vorgenommen habe, bringen nicht den gewünschten Erfolg.

Was hast Du nun genau bei Dir eingerichtet, damit fhem nach einem reboot wie gewohnt auf die gpio's zugreifen kann?
Ich kann das dem verlinkten Thread nicht so ganz entnehmen. Bin aber auch eher Laie und mit dem englisch klappt das auch  nicht so super.
Kannst Du deine Lösung bitte etwas genauer schildern.


Danke, Gruß
Thorsten

tremichl

Hallo!

Leider kann ich keine Lösung anbieten. Habe hier aber exakt das gleiche Problem. Activ_low funktioniert nicht, obwohl ich alles genau lt. Commandref gemacht habe (auch rc.local executable). Laut Logfile: "Can't open file: RELAIS01, active_low"

Ein Tip für eine Lösung die auch einen Neustart überlebt wäre sehr hilfreich! Leider noch Linuxanfänger, möchte aber dazu lernen  :-\

Danke!
Wir haben keine Ahnung davon, was wir nicht wissen

klausw

Bei raspbian ändert sich häufiger was. Daher ist die commandref diesbezüglich leider unvollständig.
Wenn sich jemand die Arbeit macht den "preliminary:" und "Vorbereitung:" Absatz auf den neusten Stand zu bringen kann ich es gern einpflegen. Andernfalls dauert es noch nen Moment bis ich dazu komme.

es gibt verschiedene Möglichkeiten:

zum einen über die /etc/rc.local
allerdings muss dort in der aktuellsten raspbian version
/sys/devices/virtual/gpio/* durch
/devices/soc/platform/soc/20200000.gpio/gpio/*
ersetzt werden.

oder über udev rules klick

oder über Anpassung der config.txt klick

sollte alles über die suche nach "gpio" zu finden 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

tremichl

Vielen Dank für die rasche Antwort!
Mit udev rules konnte das Problem gelöst werden.
Habe die Versuche offensichtlich erst mit dem neuen Kernel begonnen, daher hat es aus meiner Sicht "nie" funktioniert. Wäre das nach einem Update passiert hätte ich wohl anders gesucht....
Jetzt ist alles OK, nochmals danke!
Wir haben keine Ahnung davon, was wir nicht wissen

Thorsten15

Danke auch von mir,
Mit der udev-rules-Lösung konnte ich das Problem auch bei mir beheben

Gruß,
Thorsten