NEWS
GPIO's Steuern 16chRelais12V über RasPi o. Rock64
-
Oh man...
einen Test später.
Klar schaltet es...
-
Öhm, ne, nicht nur das cd weg, sondern die ganze Zeile ersetzen, also bei Befehl zB:
echo "in" > /sys/class/gpio/gpio2/direction
Bin jetzt mal ne Stunde abwesend, bessere Hälfte bläst zum Kaffee^^
-
@SBorg sagte in GPIO's Steuern 16chRelais12V über RasPi o. Rock64:
Öhm, ne, nicht nur das cd weg, sondern die ganze Zeile ersetzen, also bei Befehl zB:
echo "in" > /sys/class/gpio/gpio2/direction
Bin jetzt mal ne Stunde abwesend, bessere Hälfte bläst zum Kaffee^^
Kaffeestückchen klingt auch garnicht verkehrt.
-
@SBorg
...die Antwort steht übrigens da oben...https://forum.iobroker.net/post/271613 -
@DiveDancer sagte in GPIO's Steuern 16chRelais12V über RasPi o. Rock64:
Kaffeestückchen klingt...
Erdbeerkuchen mit Schlagsahne
Gut, schalten klappt soweit. Damit hätten wir auch schon eine Schaltanzeige (Erklärung kommt später noch). Gehe ich Recht in der Annahme, dass du vom/über den Broker nur die max. 16 Relais schaltest, also bspw. Relais 12 wird nicht von woanders ein-/ausgeschaltet?
btw.: eben noch schnell gelesen: Node-RED andere Baustelle, aber selbes Problem...
-
Erdbeerkuchen also
Dumm Sau
Kaffee schwarz musste es tun.
DIe eine Relais Karte soll erst der Anfang sein, wenn das funktionieren sollte.
Hab mich schon ein wenig über Schieberegister eingelesen um die Beschränkung der Ports des Pi aufzuheben.Derzeit und Hauptsächlich möchte ich die Relais mit ioBroker Steuern.
Deswegen suche ich gerade nach einem ordentlichen Weg um das zu Bewerkstelligen.
Deswegen auch der zweite Thread.
Dieser Weg über den rpi Adapter wird nämlich aus anderen Berichten mindestens mal das eine Problem machen:
Nachts wird mein Server per Script neugestartet.
Bei jedem Neustart, startet auch der Adapter neu. Und dabei werden alle Relais angezogen.
Auch wenn es schon ein paar Lösungen per Script gibt die diese ungewollte Schaltungsstellung lösen,
muss man dennoch mit mindestens einer Minute rechnen in der die Relais nicht so stehen wie man sie programmiert hat.Da ich z.B auch die Steuerung meiner Markise mit der Karte Plane wäre z.B. ein selbstständiges herausfahren in der Nacht um 3 ein Graus für meine Regierung.
Und ein Ende meiner Markise wenn irgendwann einmal um diese Zeit ein Sturm herrscht.
Bei geplanter Beleuchtung ist es dann wohl eher zu vernachlässigen. Oder als unschön abzutun.Bei dem einen oder anderen Relais Könnte ich mir nachträglich allerdings schon vorstellen per manuellem Schalter und ein paar Schutz und Verpolungsdioden den Schaltkreis vom GPIO Port auch per Hand zu steuern.
P.S.
Alexa soll die Steuerung auch übernehmen.
Aber das sollte über MQTT wohl auch unter iobroker laufen, richtig!?! -
Oki, und wir drücken abermals RESET...
Vollkommen auf dem falschen Dampfer. Hätte ich auch früher drauf kommen können, von wegen "in"/ "out" (klingt komisch zum schalten!?) und "direction"...
Habe mich mal bisserl eingelesen und das ist mal total falsch
Kein Wunder, dass es da bei den Beispielen wild und quer schaltet...Du musst im Adapter alle GPIOs auf "out" stellen.
Im Blockly aufecho "1" > /sys/class/gpio/gpio2/value
ändern.
Eigentlich ist "1" EIN und "0" AUS. Wenn deine Relais-Platine (wie die meisten) allerdings "Low active" ist, ist es genau anders rum.So sollte das Relais jetzt auch (noch) korrekt schalten.
...und ja, wenn es mal rudimentär funktioniert ist es egal ob dann per Node-RED, Alexa, MQTT, what else
-
@SBorg sagte in GPIO's Steuern 16chRelais12V über RasPi o. Rock64:
echo "1" > /sys/class/gpio/gpio2/value
Das schaltet leider nicht.
Das sagt der LOG
rpi2.0 2019-06-15 17:50:58.985 debug -1 rpi2.0 2019-06-15 17:50:58.985 debug CURRENT = gpios undefined rpi2.0 2019-06-15 17:50:58.985 debug -1 rpi2.0 2019-06-15 17:50:58.985 debug CURRENT = wlan false rpi2.0 2019-06-15 17:50:58.985 debug -1 rpi2.0 2019-06-15 17:50:58.984 debug CURRENT = uptime false rpi2.0 2019-06-15 17:50:58.984 debug -1 rpi2.0 2019-06-15 17:50:58.984 debug CURRENT = temperature false rpi2.0 2019-06-15 17:50:58.984 debug -1 rpi2.0 2019-06-15 17:50:58.984 debug CURRENT = swap false rpi2.0 2019-06-15 17:50:58.983 debug -1 rpi2.0 2019-06-15 17:50:58.983 debug CURRENT = sdcard false rpi2.0 2019-06-15 17:50:58.983 debug -1 rpi2.0 2019-06-15 17:50:58.983 debug CURRENT = network false rpi2.0 2019-06-15 17:50:58.983 debug -1 rpi2.0 2019-06-15 17:50:58.983 debug CURRENT = memory false rpi2.0 2019-06-15 17:50:58.982 debug -1 rpi2.0 2019-06-15 17:50:58.982 debug CURRENT = raspberry false rpi2.0 2019-06-15 17:50:58.982 debug -1 rpi2.0 2019-06-15 17:50:58.982 debug CURRENT = cpu false rpi2.0 2019-06-15 17:50:58.982 debug -1 rpi2.0 2019-06-15 17:50:58.981 debug CURRENT = interval undefined rpi2.0 2019-06-15 17:50:58.981 debug 0 rpi2.0 2019-06-15 17:50:58.981 debug CURRENT = c_wlan undefined rpi2.0 2019-06-15 17:50:58.981 debug 0 rpi2.0 2019-06-15 17:50:58.981 debug CURRENT = c_uptime undefined rpi2.0 2019-06-15 17:50:58.980 debug 0 rpi2.0 2019-06-15 17:50:58.980 debug CURRENT = c_temperature undefined rpi2.0 2019-06-15 17:50:58.980 debug 0 rpi2.0 2019-06-15 17:50:58.980 debug CURRENT = c_swap undefined rpi2.0 2019-06-15 17:50:58.980 debug 0 rpi2.0 2019-06-15 17:50:58.980 debug CURRENT = c_sdcard undefined rpi2.0 2019-06-15 17:50:58.979 debug 0 rpi2.0 2019-06-15 17:50:58.979 debug CURRENT = c_network undefined rpi2.0 2019-06-15 17:50:58.979 debug 0 rpi2.0 2019-06-15 17:50:58.979 debug CURRENT = c_memory undefined rpi2.0 2019-06-15 17:50:58.979 debug 0 rpi2.0 2019-06-15 17:50:58.978 debug CURRENT = c_raspberry undefined rpi2.0 2019-06-15 17:50:58.978 debug 0 rpi2.0 2019-06-15 17:50:58.978 debug CURRENT = c_cpu undefined rpi2.0 2019-06-15 17:50:58.978 debug PARSING: gpios rpi2.0 2019-06-15 17:50:58.978 debug PARSING: wlan rpi2.0 2019-06-15 17:50:58.977 debug PARSING: uptime rpi2.0 2019-06-15 17:50:58.977 debug PARSING: temperature rpi2.0 2019-06-15 17:50:58.977 debug PARSING: swap rpi2.0 2019-06-15 17:50:58.977 debug PARSING: sdcard rpi2.0 2019-06-15 17:50:58.977 debug PARSING: network rpi2.0 2019-06-15 17:50:58.976 debug PARSING: memory rpi2.0 2019-06-15 17:50:58.976 debug PARSING: raspberry rpi2.0 2019-06-15 17:50:58.976 debug PARSING: cpu rpi2.0 2019-06-15 17:50:58.976 debug PARSING: interval rpi2.0 2019-06-15 17:50:58.976 debug PARSING: c_wlan rpi2.0 2019-06-15 17:50:58.975 debug PARSING: c_uptime rpi2.0 2019-06-15 17:50:58.975 debug PARSING: c_temperature rpi2.0 2019-06-15 17:50:58.975 debug PARSING: c_swap rpi2.0 2019-06-15 17:50:58.975 debug PARSING: c_sdcard rpi2.0 2019-06-15 17:50:58.975 debug PARSING: c_network rpi2.0 2019-06-15 17:50:58.974 debug PARSING: c_memory rpi2.0 2019-06-15 17:50:58.974 debug PARSING: c_raspberry rpi2.0 2019-06-15 17:50:58.974 debug PARSING: c_cpu rpi2.0 2019-06-15 17:50:58.973 debug start parsing rpi2.0 2019-06-15 17:49:58.962 debug -1 rpi2.0 2019-06-15 17:49:58.962 debug CURRENT = gpios undefined rpi2.0 2019-06-15 17:49:58.961 debug -1 rpi2.0 2019-06-15 17:49:58.961 debug CURRENT = wlan false rpi2.0 2019-06-15 17:49:58.961 debug -1 rpi2.0 2019-06-15 17:49:58.961 debug CURRENT = uptime false rpi2.0 2019-06-15 17:49:58.961 debug -1 rpi2.0 2019-06-15 17:49:58.960 debug CURRENT = temperature false rpi2.0 2019-06-15 17:49:58.960 debug -1 rpi2.0 2019-06-15 17:49:58.960 debug CURRENT = swap false rpi2.0 2019-06-15 17:49:58.960 debug -1 rpi2.0 2019-06-15 17:49:58.960 debug CURRENT = sdcard false rpi2.0 2019-06-15 17:49:58.959 debug -1 rpi2.0 2019-06-15 17:49:58.959 debug CURRENT = network false rpi2.0 2019-06-15 17:49:58.959 debug -1 rpi2.0 2019-06-15 17:49:58.959 debug CURRENT = memory false rpi2.0 2019-06-15 17:49:58.959 debug -1 rpi2.0 2019-06-15 17:49:58.958 debug CURRENT = raspberry false rpi2.0 2019-06-15 17:49:58.958 debug -1 rpi2.0 2019-06-15 17:49:58.958 debug CURRENT = cpu false rpi2.0 2019-06-15 17:49:58.958 debug -1 rpi2.0 2019-06-15 17:49:58.957 debug CURRENT = interval undefined rpi2.0 2019-06-15 17:49:58.957 debug 0 rpi2.0 2019-06-15 17:49:58.957 debug CURRENT = c_wlan undefined rpi2.0 2019-06-15 17:49:58.957 debug 0 rpi2.0 2019-06-15 17:49:58.957 debug CURRENT = c_uptime undefined rpi2.0 2019-06-15 17:49:58.956 debug 0 rpi2.0 2019-06-15 17:49:58.956 debug CURRENT = c_temperature undefined rpi2.0 2019-06-15 17:49:58.956 debug 0 rpi2.0 2019-06-15 17:49:58.956 debug CURRENT = c_swap undefined rpi2.0 2019-06-15 17:49:58.955 debug 0 rpi2.0 2019-06-15 17:49:58.955 debug CURRENT = c_sdcard undefined rpi2.0 2019-06-15 17:49:58.955 debug 0 rpi2.0 2019-06-15 17:49:58.955 debug CURRENT = c_network undefined rpi2.0 2019-06-15 17:49:58.954 debug 0 rpi2.0 2019-06-15 17:49:58.954 debug CURRENT = c_memory undefined rpi2.0 2019-06-15 17:49:58.954 debug 0 rpi2.0 2019-06-15 17:49:58.954 debug CURRENT = c_raspberry undefined rpi2.0 2019-06-15 17:49:58.953 debug 0 rpi2.0 2019-06-15 17:49:58.953 debug CURRENT = c_cpu undefined rpi2.0 2019-06-15 17:49:58.953 debug PARSING: gpios rpi2.0 2019-06-15 17:49:58.953 debug PARSING: wlan rpi2.0 2019-06-15 17:49:58.952 debug PARSING: uptime rpi2.0 2019-06-15 17:49:58.952 debug PARSING: temperature rpi2.0 2019-06-15 17:49:58.952 debug PARSING: swap rpi2.0 2019-06-15 17:49:58.952 debug PARSING: sdcard rpi2.0 2019-06-15 17:49:58.951 debug PARSING: network rpi2.0 2019-06-15 17:49:58.951 debug PARSING: memory rpi2.0 2019-06-15 17:49:58.951 debug PARSING: raspberry rpi2.0 2019-06-15 17:49:58.951 debug PARSING: cpu rpi2.0 2019-06-15 17:49:58.950 debug PARSING: interval rpi2.0 2019-06-15 17:49:58.950 debug PARSING: c_wlan rpi2.0 2019-06-15 17:49:58.950 debug PARSING: c_uptime rpi2.0 2019-06-15 17:49:58.949 debug PARSING: c_temperature rpi2.0 2019-06-15 17:49:58.949 debug PARSING: c_swap rpi2.0 2019-06-15 17:49:58.949 debug PARSING: c_sdcard rpi2.0 2019-06-15 17:49:58.948 debug PARSING: c_network rpi2.0 2019-06-15 17:49:58.944 debug PARSING: c_memory rpi2.0 2019-06-15 17:49:58.944 debug PARSING: c_raspberry rpi2.0 2019-06-15 17:49:58.943 debug PARSING: c_cpu rpi2.0 2019-06-15 17:49:58.942 debug start parsing
Das der LOG unterm Script.
17:47:36.532 info javascript.1 Stop script script.js.common.KG.Heizraum.Relais_16_Grund 17:47:36.551 info javascript.0 Stop script script.js.common.KG.Heizraum.Relais_16_Grund 17:47:53.042 info javascript.0 Stop script script.js.common.KG.Heizraum.Relais_16_Grund 17:47:53.052 info javascript.1 Stop script script.js.common.KG.Heizraum.Relais_16_Grund 17:48:06.484 info javascript.1 Start javascript script.js.common.KG.Heizraum.Relais_16_Grund 17:48:06.485 info javascript.1 script.js.common.KG.Heizraum.Relais_16_Grund: registered 0 subscriptions and 0 schedules 17:48:16.169 info javascript.1 Stop script script.js.common.KG.Heizraum.Relais_16_Grund 17:49:12.765 info javascript.1 Start javascript script.js.common.KG.Heizraum.Relais_16_Grund 17:49:12.765 info javascript.1 script.js.common.KG.Heizraum.Relais_16_Grund: registered 0 subscriptions and 0 schedules 17:49:40.127 info javascript.1 Stop script script.js.common.KG.Heizraum.Relais_16_Grund 17:49:40.144 info javascript.0 Stop script script.js.common.KG.Heizraum.Relais_16_Grund 17:49:40.353 info javascript.1 Start javascript script.js.common.KG.Heizraum.Relais_16_Grund 17:49:40.353 info javascript.1 script.js.common.KG.Heizraum.Relais_16_Grund: registered 0 subscriptions and 0 schedules
-
Wurde dann mal auf Shopping Tour geschickt.
Bin dann mal weg -
Geshopt, Gesnäckt & Rasenschnitt
-
'Value' scheint so nicht hinterlegt zu sein.
pi@Tijger:/sys/class/gpio $ echo "in" > gpio2/direction pi@Tijger:/sys/class/gpio $ echo "1" > gpio2/value -bash: echo: Schreibfehler: Die Operation ist nicht erlaubt. pi@Tijger:/sys/class/gpio $ echo "0" > gpio2/value -bash: echo: Schreibfehler: Die Operation ist nicht erlaubt. pi@Tijger:/sys/class/gpio $
-
Sieht mehr nach fehlenden Rechten (Schreibfehler) aus. Versuche es mal als root.
-
Stimmt, die Fehlermeldung ist weg
Aber das Relais bleibt tot
pi@Tijger:/sys/class/gpio $ echo "0" > gpio2/value pi@Tijger:/sys/class/gpio $ echo "1" > gpio2/value pi@Tijger:/sys/class/gpio $ sudo echo "0" > gpio2/value pi@Tijger:/sys/class/gpio $ sudo echo "1" > gpio2/value pi@Tijger:/sys/class/gpio $
-
Keine Funktion -
Zumindest weiß ich warum der RPI-Adapter so nicht "richtig" funktioniert, der läuft nur wenn auch der ioB unter root läuft.
Ich nehme mal an, dass sich der Adapter und die Versuche unter der Shell beißen. Deaktiviere mal den Adapter, dann alles als root/sudo (löscht die GPIO2-Einstellungen + legt sie neu und clean wieder an):echo "2" > /sys/class/gpio/unexport echo "2" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio2/direction echo "1" > /sys/class/gpio/gpio2/value echo "0" > /sys/class/gpio/gpio2/value
Schaltet das Relais jetzt?
-
Nein Es schaltet nicht.
Das Problem ist:
All die Befehle unter diesem Pfad funktionieren nur, wenn der Adapter läuft!So sieht das aus wenn der Adapter deaktiviert ist!:
root@Tijger:/sys/class/gpio# echo "2" > /sys/class/gpio/unexport bash: echo: Schreibfehler: Das Argument ist ungültig. root@Tijger:/sys/class/gpio#
Bei aktiviertem Adpter scheint es zu funktionieren...:
root@Tijger:/sys/class/gpio# echo "2" > /sys/class/gpio/unexport root@Tijger:/sys/class/gpio# echo "2" > /sys/class/gpio/export root@Tijger:/sys/class/gpio# echo "out" > /sys/class/gpio/gpio2/direction root@Tijger:/sys/class/gpio# echo "1" > /sys/class/gpio/gpio2/value root@Tijger:/sys/class/gpio# echo "0" > /sys/class/gpio/gpio2/value root@Tijger:/sys/class/gpio#
...aber das Relais schaltet nicht.
-
Bei deaktiviertem rpi2.0 Adapter nach einem reboot:
root@Tijger:/sys/class/gpio# dir export gpiochip0 gpiochip100 gpiochip504 unexport root@Tijger:/sys/class/gpio# ls -al /sys/class/gpio insgesamt 0 drwxrwx--- 2 root gpio 0 Jun 16 10:55 . drwxr-xr-x 54 root root 0 Nov 3 2016 .. -rwxrwx--- 1 root gpio 4096 Jun 16 10:55 export lrwxrwxrwx 1 root gpio 0 Jun 16 10:55 gpiochip0 -> ../../devices/platform/so c/3f200000.gpio/gpio/gpiochip0 lrwxrwxrwx 1 root gpio 0 Jun 16 10:55 gpiochip100 -> ../../devices/gpiochip2 /gpio/gpiochip100 lrwxrwxrwx 1 root gpio 0 Jun 16 10:55 gpiochip504 -> ../../devices/platform/ soc/soc:firmware/soc:firmware:expgpio/gpio/gpiochip504 -rwxrwx--- 1 root gpio 4096 Jun 16 10:57 unexport root@Tijger:/sys/class/gpio#
Wenige Sekunden nach aktivierung des Adapters:
root@Tijger:/sys/class/gpio# dir export gpio11 gpio15 gpio18 gpio22 gpio24 gpio27 gpio4 gpio9 gpiochip100 unexport gpio10 gpio14 gpio17 gpio2 gpio23 gpio25 gpio3 gpio8 gpiochip0 gpiochip504 root@Tijger:/sys/class/gpio# ls -al /sys/class/gpio insgesamt 0 drwxrwx--- 2 root gpio 0 Jun 16 11:07 . drwxr-xr-x 54 root root 0 Jun 16 11:04 .. -rwxrwx--- 1 root gpio 4096 Jun 16 11:07 export lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio10 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio10 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio11 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio11 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio14 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio14 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio15 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio15 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio17 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio17 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio18 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio18 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio2 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio2 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio22 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio22 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio23 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio23 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio24 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio24 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio25 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio25 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio27 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio27 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio3 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio3 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio4 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio4 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio8 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio8 lrwxrwxrwx 1 root gpio 0 Jun 16 11:07 gpio9 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio9 lrwxrwxrwx 1 root gpio 0 Jun 16 10:55 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0 lrwxrwxrwx 1 root gpio 0 Jun 16 10:55 gpiochip100 -> ../../devices/gpiochip2/gpio/gpiochip100 lrwxrwxrwx 1 root gpio 0 Jun 16 10:55 gpiochip504 -> ../../devices/platform/soc/soc:firmware/soc:firmware:expgpio/gpio/gpiochip504 -rwxrwx--- 1 root gpio 4096 Jun 16 10:57 unexport root@Tijger:/sys/class/gpio#
-
Manche Threads sind einfach zum kotzen.
Da findet man mal was mit genau seiner Problemstellung,
und wenn es spannend wird endet er und wird mal einfach so ein halben Jahrzent nicht fort geführt. -
pigpio soll Stand der Technik sein:
https://www.elektronik-kompendium.de/sites/raspberry-pi/2006041.htmVielleicht lohnt da ein Ansatz
Läuft aber anscheinend auch nicht out of the Box.
Beißt sich aber vielleicht auch mit dem rpi Adapter. -
Sieht genau aus wie es soll, nur hast du dann einen kleinen Fehler begangen
Wenn du den Adapter anhältst und rebootest, dann darf im GPIO-Verzeichnis kein gpioxx mehr vorhanden sein, außer den gpiochipxyzWieder alles als root (ohne den Adapter gestartet zu haben!):
echo "2" > /sys/class/gpio/export
(die "2" steht hier für GPIO2)
Jetzt sollte im Verzeichnis der gpio2 (und nur der, also keine weiteren gpioxx) aufgetaucht sein.
Wir definieren diesen GPIO als Ausgang:echo "out" > /sys/class/gpio/gpio2/direction
Nun sollte sich mittels
echo "1" > /sys/class/gpio/gpio2/value echo "0" > /sys/class/gpio/gpio2/value
das Relais an GPIO2 ein- und ausschalten lassen?