NEWS
RPI 2.0 GPIOs können nicht angesteuert werden
-
leute ein Problem nach dem anderen
gpio readall ````ist ne funktion vom wiringpi.. also alles gut bis dahin 17 ist als OUT definiert.. aber meine vermutung ist der Pi nimmt nicht die BCM auflistung nur mal testweise mach bitte ein program nano gpiotest.py#!/usr/bin/python
import RPi.GPIO as GPIOGPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)reinkopieren speichern dann chmod +x gpiotest.py dann ausführen dann nochmal probieren mit dem gpio17 zu schalten -
Um mal die Nummerierung klarzustellen - ist so auch in der Doku zum RPI-Adapter erklärt:
RPI2.GPIO.17 ist ist physisch am RPI Pin-Nr.11 und entspricht somit wohl der BCM-Auflistung.
Was mir allerdings in Deinem Screenshot von gpio readall auffällt: Pin11, also BCM 17 hat den Namen GPIO.0. Auch die anderen GPIO-Namen sind "durcheinander", z.B. gibt es da gar keinen GPIO.17.
Ich kann das jetzt nicht vergleichen und habe auch nicht wirklich Ahnung - was sagen die RasPi-Experten dazu?
-
Ich habe auch mal versucht einen anderen Pin zu initialisieren. Auch vorher das Script dazu durchgeführt. Alles ohne Erfolg.
Ich glaube, ich werde mich mit meinem Workarround, die Sache per externen Script anzugehen, anfreunden müssen.
Wobei das über RPI echt eine elegante Lösung wäre.
Habe auch noch mal auf ein paar anderen Pis gpio readall ausgeführt. Das sieht identisch aus.
-
rpi2.0 2017-02-24 17:40:03.041 info starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.rpi2, node: v4.7.3nö alles gut
ich hab mal den Loglevel erhöht … nix in die Richtung das es kein pin xyz nicht gibt..
-
Sag ich auch - das muss doch gehen…
Bei mir funktioniert's ja auch mit dem Jessie-Image von ioBroker...
Noch eine Vermutung in die Runde: Kann es sein, dass die Anweisungen die du in die rc.local schreibst irgendwie die GPIO-Schnittstelle "blockieren"?
Ich hab's ein wenig anders. Die folgende Datei als separates Python-Script abgespeichert und dieses Script dann in die rc.local eingebunden.
#!/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) -
damit initialisierst du nur den pin 23 direkt nach dem booten
normalerweise ist es unötig… aber nach irgendeinen jessie update .. ging meine Klingel nicht mehr (da sitzt ein Pi drauf und wertet ein gpio23 aus)
nach dem Initialisieren schon.. also hab ich es mit übernommen
schau mal ob du es per Programm schalten kannst (so langsam gehen mir die Ideen aus)
#!/usr/bin/python import RPi.GPIO as GPIO #gpio gP17 = 17 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(gP17 , GPIO.OUT) GPIO.output(gP17 , GPIO.HIGH) time.sleep(2) GPIO.output(gP17 , GPIO.LOW)direkt von der konsole ausführen als program
-
Ja, denke ich auch dass mein Script eigentlich überflüssig sein müsste. Allerdings hatte ich anfangs eben auch Probleme mit der Initialisierung des INPUT-Ports. Nachdem ich das Script verwendet habe hat's geklappt.
Meine Vermutung ist nur - Micky79 macht das ja in seinem Script leicht anders, nicht das sich da vielleicht was gegenseitig beharkt…
Und @Micky79, du hattest glaube ich noch nicht beantwortet ob dein ioBroker als root läuft?
-
Ja, denke ich auch dass mein Script eigentlich überflüssig sein müsste. Allerdings hatte ich anfangs eben auch Probleme mit der Initialisierung des INPUT-Ports. Nachdem ich das Script verwendet habe hat's geklappt.
Meine Vermutung ist nur - Micky79 macht das ja in seinem Script leicht anders, nicht das sich da vielleicht was gegenseitig beharkt…
Und @Micky79, du hattest glaube ich noch nicht beantwortet ob dein ioBroker als root läuft? `
ja läuft als root… steht zumindest so im einstiegsthread
-
Micky,
iobroker und die Adapter sollen neu installiert werden. Machs jetzt immer so dass ich
Iobroker abschalte (sudo iobroker stop)
das Verzeichnis /opt/iobroker umbenenne in z,.b iobroker.bak
ein neues Verzeichnis dann in /opt/oipbroker anlege
und das Unterverzeichnis von /opt/iobroker.bak/iobroker-data auf /opt/iobroker kopiere.
Dann installiere ich in opt/iobroker iobroker (und die Adapter) neu. Wenn alles funktioniert kann man das .bak-Verzeichnis löschen.
Damit hab ich die alten Einstellungen aber die neuen nodejs-Module passend auf das neue nodejs.
-
an der node version liegt es nicht… gpio Steuerung hat erstmal nichts mit node zu tun...
hab ein import übersehen
#!/usr/bin/python import RPi.GPIO as GPIO import os, sys, time #gpio gP17 = 17 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(gP17 , GPIO.OUT) GPIO.output(gP17 , GPIO.HIGH) time.sleep(2) GPIO.output(gP17 , GPIO.LOW)

