Modul für RPi GPIO Zugriff mit Interrupt Funktion für Input

Begonnen von klausw, 15 November 2013, 14:28:41

Vorheriges Thema - Nächstes Thema

KNUT345

Hallo Klaus,
"{`id`}" in Fhem eingegeben bringt
uid=1001(fhem) gid=1001(fhem) groups=1001(fhem),20(dialout)
irgendwie nicht ganz das gleiche zu
Zitatuid=1001(fhem) gid=1001(fhem) groups=1001(fhem),20(dialout),997(gpio)
da fehlt gpio!

Muss man da in fhem was anpassen?

Grüße

klausw

ich hatte eher erwartet, das die uid nicht fhem ist
gleiche uid heisst für mich, gleiche gruppen
Das Ergebnis verstehe ich nicht.
hast du zwischenzeitlich neu gestartet? evtl. übernimmt ein Prozess die Rechte/Gruppen, etc. beim laden.
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

KNUT345

Das war der richtige Hinweis!
Ich hatte fhem schon mehrfach neu gestartet,
aber nie den Pi gebootet.
Nach Reboot funktioniert es.  :)

Danke

Mave

Hallo klausw,

ich habe einen kleinen Abstellraum, in dem sich mein FHEM RPI3 befindet und der 2 Türen hat. Ich würde gerne per FHEM das Licht (HUE Lampe) im Raum einschalten, sobald eine der beiden Türen geöffnet wird. Sind beide Türen geschlossen, soll das Licht im Raum ausgehen.

Natürlich könnte ich das über Türkontakte lösen, würde aber ungern 2 Mal 30,- Euro für die HomeMatic Türkontakte ausgeben und bin deshalb auf die Idee gekommen, das Problem mit den GPIOs des RPI3 zu lösen.

Leider fehlt mir das technische Know-How, um entscheiden zu können, was für Sensoren ich an den Türen anbringen muss, um sie direkt mit dem RPI3 abfragen zu können.

Für Hilfe wäre ich sehr dankbar.

Vielen Dank.

Grüße Mave

Tueftler1983


firstfacility

#365
Hallo Forum,
ich hole dieses Thema nochmal hoch da ich grade vor den Problem stehe meine Gpio´s nicht ansteuern zu können. Als Hintergrund möchte ich gern ein Relaismodul ansteuern um damit Rollos zu steuern. Hierzu habe ich das GPIO Modul wie folgt eingebunden:

define Kopfup RPI_GPIO 12
attr Kopfup direction output
define Kopfdown RPI_GPIO 13
attr Kopfdown direction output
define Fussup RPI_GPIO 4
attr Fussup direction output
attr Fussup verbose 5
define Fussdown RPI_GPIO 5
attr Fussdown direction output
attr Fussdown verbose 5
define Schereup RPI_GPIO 2
attr Schereup direction output
define Scheredown RPI_GPIO 3
attr Scheredown direction Output


Wenn ich nun neu starte bekomme ich unter /sys/class/gpio/ das angezeigt:


drwxrwx---  2 fhem dialout    0 Dez 18 15:29 .
drwxr-xr-x 50 root root       0 Dez 18 15:43 ..
-rwxrwx---  1 root gpio    4096 Dez 18 15:29 export
lrwxrwxrwx  1 root gpio       0 Dez 18 15:29 gpio12 -> ../../devices/platform/soc/20200000.gpio/gpiochip0/gpio/gpio12
lrwxrwxrwx  1 root gpio       0 Dez 18 15:29 gpio13 -> ../../devices/platform/soc/20200000.gpio/gpiochip0/gpio/gpio13
lrwxrwxrwx  1 root gpio       0 Dez 18 15:29 gpio2 -> ../../devices/platform/soc/20200000.gpio/gpiochip0/gpio/gpio2
lrwxrwxrwx  1 root gpio       0 Dez 18 15:29 gpio3 -> ../../devices/platform/soc/20200000.gpio/gpiochip0/gpio/gpio3
lrwxrwxrwx  1 root gpio       0 Dez 18 15:29 gpio4 -> ../../devices/platform/soc/20200000.gpio/gpiochip0/gpio/gpio4
lrwxrwxrwx  1 root gpio       0 Dez 18 15:29 gpio5 -> ../../devices/platform/soc/20200000.gpio/gpiochip0/gpio/gpio5
lrwxrwxrwx  1 root gpio       0 Dez 18 15:26 gpiochip0 -> ../../devices/platform/soc/20200000.gpio/gpio/gpiochip0
-rwxrwx---  1 root gpio    4096 Dez 18 15:26 unexport


Ich habe wiringpi installiert und die Pinbezeichung habe ich wiringpi genutzt also nicht GPIO, ist das richtig so? Also ein zB gpio write 13 1 geht. Nur wenn ich in Fhem schalte bekomme ich in Log:


2018.12.18 16:11:06 5: Fussdown, in fileaccess: value 0
2018.12.18 16:11:06 5: wird an setextensions gesendet: Fussdown ?
2018.12.18 16:11:06 5: wird an setextensions gesendet: Fussdown ?
2018.12.18 16:11:08 5: Fussup, in fileaccess: value 0
2018.12.18 16:11:08 5: wird an setextensions gesendet: Fussup ?
2018.12.18 16:11:08 5: wird an setextensions gesendet: Fussup ?


Wenn ich in Fhem schalte bekomme ich mit zB cat /sys/class/gpio/gpio5/value eine 0 oder 1 aber der Gpio schaltet nicht.

Was mache ich falsch ?

Gruß

Frank


klausw

in
define <name> RPI_GPIO <GPIO number> ist die <GPIO number> halt GPIO number 8)

Die wiringpi Bezeichnung wird nicht verwendet.
Ist die commandref in diesem Punkt unverständlich?
In diesem Fall hätte ich gern einen Tip wie ich es besser verständlich schreiben kann.
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

firstfacility

Sorry habe ich total überlesen. Bin nach Anfänger im Bereich Fhem von daher danke für den Hinweis. Nun kann ich die Gpio´s ansteuern. Ich hätte aber noch eine Frage.
Meine Gpio´s steuern Relais, die dann wieder Rollos ansteuern. Nun schließen die Relais beim Booten heißt je nach dem wie ich die Relais anschließe, öffnen bzw schließen meine Rollos beim booten des Pi´s. Wie könnte ich das lösen ?

RaspiLED

Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

firstfacility

Danke für den Hinweis, wäre es nicht einfacher nach setzten des Gpio auf Output ein zb echo 0 > /sys/class/gpio/gpio4/value zu senden ? 

klausw

Wenn du das Attribut restoreOnStartup auf last setzt dann sollte der Output direkt nach dem Reboot korrekt gesetzt werden.
Es lässt sich aber nicht vermeiden, das beim Booten der rezessivzustand der Relais gesetzt wird.
Das sollte aber kein Problem sein, die Rolladenmotoren sollten ja nur beim fahren bestromt 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

Beetle2003

Hallo,

ich versuche gerade die Türklingel über einen GPIO Port auszuwerten.
Wird Taster gedrückt ( Kontakt geschlossen ) soll der PI das erkennen und weitere Funktionen werden per Script gestartet.

Ich kann über GPIO Relais ein und ausschalten. Das klappt.

Habe GPIO25 ist als Input definiert. Der zeigt keine Veränderung ob ich ihn auf GND oder 3.3V setzte.

Hat jemand eine Idee. Stehe derzeit im Wald und sehe die Bäume nicht.

Danke

Frank_Huber

Zitat von: Beetle2003 am 04 März 2019, 23:38:57
Hallo,

ich versuche gerade die Türklingel über einen GPIO Port auszuwerten.
Wird Taster gedrückt ( Kontakt geschlossen ) soll der PI das erkennen und weitere Funktionen werden per Script gestartet.

Ich kann über GPIO Relais ein und ausschalten. Das klappt.

Habe GPIO25 ist als Input definiert. Der zeigt keine Veränderung ob ich ihn auf GND oder 3.3V setzte.

Hat jemand eine Idee. Stehe derzeit im Wald und sehe die Bäume nicht.

Danke
Zeig mal bitte ei List von GPIO.

Gesendet von meinem Doogee S60 mit Tapatalk


Steffen@Home

Klinke mich hier mal ein....

Ich habe gestern auch einen GPIO als INPUT definiert.
Nachdem ich den Pegel am Eingang verändere muss ich erst den Button set GPIOxx readValue betätigen damit das Device den state sowie Pinlevel aktualisiert.
- Sollte dies nicht automatisch gehen oder muss ich sowas wie event-on-change-reading .* setzen ?

Danke.
Pi 1 - FHEM, HM-MOD-RPI-PCB, HM-RT-CC-DN, HM-WDS10-TH-O, HM-Sec-SCo, HM-LC-Sw1PBU-FM, Relais Platine für ext. Ansteuerung, LD382 Wifi LED Controller, DHT
Pi 2 - Kamera, DHT
Pi 3 - FHEM2, Grafana, DHT, Magnet-Sensoren, Relais-Platine

Frank_Huber

Zitat von: Steffen@Home am 21 März 2019, 06:49:24
Klinke mich hier mal ein....

Ich habe gestern auch einen GPIO als INPUT definiert.
Nachdem ich den Pegel am Eingang verändere muss ich erst den Button set GPIOxx readValue betätigen damit das Device den state sowie Pinlevel aktualisiert.
- Sollte dies nicht automatisch gehen oder muss ich sowas wie event-on-change-reading .* setzen ?

Danke.
Da wir hier nicht hellsehen können für dich das gleiche:
Zeig mal ein list vom GPIO.

Gesendet von meinem Doogee S60 mit Tapatalk