NEWS
RPI 2.0 GPIOs können nicht angesteuert werden
-
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.
-
Also,
hab mir das mal angeschaut da ich rausfinden wollte warum's am development Raspi auch nicht funktioniert.
Der Grund scheint zu sein dass das rpi-gpio library nicht neu kompiliert wird/wurde da es anscheinend irgendwo im cache mit einer alten Version vorhanden ist.
Ich habs zu Laufen gekriegt nachdem ich:
cd /opt/iobroker/node_modules rm -r rpi-gpio cd iobroker.rpi2 rm -r node_modules npm install --production
gemacht habe.
Das hat eine neue kompilierung des rpi-gpio-Libraries durchgeführt und der Adapter lief dann wieder ohne Fehler.
Habe auch ein
npm cache clean
gemacht, leider erst nachher, und hoffe dass die alten Kopien der Module vielleicht verschwinden…. Mal sehen ob es nächstes mal hilft wenn ich es vorher mache.
Ach ja, hab' vergessen zu erwähnen: Der Grund kann auch daher rühren dass (z.B. mittels sudo apt-get upgrade oder dist-upgrade) das System und der kernel oder gpio-libraries auf eine neuere Version upgedated wurden und deshalb das nodejs-Modul auch neu kompiliert werden muss. Der Fehler liegt also weniger bei ioBroker sondern mehr bei neuen libraries, entweder von nodejs oder vom System.
-
Hey fsjoke,
habe Deine Schritte mal durchgeführt.
Das Verzeichnis rpi-gpio gibt es bei mir nicht.
Die restlichen Befehl gingen. Clean Cache auch.
Adapter neugestartet, direkt im LOG ne Fehlermeldung das er den GPIO nicht initialisieren kann.
Das Script ausgeführt um die GPIO zu initialisieren. Adapter Neustart, auch nix.
GPIO 27 probiert. Gleiche Meldung.
GPIO 22 probiert (Physikalisch PIN 15) -> keine Fehlermeldung.
GPIO über Objektbaum angesprochen, GEHT! Über JavaScript natürlich auch!
DANKE!!!
Komisch nur das nicht alle GPIOS gehen. Aber im Moment brauche ich nur den einen.
Viele Grüße Micky
-
Hallo Micky,
gut dass es jetzt zumindest teilweise geht!
Hast schon mal 'gpio readall' gemacht? Bei mir kommt da folgendes:
+-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 0 | IN | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | IN | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 1 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | OUT | 1 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
Nun ist wichtig anzumerken dass die GPIO-Zahlen die in der Reihe 'BCM' stehen in rpi2-Adapter verwendet werden und nicht die 'GPIO' -Zahlen!
Ich verwend z.B. GPIO-24 als Eingang und GPIO-25 als Ausgang und das sind bei der Adapter-Konfig (BCM)19 und (BCM)26.
Hab mal probiert, GPIO-27 (BCM)16 funktioniert, GPIO-2 (BCM)27 nicht obwohl er im Adapter als erlaubt aufgeführt ist.
Könnte ein Problem in der SW sein, das müßte sich Bluefox mal anschauen, die Fehlermeldung wird anscheinen vom Betriebssystem erzeugt da ich sie im Adapter nicht finden kann.
-
Der Post ist zwar schon älter aber bei meinem Slave kommt es auch zu diese Fehlermeldung.
rpi2.4 2022-02-10 15:50:43.074 error GPIO is not initialized! rpi2.4 2022-02-10 15:50:43.063 error GPIO is not initialized! rpi2.4 2022-02-10 15:50:42.831 error GPIO is not initialized!
Das ganze ist aber schon mal gegangen. Was kann ich machen.
Würde der Befehl helfen.npm install --production
https://github.com/iobroker-community-adapters/ioBroker.rpi2/issues/22
RPI Version 1.3.1
JS Controller: 3.3.22
Nodejs: 14.19.0 -
Welche Hardware ist das da beim Slave?
-
@thomas-braun ein Raspberry 3b+ ist das