Led stripe mit externen raspi steuern

Begonnen von Kellerkind86, 08 April 2021, 12:18:42

Vorheriges Thema - Nächstes Thema

Kellerkind86

Hallo zusammen,
Besteht die Möglichkeit einen kurzen led streifen über usb (oder gpio pins) am raspberry (nicht Fhem Server) über fhem zu steuern?
Würde gerne etwas mehr licht am 3d drucker haben aber nicht permanent anhaben.
Der octoprint raspberry läuft ja durch und ich würde dann gerne bei druck die led  s anhaben.

Danke
Gruß Marcell
Hardware in Nutzung: Fritzbox7490,RP4,nanoCUL868,sonoff(mini),shelly(2.5)

MadMax-FHEM

#1
Ja klar geht das.
Warum soll(te) es nicht gehen ;)

Aber:

- welche Art von LED-Streifen? ("nur" welche die +/- [evtl. noch für versch. Farben RGB] haben oder welche die mit "Controller" sind und somit +/- und "Steuerleitung" haben)

- wie lang bzw. interessanter: wieviel Strom und welche Spannung brauchen die?

Was auf jeden Fall bei "simplen" LEDs geht/gehen sollte: PI-Relaisplatine an GPIO (dafür ist die ja da ;)  ) und dann per externer Versorgung (würde das nicht vom PI "abgreifen") halt über die GPIO-Platine die LEDs schalten.

Wenn mehrfarbige LEDs (also RGB) und du "weiß" willst, einfach alle LEDs anschließen.
Also GND/- an GND/- und die anderen, also R,G und B an +
(oder umgekehrt je nach LED-Streifen, steht aber ja meist drauf)

Bei "Controller-LEDs" wird es komplizierter, weil die ja entsprechend angesprochen werden müssen...
Da dann eben +/- von einer passenden Stromversorgung (ebenfalls: nicht PI) und dann eben eine entsprechende Software auf den PI.
Gibt es im Internet zu finden (z.B. Ambilight/Hyperion ;) Das geht ja auch ohne ein Videosignal, d.h. man kann die LEDs auch einfach so "ansteuern" )...

Mit Risiko geht nat. auch den Strom vom PI zu nehmen, wenn die LEDs nur 5V brauchen.
Aber das würde ICH nicht machen.

Direkt von den GPIOs würde ich es schon gar nicht machen!!
(außerdem sind dort nur 3,3V!? und da LEDs zu finden dürfte nicht klappen UND: GPIO können nicht wirklich Strom liefern!)

Und wie so oft: es gibt nat. auch weitere Möglichkeiten... ;)

EDIT: per ssh kann man das dann auch "entfernt", also z.B. von einem fhem aus steuern, falls es lokal keine Möglichkeit gibt zu erkennen, dass gedruckt wird, also die LEDs an/aus gehen sollen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Kellerkind86

Okay, cool ich muss zuhause mal nachschauen. RRG leds sind es nicht.
Normale warm weiss led. Muss mal schauen. Denke die haben 12v
Schaue aber wie gesagt heute abend mal.
Nur die frage ist dann wie ich das verkabel an den gpio s und was auf dem raspberry noch installiert werden muss.
Schaltung soll einfach nur an und aus können

Gruß Marcell
Und danke schonmal
Hardware in Nutzung: Fritzbox7490,RP4,nanoCUL868,sonoff(mini),shelly(2.5)

MadMax-FHEM

#3
Naja das Verkabeln ist ja bei den Relaisplatinen beschrieben.
Ich hatte die mal in Betrieb: https://www.amazon.de/Elegoo-Relaismodul-Optokoppler-Arduino-Raspberry/dp/B01M8G4Y7Z/
Und eine mit nur einem Relais, finde aber grad nicht mehr welche...
...aber es sollten alle gehen, die auch für Arduinos etc. gehen.

Installieren: eigentlich nichts bzw. kommt es drauf an wie du die GPIO steuern willst...

Ich habe "damals" einen "Monitor" ein-/ausgeschaltet mittels "Script":

Einschalten:


#!/bin/bash

if [ ! -e /sys/class/gpio/gpio17 ]; then
  # echo setting gpio
  sudo echo "17" > /sys/class/gpio/export
  sleep 1
  sudo echo "out" > /sys/class/gpio/gpio17/direction
fi

sudo echo "0" > /sys/class/gpio/gpio17/value


Ausschalten:


#!/bin/bash

if [ ! -e /sys/class/gpio/gpio17 ]; then
  # echo setting gpio
  sudo echo "17" > /sys/class/gpio/export
  sleep 1
  sudo echo "out" > /sys/class/gpio/gpio17/direction
fi

sudo echo "1" > /sys/class/gpio/gpio17/value


Wie du siehst hatte ich das Relaisboard an GPIO 17 (musst du gegebenenfalls anpassen).
Das mit dem if usw. kann man auch "auslagern", also den GPIO-Pin "vorbereiten" in ein Startup-Script des PI...
Aber da es mir auf die Sekunde nicht ankam und ich das ja nicht so oft ein-/ausgeschalten haben hat es mir so gereicht.

Bin nicht sicher, ob ich dazu irgendein "Paket" installieren musste (müsste aber google wissen ;)  ) und ich bin nicht sicher, ob es mit Buster so noch geht, hatte es "damals" unter Stretch laufen...
...aber auch das müsste google wissen.

Ansonsten gibt es auch noch diverse andere Scripts, z.B. auch was "in Python" ;)

Man kann auch C programmieren...

Das Internet ist voll davon: wie steuere ich einen PIN am PI...

EDIT: ob du dann eine "1" oder eine "0" für ein-/ausschalten "schicken" musst kommt halt drauf an, ob das Relais bei high oder low schaltet/schalten soll...
(da ich länger an als aus hatte habe ich quasi ein so angeschlossen, dass das Relais nicht gezogen war, also keinen/weniger Strom gebraucht hat / kannst du ja anpassen)

Und die Verdrahtung der LEDs ist ja dann einfach: GND direkt an die LEDs und + dann eben über das Relais an die LEDs (oder andersrum, wie es eben "beliebt")...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Kellerkind86

Okay, danke. Hab mir jetzt ein zweier relais bestellt.
Und wie läuft das dann in fhem ab? Per Modul?
Danke schonmal vielmals
Gruß Marcell
Hardware in Nutzung: Fritzbox7490,RP4,nanoCUL868,sonoff(mini),shelly(2.5)

MadMax-FHEM

#5
Auf dem PI mit den Relais läuft kein fhem dachte ich?

Für GPIO gibt's wohl ein Modul...
...aber dazu müsste fhem ja dort laufen.
EDIT: https://wiki.fhem.de/wiki/Raspberry_Pi:_GPIOs_schalten

Ich hab das einfach per ssh-Aufruf von fhem aus gemacht.

Also einfach einen remote-Login ohne Passwort eingerichtet.
Und dann eben meine "Scripte" remote aufgerufen.
EDIT: https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html / https://heinz-otto.blogspot.com/2020/09/ssh-mit-public-key.html

EDIT: also in etwa so

"ssh pi@IP-des-LED-PI \"turnOn.sh\" 2> /dev/null"


oder so (sollte auch gehen)

"ssh pi@IP-des-LED-PI 'turnOn.sh' 2> /dev/null"

Zu beachten: der User fhem (auf dem fhem-Rechner) loggt sich als User pi (LED-Rechner) ein! Also es ist KEIN fhem User auf dem remote/LED-Rechner notwendig!! Wenn es auf dem remote/LED-REchner KEINEN User pi gibt, dann halt entsprechend ersetzen!
Daher muss ein PASSWORTLOSER ssh-Zugriff für den User fhem (fhem Rechner) auf den remote/LED-Rechner eingerichtet werden (siehe Links oben).
D.h. das user@remoteRechner sagt: welcher (remote) "User" (eben: user) man auf "remote Rechner" (remoteRechner) sein will. Wer sich dann dort/remote einloggt ist dann DORT der "lokale" User (eben: user). Der User, der den ssh-Aufruf ausführt (verm. User fhem auf dem fhem-Rechner) ist der User für den der PASSWORTLOSE Login eingerichtet werden muss. Der Befehl NACH dem user@remoteRechner, also: ssh user@remoteRechner "Befehl" / der wird dann eben so ausgeführt, als wäre man der User "user" auf dem Rechner "remoteRechner" ;)
Quasi die "Abkürzung" von: ich logge mich lokal als User fhem auf dem fhem-Rechner ein, dann logge ich mich per ssh remote als User pi auf dem remote/LED-Rechner ein und dann führe ich den Befehl "dort" aus. Aber wenn es autom. gehen soll, dann kann man sich ja nicht jedes Mal einloggen, wenn man die LEDs schalten will ;)

Die Anführungszeichen sind dazu da, damit der Aufruf nicht blockierend ausgeführt wird.
EDIT: die \" innerhalb deshalb, weil eben der ssh-Aufruf so aussieht: ssh user@remoteRechner "Befehl" / wenn das nun auch in Anführungszeichen muss wegen nicht blockierendem Aufruf in fhem, dann müssen die "inneren" Anführungszeichen "escaped" werden. (oder eben durch "einfache Anführungszeichen" ersetzt werden)...
Es gibt so allerdings keine Möglichkeit der "Rückantwort"...
https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html
Rückantwort ginge nur mit einem blockierenden Aufruf und wenn man das nicht blockierend ausführen will, muss man "blockinCall" verwenden (mehr Aufwand).
https://wiki.fhem.de/wiki/Blocking_Call

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Wernieman

Wobei es auch ohne "sudo" geht, wenn der User GPIO "rechte" hat ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

#7
Zitat von: Wernieman am 10 April 2021, 11:24:23
Wobei es auch ohne "sudo" geht, wenn der User GPIO "rechte" hat ...

Korrekt :)

Also der User pi (oder welcher dort das GPIO-Kommando ausführen soll) auf dem LED-Rechner ;)
Dann kann das "sudo" aus dem Script raus...

Ist schon ewig her, dass ich das genutzt habe...
...und da der User pi (jaja: fatalerweise ;)  ) standardmässig "sudo für alles" darf, war es so einfach(er).

D.h. ich hab halt mal getestet, ob es so überhaupt geht (also Internet durchforstet nach: GPIOs auf dem PI nutzen / und die für MICH einfachste Variante genommen)...
...und nachdem es ging einfach in ein Script "geworfen" und gut.
EDIT: hier noch mal die Anmerkung: ich hatte das ganze noch unter Stretch laufen! Mag unter Buster mittlerweile auch anders sein. Daher evtl. mal selber im I-Net suchen nach GPIO auf dem PI unter Buster und evtl. auch eine andere Variante nehmen, weil: du musst es verstehen ;) Und was MEINE einfachste Lösung war muss nicht zwingend auch DEINE sein ;)

Und wie es (leider) so ist: Prototypen halten echt lange ;)

Aktuell habe ich stattdessen eine schaltbare USB-Steckdose (Sonoff!?) und steuere "sauber" per MQTT :)

Danke für den Hinweis!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Wernieman

Habe hier 3 Stinknormale LED, welche ich per python und "eigenem user" Steuere. Debian 10 und damit funzt es.
Script wird dann per ssh von FHEM gestartet. Aktuell würde ich eventuell über MQTT nachdenken, aber wie Du sagtest: "Never Change a running System" und der Prototyp läuft Ewig
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Kellerkind86

Okay, ich bedanke mich schon mal recht herzlich für dir ausführliche Beschreibung dazu. Ich werde mir alles genau in ruhe anschauen sobald das relais angekommen ist.
Da auf dem fhem raspi auch ein mqtt Server läuft würde sich ja dann anbieten die gpio damit zu schalten. Meine hab was im i net auch dazu gefunden.
Was das angeht bin ich leider nicht so fit. Versuche mich aber damit mal da rein
zu fuchsen.
Vielen dank euch.
Über eine einfache funksteckdose intertechno hab ich auch schon gedacht...aber die verbaucht im standby zu viel oder?
Sonst könnte man ja das einfach alles in ein doif packen und gut ist.
Gruß Marcell
Hardware in Nutzung: Fritzbox7490,RP4,nanoCUL868,sonoff(mini),shelly(2.5)