NEWS
[Problem] RPI-Monitor GPIO's nicht vorhanden
-
MOD-Edit by eric2905; 09.05.2017 / 10:18; Betreff geändert
HAllo,
ich wollte jetzt mal paar Sachen über die GPIOs eine RPI der als ioBroker-Slave läuft steuern. Habe den RPI-Monitor-Adapter installiert, dann in den Settings einige GPIO-Pins aktiviert. Wenn ich das richtig verstanden habe müsste es ja jetzt in den Objekten unter rpi.0 einen Ordner gpio geben wo die Pins als Objekte darin vorhanden sind.
Der Ordner GPIO existiert aber bei mir nicht:
Was mache ich denn falsch - ich habe den Adapter jetzt auch schon mal wieder deinstalliert und neu installiert - hat auch nicht geholfen.Über die Konsole kann ich die GPIOs schalten…
Danke und Gruß
Thilo
-
Auf Anhieb fällt mir erst einmal eins ein:
iobroker muss als root laufen, wenn du die GPIOs ansprechen willst.
Gruß
Rainer
-
Hallo Rainer,
gute Frage eigentlich… Wie kann ich - als Linux-Noob - denn feststellen unter welchem Account ioBroker gestartet ist?
-
Hast du die Installation als root gemacht?
Oder als User pi mit sudo?
Gruß
Rainer
-
Gut - dann kann ich die Frage ja an dich zurückgeben, Rainer. Ich habe nämlich dein aktuelles Image von der Website (RasPbian Jessie lite von 01/2017) verwendet…
-
Gut - dann kann ich die Frage ja an dich zurückgeben, Rainer. Ich habe nämlich dein aktuelles Image von der Website (RasPbian Jessie lite von 01/2017) verwendet… `
Das hatte ich befürchtet.…und ich weiß es nicht mehr. Seit heute Mittag versuche ich mich dran zu erinnern
gut es gibt noch einen Weg das herauszufinden, dass muss dann aber ein Linux-Kenner sagen.
Es gibt die Möglichkeit den Besitzer der einzelnen Dateien ausgeben zu lassen.
Ich google mal.
EDIT: Versuche mal
ls -l /opt/iobroker/node_modules/
Gruß
Rainer
-
Hallo Rainer,
ioBroker läuft als root. Sagt sowohl dein Befehl als auch der den ich gerade ergoogelt hatte:
root@RasPiZaehl:~# ps aux | grep -i io.rpi2.0 root 6483 0.3 3.8 127416 36812 ? Sl 13:48 1:48 io.rpi2.0 root 24859 0.0 0.1 4860 1808 pts/0 S+ 22:55 0:00 grep -i io.rpi2.0
-
Jetzt bin ich verblüfft - manchmal hilft eben doch das A-E-G-Prinzip
Ich habe jetzt gerade nochmal den Adapter deinstalliert und neu installiert - und plötzlich sind die GPIO-Objekte da.
Die Ports die ich als Out definiere funktionieren auch, ich kann LED's damit schalten. Nur mit den Input-Ports hapert es jetzt noch. Beim Versuch einen Port als "In" zu definieren bekomme ich folgende Fehlermeldung im Log:
Cannot setup port 21 as input: Error: EIO: i/o error, write
Was könnte denn die Ursache dafür sein? An den Berechtigungen kann es ja eigentlich nicht liegen da beim definieren als "Out" ja genau so geschrieben werden muss - oder?
-
Hab jetzt mal wieder versucht andere Ports als "In" zu setzen. Geht auch nicht, bekomme aber zur Abwechslung jetzt einen anderen Fehler:
Cannot setup port 20 as input: Error: Channel 20 does not map to a GPIO pin
Ich stelle mir gerade die Frage welche GPIO-Nummerierung der RPI-Adapter denn eigentlich verwendet? Doch sicherlich diese hier - hat ja beim Schalten der LEDs über Output auch hingehauen…
Kann mir da bitte jemand weiterhelfen?
-
hmm bei mir läufts
wobei … es gibt ab und an ne fehlschaltung
ich setzte aber auch bei jedem reboot das pin explizit um
#!/usr/bin/python import RPi.GPIO as GPIO #gpio gP23 = 23 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) # klingel als INPUT einstellen GPIO.setup(gP23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
p.s: ja ich weiss es geht auch anders…
1518_gpio.jpg -
Das heißt, Du definierst die GPIO-Ports zusätzlich zum Adapter über ein Script? Naja - sicher ist sicher…
Blöde Frage - wo muss denn dieses Script stehen und wie wird es aufgerufen?
-
das ist ein python script
wo der ist ist eigentlich egal :
cd /home/pi
nano gpioinit.py
dort kopierst du die zeilen
dann
chmod +x gpioinit.py
mit ./gpioinit.py kannst du es ausführen
ich habs in die rc.local eingebunden..
-
Hab das Script eingebaut. Es funktioniert…
Danke
-
muss man das script für jeden pin machen?
Ich bekomme auch den fehler
rpi2.0 2017-04-22 19:40:33.124 error Cannot setup port 14 as output: Error: Channel 14 does not map to a GPIO pin
rpi2.0 2017-04-22 19:43:34.082 error Cannot setup port 26 as input: Error: EIO: i/o error, write
Das ist doch dann ein Fehler im Adapter oder nicht?
-
Hallo,
ich bastel auch gerade mit dem Adapter rum und komme irgendwie nicht weiter.
So wie ich das sehe sind die Ports im RPI-Monitor nicht die GPIOs sondern wirklich die PIN-Nr des Boards. Das hat den Vorteil, dass Sie über die verschiedenen Revisionen des Raspberry gleich geblieben sind. Die zugeordneten GPIOs sind jedoch in den Revisionen verschieden. Nachzulesen unter anderem http://raspberrypiguide.de.
Dann machen auch die Fehlermeldungen Sinn. Denn wie man aus der Pinbelegung im Post von Thisoft sehen kann ist der Pin Nr 14 GND und kann damit auch nicht als IN oder OUT gesetzt werden. Gleiches gilt für die Fehlermeldung für Port 20.
Allerdings widerspricht das Script von arteck dieser Interpretation. Dort wird der BCM Mode genutzt welcher die lower Level Broadcom Nummerierung nutzt. siehe:https://sourceforge.net/p/raspberry-gpi … asicUsage/
Und er nutzt dort Port 23 des Adapters und setzt auch GPIO 23 der allerdings an PIN 16 liegt.
Die Frage ist auch wenn man ein Script nutzt welches über rc.local einmal beim Start des Raspi durchlaufen wird und der Adapter davor oder danach oder periodisch die Modi setzt, welchen Status hat man dann eigentlich für einen PIN.
Bekommt man eigentlich bei den Objekten unter gpio den aktuellen Status des Pins angezeigt? Bei mir wird da nie etwas angezeigt.
Wie kann ich eigentlich unter vis den Status setzten?
Ich bastel an einer Steuerung für eine Relaiskarte rum und würde die Relais gerne über VIS schalten.
Gruß
-
@Tgr:So wie ich das sehe sind die Ports im RPI-Monitor nicht die GPIOs sondern wirklich die PIN-Nr des Boards. `
Falsch … wenn du dir den Adapter anschaust ist neben dem pin2 rechts der pin 15 was nicht stimmen kann da neben dem pin2 der pin1 liegt mit 5 V..
irgendwo hab ich mal gelesen das es die BMC Einstellung ist
-
Hallo Arteck
in deinem Script wird ja die BMC Einstellung zur Nummerierung herangezogen. Daher nutzt du auch GPIO 23.
GPIO.setmode(GPIO.BCM)
Ich beziehe mich jedoch nicht auf das Layout des Adapters, sondern lediglich auf die Nummerierung, also die Nummern im Adapter und die Pin-Nummern des Raspberry. Die Frage wäre nun, hast Du bei deiner Verdrahtung der Klingel Pin 16 also der 8 . Pin der rechten Seite von oben genommen? Dann würde das GPIO 23 entsprechen und ich würde verstehen wieso dein Script funktioniert bei der Einstellung des Adapters. Vielleicht kannst DU ja ein Foto der Verdrahtung schicken.
-
ich habe die Verdrahtung selber gemacht und weis das es der GPIO23 (8-te von oben rechte Seite) ist :lol:
-
Hallo mitsammen!
Die GPIO bitte ausschließlich auf dem GPIO-Reiter in der Adapter-Konfig konfigurieren! Keine externen python-scrips für dort verwendete pins!
Nur dort konfigurierte Pins scheinen in der Objektliste auf.
Auf der Hilfe-Seite des Adapters (https://github.com/ioBroker/ioBroker.rp … /README.md) erkennt man auch dass die Port--Numerierung nicht GPIO sonder BCM ist!
Mit 'gpio readall' könnt ihr auf eurem Pi die Pinbelegung (und die dazugehörigen BCM-Pins) finden.
Habe 2 Pi's und auf beiden funktioniert's damit.
-
@fsjoke:Hallo mitsammen!
Die GPIO bitte ausschließlich auf dem GPIO-Reiter in der Adapter-Konfig konfigurieren! Keine externen python-scrips für dort verwendete pins!
Nur dort konfigurierte Pins scheinen in der Objektliste auf.
Auf der Hilfe-Seite des Adapters (https://github.com/ioBroker/ioBroker.rp … /README.md) erkennt man auch dass die Port--Numerierung nicht GPIO sonder BCM ist!
Mit 'gpio readall' könnt ihr auf eurem Pi die Pinbelegung (und die dazugehörigen BCM-Pins) finden.
Habe 2 Pi's und auf beiden funktioniert's damit. `
leider ist es bei mir nicht so einfach da auf meine GPIOS andere Scripte auch noch zugreifen (ich mach bissel mehr als nur iobroker laufen) .. ergo ich brauche die init scripts..
solange man sich euf eine Numerierung einigt und diese nicht mischt sollte es funktionieren.. sollte es..