Wifilight.pm

Begonnen von herrmannj, 18 Januar 2014, 04:10:07

Vorheriges Thema - Nächstes Thema

herrmannj

Hallo,

im Anhang die aktuelle Version des Wifilight Moduls zur Anbindung der unter vielen verschiedenen Brands verfügbaren China Farb- LED Lampen oder Stripes mit Wifi Anbindung.

Dieser Wiki Artikel liefert Details zur Hardware und zum Modul.

Farbangaben werden als HSV und als RGB akzeptiert wobei der HSV Farbraum besser geeignet ist um Farbübergänge zu beschreiben. Siehe auch hier: http://www.colorizer.org/

Befehle in Kurzform: (Auszug)

set meineLed HSV|RGB H,S,V|RGB            - setzt die Farbe direkt.
set meineLed HSV|RGB H,S,V|RGB Zeit     - non blocking color fade
set meineLed HSV|RGB H,S,V|RGB Zeit q  - Color Fades werden in eine Queue geschrieben und nacheinander abgearbeitet.

Beispiel, am Stück abgesetzt, zB in einem notify:

set meineLed HSV 60,0,100; set meineLed HSV 60,70,100 60 q; set meineLed HSV 0,50,80 360 q; set meineLed HSV 200,50,50 600 q; set meineLed HSV 240,100,20 600 q; set meineLed HSV 240,100,0 900 q

Mit dem ersten set wird die Lichtfarbe (sofort) auf Weiß eingestellt und anschließend über Gelb, Rot, Rot gesättigt, Hellblau und ein immer dunkleres Blau weg gedimmt. Mit anderen Worten: Sonnenuntergang.

Außerdem neben/zu dem "q" flag die flags "s" und "l".

"S" steht für short und ist default. Ein Colorfade von Grün nach Rot führt "S"hort über Gelb. "L"ong geht den langen Weg, also in diesem Beispiel Grün->Türkis->Blau->Violett->Rot.

Farbkalibrierung über Attribute:
colorCast: steuert die voll gesättigten Farben. Die Einstellung besteht aus 6 Werten im Bereich -29..+29 (Grad auf dem Farbkreis). Die sechs Werte stehen in dieser Reihenfolge für Rot,  Gelb,  Grün, Cyan, Blau,  Magenta

Empfehlung: mit einem Leuchtmittel bei Gelb beginnen, (60,100,100, zweiter Wert in Attribut). Wenn das Gelb zu Grün ist wird es mit negativen Werten in Richtung reines Gelb (Rot) verschoben.  Diesen Vorgang dann für (HSV) 155 / 180 (grün vs cyan) und 290 / 310 (Magenta - Blau vs Rot) wiederholen. Bei Bedarf gegen colorizer.org checken.  Evtl mehrfach wiederholen weil sich Nachbarpunkte gegenseitig beeinflussen.

whitePoint: steuert die Weiße Farbe, selbstredend nur bei den Leuchtmitteln die Weiß aus RGB mischen. (Viele stripes mischen ein sehr kaltes Weiß mit sehr hohem Blauanteil) Erst colorCast einstellen! Die drei Werte im Attribut (Bereich 0.0 .. 1.0) stehen für RGB. Wenn also der Blauanteil zu hoch ist (Normalfall) den dritten Wert reduzieren. Einer der drei sollte bei "1" (=100%) stehen bleiben  ;)

Wer das (warum auch immer) jetzt garnicht mag sollte die Attribute nicht  einfach löschen sondern bei colorCast 0,0,0,0,0,0 und bei WhitePoint 1,1,1 eintragen.

FHEM Colorpicker aktivieren:
attrib webCmd RGB
attrib widgetOverride RGB:colorpicker,RGB


vg
Jörg

Tobias

Sorry, bitte stimme dich mit dem WIFILED.pm Machern ab.
Nichts wäre schlimmer als eine Parallelentwicklung und doppelte MOdule für die endanwender

Grüsse
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Hans Franz

Gratulation,
Ich lese schon eine Zeitlang mit und bin jetzt wohl soweit: Ich brauch' so ein Teil.
Wie geht den das define und attr, oder finde ich es nur nicht.

Grüß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

mbenker

Beispiel LW12 :

define <NAME> WifiLight RGB LW12:<IP vom Controller>

Beispiel Bulbs mit V3 Controller :

define <NAME> WifiLight RGBW2 bridge-V3:<IP von der Bridge>
Damit kann man die 4 möglichen Gruppen der V3 Bridges definieren. Die Einzelnen Bulbs werden dann per PAIR Befehl der Gruppe zugeordnet.


Ich habe mir von Amazon das 99 Euro Set (3 Bulbs 9W, Fernsteuerung und WIFI Bridge) besorgt und bin begeistert.
Ebenso den LW12 Controller für die Stripes, da ich die Gruppen der Bridge  nicht mit Stripes belegen will und somit beliebig viele Stripes im Haus verteilen kann.....

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.

Gerhard

Hi,

Zitat:
Zitat* der LW12 RGB LED Stripecontroller (Beispiel: http://www.amazon.de/NEUER-STRIPS-CONTROLLER-iPhone-Android/dp/B00G55329A/ref=sr_1_1?ie=UTF8&qid=1390006342&sr=8-1&keywords=lw12+led)
Braucht keine Bridge, Dieser Controller wird direkt ins Netz gehangen und steuert einen RGB LED Stripe an. Der Controller unterstützt volles HSV.

wie wird es ins Netz gehangen?, da der LW12 ein access point ist??

übrigens tolles Modu!!, würde gerne einsetzen, wenn ich mein LW12 ins FHEM-Netz bringen könnte.

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

herrmannj

kurz vor Druckschluss hatte sich für den LW12 doch noch ein kleiner aber feiner Bug eingeschlichen, ist gefixt und das Modul im ersten Beitrag ist aktualisiert.

@Tobias
WifiLED und WifiLight sind unterschiedliche Module.

@Gerhard
den LW12 kannst Du als client in Dein Netz nehmen. Dazu musst Du einmalig die Android oder Iphone app installieren und dort die Settings vornehmen.

Dann gab es Fragen zur Unterstützung der Gruppen bei den Milight:
Gruppen werden unterstützt, das Modul kümmert sich um die Verwaltung. Dabei kennt das Modul die Anzahl der Gruppen pro Modell die auf der jeweiligen bridge unterstützt werden.

Beispiel RGBW2 auf der V3 Bridge kann 4 Gruppen:
Das erste Device das defininiert wird bildet die erste Gruppe. Wenn ein weiteres fhem Device (Gleiche Bridge / IP, gleicher LED Type) defininiert wird überprüft das Modul ob eine Gruppe (slot) dafür frei ist. Wenn ja wird eine neue Gruppe eingerichtet und die internen Sende Queues werden so synchronisiert das beide Gruppen sich auch bei komplexen Befehlen nicht ins "Gehege kommen".  Auf jede Gruppe lassen sich dann beliebig viele LEDs pairen.

Was man beachten sollte ist die "doofe" Firmware der Bridges. Das "pairing Kommando" ist nicht exklusiv im Befehlssatz sondern ist in Wirklichkeit eine Gruppenkennung die auch im Normalbetrieb gesendet wird.   Wird also Gruppe 1 über konventionelle Lichtschalter geschaltet und Gruppe 2 per Wifi / fhem ist es nur eine Frage der Zeit bis sich die LEDs aus Gruppe 1 selbst auf Gruppe 2 "pairen".  Das ist (leider) Bridge-Design, no way around.

vg
Jörg

schka17

Danke für die Beta, auf sowas habe ich schon gewartet. Ich habe mir die Milight Bridge (ich vermute schon V4) und den RGBW Stripe controller bestellt und konnte das bisher nur mit einem command line tool steuern.

Habe nun die Stripes so definiert
define <NAME> define WifiLight WifiLight RGBW2 bridge-V3:<IP von der Bridge>

funktioniert soweit gut.
direkte Farbwahl OK
Dimmen OK
EIN/Ausschlaten OK


Gruss

Karl

M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

mbenker

@Gerhard :

als erstes musst du dich per WebOberfläche auf den LW12 begeben. Also direkt seine IP im Browser eingeben.
NICHT per APP, da man mit der APP zwar steuern kann, aber nicht konfigurieren.

Dort kannst du dann den Mode von AP_MODE auf STA_MODE umstellen und in den STA Settings dann die infos von deinem WLAN eingeben, in das der sich einloggen soll. Danach solltest du den LW12 in deinem Netzwerk sehen und auch per FHEM steuern können.

Bei Fragen gerne an mich wenden, habe auch länger mit dem LW12 rumgespielt bis er anständig funktionierte und das machte was er soll :)  (Und zwar sowohl per APP als auch per FHEM :D)

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.

Tobias

Hi Jörg,
Zitat von: herrmannj am 18 Januar 2014, 12:27:28
@Tobias
WifiLED und WifiLight sind unterschiedliche Module.

Kannst du den UNterschied erklären? Ich habe bei der ersten Durchsich keinen gesehen. Beide steuern zb. den LW12
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

coyote8219

#9
Also das Skript ist mit der V4 milight Bridge kompatibel und läuft super...

jenscz

Zitat von: mbenker am 18 Januar 2014, 13:22:15
@Gerhard :

als erstes musst du dich per WebOberfläche auf den LW12 begeben. Also direkt seine IP im Browser eingeben.
NICHT per APP, da man mit der APP zwar steuern kann, aber nicht konfigurieren.

Dort kannst du dann den Mode von AP_MODE auf STA_MODE umstellen und in den STA Settings dann die infos von deinem WLAN eingeben, in das der sich einloggen soll. Danach solltest du den LW12 in deinem Netzwerk sehen und auch per FHEM steuern können.

Bei Fragen gerne an mich wenden, habe auch länger mit dem LW12 rumgespielt bis er anständig funktionierte und das machte was er soll :)  (Und zwar sowohl per APP als auch per FHEM :D)

Das ist schlichtweg falsch. Mit der iPhone App geht das definitiv. Einfach einen langen "klick" auf den Controller in der Liste, dann erscheint das Konfigurationsmenu.
Das steht auch so in der Hilfe der App bzw. wird beim ersten Start angezeigt. Genau kann ich mich da auch nicht mehr erinnern.

Aber es geht definitiv. Schliesslich hat man normalerweise eigentlich gar nicht das Passwort für das Webif.

Falls doch jemand das Webif nehmen will:

User: admin
Passwort: nimda
CCU3 mit 6xHMW-IO-12-Sw7-DR,1x HMW-LC-Bl1-DR, Bewegungsmeldern .....
Gardena Smart IrrigationControl (ic24)

mbenker

Ahh ok gut zu wissen...
Dann nehme ich alles zurück und behaupte das Gegenteil :D


Ich hatte kein Menue dazu entdeckt, darum ging ich davon aus, das es nur über die Oberfläche geht :)
(isch habe auch kein Iphone...gehe aber mal davon aus das es beim Andriod dann ähnlich geht)...

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.

coyote8219

@herrmannj

wie via Mail besprochen noch einmal die Anfrage hier...

Ich wollte nochmal nachfragen was ich im Script umschreiben muss, damit ich bestimmte Dimmlevel und Farben via button aufrufen kann....oder einfach den http Aufruf den Befehl remote abzusetzen

Und wäre es möglich eigene Modes zu machen...sprich eigene Fabverläufe die dann in einer Endlosschleife auf Knopfdruck laufen?


herrmannj

#13
Hallo coyote8219,

mal schauen ob ich das richtig verstehe. Sprichst Du bei den Buttons über die Direktwahl-Taster die in fhem Web bzw dem Floorplan nach einem Click auf das Lampenicon sichtbar sind ? Wenn ja: für kommende Versionen ist geplant das sich dort 6 selbst definierte Farben hinterlegen lassen. Ebenfalls geplant sind automatische Farbwechsel Programme sowie eine Farbkalibrierung der Lampen.

Deine Wünsche kannst Du heute schon alle umsetzen, der Schlüssel ist der set HSV Befehl. Um HSV zu verstehen empfehle ich die Links aus dem ersten Post durchzusehen, im Kern besteht eine HSV Farbangabe aber aus 3 Werten, HUE, SÄTTIGUNG und VALUE.

Hue ist ein Farbkreis mit Werten von 0(°)..360(°). Der Definition nach liegt bei 0° = Rot, 120° = Grün und 240° = Blau. Wenn ich mich recht erinnere hast Du einen Milight RGB Controller der  ersten Generation, der kann keine Sättigung sie lässt sich  auf dem Controller auch nicht emulieren. Daher nimmt das Modul auf diesem Controller immer 100% an. V, der letzte Wert, ist die Helligkeit.

Nehmen wir also an Du möchtest ein Violett, das liegt zwischen Blau (240) und Rot (0 bzw 360). Also vielleicht 300. Die Sättigung ist bei Dir 100 und sagen wir halbe Helligkeit. Dann sieht der Befehl so aus:

set Lampe HSV 300,100,50

Set HSV kennt zusätzlich Zeiten. Wenn Du Dein Heimkino anschaltest möchtest Du vermutlich keinen harten Schnitt bei der Beleuchtung. Folgender Befehl fadet von der momentan gesetzten Farbe / Helligkeit innerhalb von 5 Sekunden auf "Dein" Violett:

set Lampe HSV 300,100,50 5

Wenn Du jetzt richtig Show machen möchtest, also nicht nur ein um-faden sondern was richtig wildes dann kommt ein weiterer Parameter ins Spiel: "q" für Queue. Wenn Du das "q" als Flag anhängst werden die Farbwechsel in eine interne Queue geschrieben und nacheinander abgearbeitet. Du kannst am Stück so etwas absetzen:

set Lampe HSV 0,100,100 1
set Lampe HSV 0,100,0 1 q
set Lampe HSV 0,100,100 1 q
set Lampe HSV 0,100,0 1 q
set Lampe HSV 0,100,100 1 q
set Lampe HSV 300,100,50 10 q 

Rot an, Rot aus, Rot an, Rot aus, Rot an und fade auf Violett.

Das Ganze kannst Du jetzt nach folgendem Muster nett in einem notify verpacken und damit dauerhaft speichern:

define test notify test:on {fhem "set Lampe HSV 0,100,100 1"; fhem "set Lampe HSV 0,100,0 1 q"; ..usw... }

Wenn Du anschließend "trigger test on" eingibst arbeitet fhem "Dein" individuelles Programm ab.

Zum Thema fhem Befehle über einen http request ausführen: Parke bitte mal Deine Maus in fhem-web über einem "on" Befehl,dann siehst Du in der Statusleiste des Browser wie fhem das erwartet. (So zB http://192.168.178.33:8083/fhem?cmd.RGB=set%20RGB%20on&room=Unsorted).

viele Grüße
Jörg

coyote8219

Hi...

Schonmal danke...und dieses notify script läuft dann in einer dauerschleife, bis ich es ändere? Möchte ein langsam pulsierendes Weiß erzeugen....