RGB LED Band WS2801

Begonnen von n4mec1, 13 Oktober 2014, 21:37:32

Vorheriges Thema - Nächstes Thema

n4mec1

Hallo zusammen,
ist es möglich ein RGB LED Band mit WS2801 LED Treibern über die SPI Schnittstelle mit FHEM zu steuern?

Grüße

mbenker

Hi,

hast du hier eine Lösung für gefunden
FHEM auf FB7390 (Umzug auf BananaPi ist in Arbeit)
RFXcom 433MHz/HMLAN/ LED WifiBridgeV3 +LED RGBW 9W Bulbs / LW12 Stripe Controller + LED Stripes
Aktoren + Sensoren : HomeEasy, HomeMatic, (Ebay Billig auf 433 MHz)
7" ChinaTablet zur Steuerung fest an der Wand.

P.A.Trick

Das würde mich auch interessieren!?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Schlimbo

#3
Hallo Zusammen,

Ich nutze auch die "ws2801" LEDs als Ambilight Erweiterung.

angeschlossen sind diese an der SPI Schnittstelle meines Raspberrys, anfänglich hatte ich die LEDs direkt an den GPIO Ports betrieben, da ich aber immer wieder Störungen hatte (Licht flackert und ändert die Farben) habe ich einen Treiber IC (74HCT08), der die Pegel des Raspberrys von 3,3V auf 5V anhebt, zwischen den SPI Port und den WS2801 LEDs geschalten, seitdem läuft alles ohne Störungen.
Hardware Aufbau: https://github.com/tvdzwan/hyperion/wiki/Hardware

Auf den Raspberry habe ich Hyperion installiert https://github.com/tvdzwan/hyperion/wiki
Hyperion ist ein "Ambilight Clone" den man aber auch über Terminal Befehle steuern kann und somit einfach in FHEM integrieren kann.

Hyperion ist auch gleichzeitig ein "Boblight Server" so das er z.B. über das "ENIGMA2 Boblight Plugin" Farbwerte des Sat-Receivers erhalten kann und so die Farbe an das Fernsehbild anpassen kann.

in FHEM habe ich mir in der "99_myUtils.pm" ein kleines Skript erstellt mit folgendem Inhalt:
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
FHEM_colorpickerInit();
}

sub Hyperion($$) {
  my ($var1, $var2) = @_;
  if (($var1) eq 'power')
  {
   if (($var2) eq 'on')
   {
    system('sudo /etc/init.d/hyperion start');
    fhem ("setreading Hyperion power on");
   }
   if (($var2) eq 'off')
   {
    system('sudo /etc/init.d/hyperion stop');
    fhem ("setreading Hyperion power off");
   }
   if (($var2) eq 'toggle')
   {
    if(ReadingsVal('Hyperion', 'power', '') eq 'off')
    {
     fhem ("sleep 1;set Hyperion power on");
    }
    if(ReadingsVal('Hyperion', 'power', '') eq 'on')
    {
     fhem ("sleep 1;set Hyperion power off");
    }
   }
  }
  elsif (($var1) eq 'rgb')
  {
   system("hyperion-remote -c $var2");
   fhem ("setreading Hyperion rgb $var2");
  }
  elsif (($var1) eq 'effects')
  {
   $var2 =~ s/_/ /g;
   system("hyperion-remote -e \"$var2\"");
  }
  elsif (($var1) eq 'command')
  {
   system("hyperion-remote --$var2");
  }
}


der Aufruf in fhem.cfg:

define ColorPicker notify global:INITIALIZED {FHEM_colorpickerInit()}

define Hyperion dummy
attr Hyperion devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}
attr Hyperion setList power:on,off rgb:colorpicker,RGB command:clearall effects:Knight_rider,Blue_mood_blobs,Cold_mood_blobs,Full_color_mood_blobs,Green_mood_blobs,Red_mood_blobs,Warm_mood_blobs,Rainbow_mood,Rainbow_swirl_fast,Rainbow_swirl,Snake,Strobe_blue,Strobe_Raspbmc,Strobe_white
attr Hyperion webCmd rgb:rgb FF0000:rgb 00FF00:rgb 0000FF:effects:power

define Hyperion.ntfy notify Hyperion {Hyperion($EVTPART0, $EVTPART1)}


zur Farbwahl nutze ich den Colorpicker  http://www.fhemwiki.de/wiki/Color

Damit FHEM die nötigen Rechte besitzt um auf den Dienst "Hyperion" zuzugreifen, muss die Datei sudoers angepasst werden:

sudoers öffnen:   sudo visudo

# Cmnd alias specification
Cmnd_Alias FHEM = /etc/init.d/hyperion

# User privilege specification
fhem    ALL=(root) NOPASSWD: FHEM


Hoffe das hilft euch etwas.

Gruß Schlimbo

das Ergebnis in FHEM sieht dann so aus:

digital.arts

Hallo,

hab diese LEDs ähnlich wie Schlimbo im Einsatz... aber nicht über Raspi, sondern über Arduino Uno (es würde auch Nano reichen) und Ansteuerung der Lichter über eine Enigma2-Box.
Hier gibt's das Programm zum flashen auf den Arduino
https://github.com/adafruit/Adalight/blob/master/Arduino/LEDstream/LEDstream.pde

Eventuell kann ja daraus einer der Profis was nützliches rausziehen...

VG
Karl
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

drdownload

Ein wenig Off-Topic: Ich würde gerne bei mir im Wohnzimmer an der Decke zwischen Couch und Fernseher RGB-LEDs montieren (für Abend-Stimmungsbeleuchtung, die ich seitlich auf die Aluschienen meiner bestehenden Beleuchtung (Paulmann 230v Rails) kleben würden.

Jetzt kam bei mir der Gedanke auf ob ich das ganze nicht gleich als Boblight Installation konzipieren sollte und um die Wohnzimmerwand mit Fernseher erweitern.

Kann man boblight etc. überhaupt so ein komplexes Scenario beibringen oder lohnt sich da der Aufwand nicht?
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

digital.arts

Hallo drdownload,

such mal im IHAD-Forum nach dem plugin "dreamWifiLight", damit können über boblight solche RGB-Bulbs von Milight (und baugleich)  angesteuert werden.
Ich habs selbst noch nicht getestet, funktioniert aber soweit lt. den Einträgen...
Voraussetzung ist natürlich eine Enigma2-Box für das plugin ... aber damit sind wir jetzt ganz raus aus dem FHEM-Thema, daher ... Ende

vg
Karl
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

greg4b

Zitat von: Schlimbo am 27 Januar 2015, 09:37:36

Hoffe das hilft euch etwas.


Danke für den Code!

... aber wenn Ambilight nicht am gleichen RasPi wie FHEM läuf (zwei unterschiedliche Maschinen)  - wie kann FHEM die Befehle des Ambilight-Remote auf dem anderen Rechner ausführen?

Bitte ein Schlagwort / Hinweis wie diese Variante funktionieren kann!

Vielen Dank,

Gregor
Bosch Indego Connect 1200, Neato BotVac 85 D, Raspberry Pi, JeeLink V3, Homematic, Sony KDL-40HX756,

justme1968

falls jemand lightpack/prismatik als ambilight einsetzt gibt es den anfang eines moduls hier: http://forum.fhem.de/index.php/topic,19509.msg131333.html#msg131333.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

greg4b

Zitat von: greg4b am 18 Januar 2016, 18:19:40

... aber wenn Ambilight nicht am gleichen RasPi wie FHEM läuf (zwei unterschiedliche Maschinen)  - wie kann FHEM die Befehle des Ambilight-Remote auf dem anderen Rechner ausführen?


ok - ich hab' nun einen passwortlosen login vom RasPi "FHEM" zum RasPi "openelec" hinbekommen:

im Linux-Terminal funktioniert am FHEM Raspi
ssh root@<IP_von_openelec_RasPi> '/storage/hyperion/bin/hyperion-remote.sh  --effect "Rainbow swirl fast" --duration 3000'

Leider gibt der Befehl
{system (ssh "root\@<IP_von_openelec_RasPi> '/storage/hyperion/bin/hyperion-remote.sh  --effect \"Rainbow swirl fast\" --duration 3000'")} in der FHEM Befehlszeile nur retour  "-1".

Das Ambilight bleibt schwarz...

Danke im Voraus für Hinweise,

Gregor
Bosch Indego Connect 1200, Neato BotVac 85 D, Raspberry Pi, JeeLink V3, Homematic, Sony KDL-40HX756,

Dave90

Hallo, bei mir ist die Konstellation die gleiche, ich habe einen Raspi für das Ambilight und auf einem Banana Pi die Fhem Installation am laufen. Ich hatte jetzt  eine zweite FHEM Installation auf dem Hyperion Raspi aufgesetzt und versucht mit FHEM2FHEM den Hyperion Dummy im RAW Modus zu spiegeln, leider klappt das bisher nicht ... Wäre also auch für Hinweise dankbar :)
Hardware:  FHEM-& LMS-Server + NAS: Banana Pi; Hyperion Ambilight Server + anderer Kleinkram: RPI Model B; Lampen: Philips Hue + Milight; Homematic Heizungssteuerung; Entertainment: Harmony Hub
sonstiges: Funksteckdosen

Schlimbo

Hallo Gregor,

unter welchem Benutzer hast du den Befehl im Terminal abgesetzt,  pi oder fhem?
Wenn du die Befehle unter dem User pi abgesetzt hast,  musst du erst noch die "known_hosts" Datei und deine keyfile aus dem Ordner "/home/pi/.ssh"  nach /opt/fhem/.ssh" kopieren (Rechte und Benutzer richtig setzen).
Beim SSH Aufruf durch FHEM füge ich auch immer den Parameter "-i"  (Pfad zur Keyfile) mit an:
{system ('ssh root@<IP_von_openelec_RasPi> -i /opt/fhem/.ssh/<Deine_keyfile> "/storage/hyperion/bin/hyperion-remote.sh --effect "Rainbow swirl fast" --duration 3000" &')}

@Dave90
Ich nutze FHEM2FHEM nicht,  deswegen kann ich hier leider nicht weiter helfen.
Um Befehle an einen zweiten Raspberry mit FHEM zu senden nutze ich das Modul "RFHEM".

Gruß Schlimbo

greg4b

Hallo Schlimbo,

Danke für Deine Hinweise! Deine Änderungen am FHEM-Raspi und am openelec-Raspi (http://raspberrypi.stackexchange.com/questions/28669/ssh-keys-not-working-on-openelec-login-without-typing-password) lassen nun in der FHEM-Konsole einen "statischer Aufruf" - zB. in Rot "red" zu:

{system ('ssh root@192.168.2.125 "/storage/hyperion/bin/hyperion-remote.sh -c red --duration 3000" &')}
Code ist in "99_myUtils.pm"

Leider wird die Variable aus dem colorpicker nicht in den ssh-Aufruf übernommen...
system('ssh root@192.168.2.125 "/storage/hyperion/bin/hyperion-remote.sh -c $var2" &'); - das entsprechende Reading wird jedoch aktualisiert - siehe Screenshot.

Müssen beim ssh-Aufruf mit Variablen Anführungszeichen neu gesetzt, oder Zeichen "escaped" werden?

Danke für Hinweise,

Gregor
Bosch Indego Connect 1200, Neato BotVac 85 D, Raspberry Pi, JeeLink V3, Homematic, Sony KDL-40HX756,

MalerWick

Hallo zusammen,

ich habe das gleiche vor wie n4mec1. Ich möchte meinen WS2801 Strip über WLAN ansteuern. Dazu habe ich auf der Wiki Seite einiges gefunden:
http://www.fhemwiki.de/wiki/WifiLight#RGB_LED_.28Streifen.29_am_LW12_Wifi_LED_Controller

Dort steht, dass der LW12 Wifi Controller die Alternativbezeichnung WF200 Controller hat. So wie ich das verstanden habe, kann am LW12 Wifi Controller (http://www.amazon.de/LAGUTE-Strips-Controller-Android-System/dp/B00G55329A) nur LED-Strips mit jeweils einem Kanal pro Farbe (RGB) angeschlossen werden. Daher ist das nicht für einen WS2801 Strip geeignet.

Hier gibt es aber den Controller WF200 welcher WS2801 Strips ansteuern kann:
https://www.kiwilighting.com/wf200-wifi-master-controller-control-led-lights-with-ios-android-devices

Ist der WF200 intern somit identisch und kann mit der APP bzw dem gleichen Protrokoll wie für den LW12 Wifi angesteuert werden?

Kann mir jemand den unterschied zwischen WF100, WF200 und WF300 erklären?
https://www.kiwilighting.com/wifi-rgb-led-controller-control-led-lights-with-smartphone-ios-android-device
https://www.kiwilighting.com/wf200-wifi-master-controller-control-led-lights-with-ios-android-devices
https://www.kiwilighting.com/wf300-wifi-spi-controller

Gruß MalerWick


Schlimbo

Zitat von: greg4b am 23 Januar 2016, 23:02:23
Leider wird die Variable aus dem colorpicker nicht in den ssh-Aufruf übernommen...

Durch Verwendung der einfachen Anführungszeichen kann Perl die Variable nicht mehr auflösen.
Ersetze die einfach Anführungszeichen mal durch doppelte.

greg4b

Zitat von: Schlimbo am 25 Januar 2016, 07:30:54
Ersetze die einfach Anführungszeichen mal durch doppelte.

Das war's - und escapen vom Klammeraffen

system ("ssh root\@192.168.2.125 \"/storage/hyperion/bin/hyperion-remote.sh -c\" $var2 &");

funktioniert :-) - zumindest mal dieser eine Aufruf...

Werd' dann bei Zeiten die anderen Zeilen deines Codes anpassen.

Vielen Dank,

Gregor
Bosch Indego Connect 1200, Neato BotVac 85 D, Raspberry Pi, JeeLink V3, Homematic, Sony KDL-40HX756,

Highlaender

Hallo greg4b,

hoffe kannst du  mir helfen. Bin Anfänger in Sachen fhem.

Ich würde gerne auch meine nachgebautes Ambilight über meinem Fhem Raspberry steuern.

Habe versucht den Code hier an meine Bedürfnisse anzupassen, aber keine Raktion auf die Befehle.

Vielleicht bist du so nett und stell deinen vollständigne Code zur Verfügung?

Schon mal meinen herzlichsten Dank!

Highlaender

DeeSPe

Hier gibt es jetzt ein tolles Modul für Hyperion:
https://forum.fhem.de/index.php?topic=55112

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Ronn

das kommt dann "Can't locate JSON.pm in @INC (you may need to install the JSON module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/98_Hyperion.pm line 18.
BEGIN failed--compilation aborted at ./FHEM/98_Hyperion.pm line 18. "

DeeSPe

#19
Dann wie im Text bereits beschrieben das JSON Modul installieren. Wirst Du auch für viele andere Module brauchen.

RPi:

sudo apt-get install libjson-perl

oder mit CPAN
sudo cpan install JSON

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe