NEWS
RPI 2.0 GPIOs können nicht angesteuert werden
-
@ arteck
Habe ich eben probiert.
Leider ohne Erfolg. Gleiche Fehlermeldung und bei ändern des State Datenpunktes des GPIO keine Reaktion.
Was ein bisschen komisch ist, das bei gpio readall bei BCM 17 als Name GPIO 0 angegeben ist.
-
0 ist die interne für pi
hmmm…hast mal mit einem anderen GPIO probiert
-
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?
-
alles gut…hab ich auch
wobei ich mit dem 17 nichts mache und der steht bei mir auch auf OUT…
nimm mal nen anderen.. probeweise
-
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.
-
das kann doch nicht.. bei mir geht es auch..
was hast du für jessie Image drauf ?? so ein ioBroker image oder direkt vom raspbian geladen ??
-
Direkt von raspian. Das neuste.
-
ich frage weil ich mit einem ioBroker Image Probleme hatte…
so siehts bei mir aus.. wobei meiner ein IN-put ist
-
Ja, aussehen ist bei mir identisch, nur ist die State Änderung ohne Funktion.
Bekommst Du beim starten des Adapters denn auch die Fehlermeldung?
-
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.3
nö 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
-
Ja, iobroker läuft als Root.
Dein Script habe ich auch schon ausprobiert, weil ich auch dachte das dies evtl. die GPIOS anders initialisiert. Aber auch ohne Erfolg.
Vielleicht doch die andere Node Version?
-
Bei Deinem Script zeigt er an das er time nicht findet.
Aber unabhängig davon, wenn ich das Script aufrufe (einmal mit High und danach mit LOW) funktioniert es.
Also per Python kann ich die GPIOS auch ansprechen.
-
Ich habe mal recherchiert wie ich node 6.9 installiere.
Aber kann ich das so einfach drüber bügeln? Oder muss ich dann iobroker neu installieren?
Hat das schon mal jemand gemacht?
-
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)
-
So, habe mal auf node.js 6.10 upgedatet.
Puh. Scheint soweit alles geklappt zu haben.
Danke an fsjoke.
Beim Start des RPI Adapters kommt jetzt keine Fehlermeldung mehr.
Aber beim Zugriff auf den GPIO steht "GPIO is not initialized!" im LOG.
Hab dann mal das Python Script laufen lassen, um den GPIO 17 per Script richtig zu initialisieren. RPI Adapter neu gestartet. Gleiches Problem. GPIO is not initialized!
Leute, ich gebe auf. Irgendwie bekomme ich den GPIO Zugriff nicht initialisiert.