ESP RGBWW Wifi Led Controller - fhem - Modul

Begonnen von pjakobs, 28 Juni 2016, 10:31:13

Vorheriges Thema - Nächstes Thema

SalvadoreXXL


Danke! Muss ich mal testen. Kann man so eine Funktion (ähnlich wie bei Hue) nicht in die Firmware oder hier im Modul einbauen? Wenn möglich mit frei wählbaren Farben, zwischen denen zyklisch gefadet wird?

Shuzz

Ich hab gerade heute nen Vorschlag im Github eingestellt.
Problem ist nur, dass der Entwickler der Firmware derzeit ziemlich viel Leben um die Ohren hat und nicht dazu kommt was an der FW zu tun.

Ein solches Feature wäre super, aber halte lieber nicht die Luft an beim Warten. ;)

pjakobs

Zitat von: Shuzz am 07 Dezember 2016, 14:24:17
Ich hab gerade heute nen Vorschlag im Github eingestellt.
Problem ist nur, dass der Entwickler der Firmware derzeit ziemlich viel Leben um die Ohren hat und nicht dazu kommt was an der FW zu tun.

Ein solches Feature wäre super, aber halte lieber nicht die Luft an beim Warten. ;)
Patrick hatte "stored animations" sowieso auf der Liste, von daher denke ich, das ist Wasser auf seine Mühlen. Nur mahlen die halt leider gerade anderswo ;-)

pj

SalvadoreXXL

#108
Ist ja nicht so dringend und eher ein Luxusproblem  :) Ich werde das mal über at testen. Soll ein sehr langsamer Loop (ca. 15 Minuten per Farbwechsel) als Nachtlicht für meinen Sohn werden. Da sollte die Synchronisation nicht so das Problem darstellen.

Shuzz

#109
Zitat von: SalvadoreXXL am 07 Dezember 2016, 15:05:56
Ist ja nicht so dringend und eher ein Luxusproblem  :) Ich werde das mal über at testen. Soll ein sehr langsamer Loop (ca. 15 Minuten per Farbwechsel) als Nachtlicht für meinen Sohn werden. Da sollte die Synchronisation nicht so das Problem darstellen.

Wenn ich's richtig im Kopf habe dann verwaltet der Controller intern eine Queue mit bis zu 50 Einträgen.
Bei einem 15min dauernden Farbwechsel solltest Du auch mit einer einfachen Abfolge von "set <Device> hsv <H,S,V> 900 q" über die Runden bzw. die Nacht kommen.
Für den Anwendungsfall braucht's at gar nicht, das sollte so klappen. :)

Grüße,

Christian


SalvadoreXXL

Zitat von: Shuzz am 09 Dezember 2016, 10:24:04
Wenn ich's richtig im Kopf habe dann verwaltet der Controller intern eine Queue mit bis zu 50 Einträgen.
Bei einem 15min dauernden Farbwechsel solltest Du auch mit einer einfachen Abfolge von "set <Device> hsv <H,S,V> 900 q" über die Runden bzw. die Nacht kommen.
Für den Anwendungsfall braucht's at gar nicht, das sollte so klappen. :)

Denke ich auch. Mal sehen, ob ich am WE dazu komme das mal zu testen. Eine Funktion in der FW wäre einfacher  8) Momentan "frisst" Alexa einen erhebllichen Teil meiner Freizeit.

Shuzz


SalvadoreXXL


Shuzz

Thema Alexa: Bei mir hat nun auch ein Echo Einzug gehalten.
Natürlich gleich mal alles aufgesetzt damit Alexa auch mit meinem FHEM reden kann.

Ich war ein wenig enttäuscht, das Einstellen der Lichtfarbe geht mit dem Standard-SmartHome Skill nicht.
Aber wenigstens kann man den Controller ein- und ausschalten.

Hat da jemand von euch bereits Erfahrungen gesammelt was den Custom-Skill angeht? Kriegt man damit die Farbe (und ggf. Sättigung sowie Helligkeit) geregelt?

RaspiLED

Hi, Alexa kenne ich noch nicht, aber bei Home/Eve. Muss ich mich auch mittels Szenen (wie z.B. "Blaues Wohnzimmer") behelfen. Da wird die Farbe hinterlegt und "Ich möchte ein blaues Wohnzimmer" funktioniert dann.
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

pjakobs

@Shuzz ich denke, @RaspiLED ist auf der richtigen Fährte, schau Dir mal LightScenes an anstatt direkt den LEDController steuern zu wollen.

pjakobs

Ich hab ein paar Feature Vorschläge, Funktionen, die ich momentan extern gelöst habe, die aber im Modul eleganter und sauberer zu machen wären.
Nur haben sie irgendwie auch im Modul nix zu suchen, weil sie ziemlich spezifisch sind.
Ich hätte gerne mal Input von Euch, was Ihr davon haltet.


  • Automatisches Einschalten / Dimmen / Ausschalten per twilight
    twilight liefert einen errechneten Helligkeitswert, abhängig von Wetter(vorhersage), Ort und Zeit. Dieser Wert liegt zwischen 0 (finster) und 100% (maximale Helligkeit an diesem Tag). Ich werwende dies schon seit geraumer Zeit, um meine Lichter automatisch einzuschalten und sie, bei einer bestimmten Helligkeit außen, ein konfiguriertes Maximum erreichen zu lassen.

    • Funktion:
      set <device> dimTwilight <twilight%>
      stellt die Helligkeit der LED abhängig vom gegebenen Prozentwert ein. Diese Funktion muss aus einem NOTIFY auf twilight aufgerufen werden
      bei mir tut das define NO_Twilight_Tick notify myTwiLight:twilight_weather:.* {if(Value("DU_homestatus") eq "home") {twilightDim($EVTPART1)}}
      (in diesem Fall noch eine Routine in meiner 99_myUtils).
      set <device> dimTwilightReset
      setzt den internen Twilight Status zurück. Muss einmal während der "off" Phase passieren, wenn das Licht manuell abgeschaltet wurde.
    • Attribute
      twilightDimOn [0|1] - Schalter, über den die Funktion für dieses Gerät an oder aus geschaltet werden kann
      twilightDimHighThreshold [0-100] - Helligkeitswert, ab dem die Beleuchtung eingeschaltet wird
      twilightDimLowThreshold [1-100] - Helligkeitswert, bei dem die Beleuchtung den vorgegebenen Wert erreichen soll
      twilightDimHSV [0-359,0-100,0-100] - vorgegebener Wert, der bei twilightDimLowThreshold erreicht werden soll
      twilightDimOffIsTwilight [0|1] - Schalter, der wählt, ob ein "set <device> off" das Gerät abschaltet, oder auf den twilight Wert zurücksetzt (nicht sicher, wie sinnvoll der ist)
  • Automatisches Dimup/Dimback
    Ich nutze gerne eine Funktion, in der einige LED als Nachtlicht / Orientierungslicht / Dekolicht bei Dunkelheit mit geringer Helligkeit leuchten (z.B. über das oben beschriebene twilightDim auf v=20% gesetzt) und dazu einen Bewegungssensor. Wenn eine Person den Raum betritt, sollte die Leuchte für eine gegebene Zeit auf einen definierten Farbwert gesetzt werden und danach wieder auf den vorherigen Wert abfallen. Diese Funktion ist der on-for-timer Funktion ähnlich, ich nenne sie erstmal genauso
    • Funktion:
      set <device> on-for-timer <time>
    • Attribute
      Theoretisch sind hierfür keine neuen Attribute nötig, denn in der "on" Funktion haben wir bereits vernünftige Defaults.

Beide Funktionen würden einige Daten in Internals speichern (letzte Helligkeit vor einem on-for-timer, twilight Status etc.) Das sollte aber transparent sein.

Bei mir haben die beiden Funktionen momentan fast vollständig die Lichtschalter ersetzt und funktionieren prima. Wie gesagt, ich denke, im Modul wären sie ein bisschen hübscher aufgehoben und vielleicht auch für andere nutzbar.

Grüße

pj

Shuzz

Zitat von: pjakobs am 25 Dezember 2016, 13:15:05
@Shuzz ich denke, @RaspiLED ist auf der richtigen Fährte, schau Dir mal LightScenes an anstatt direkt den LEDController steuern zu wollen.

Ja, LightScenes sind eine Möglichkeit.
Mitterweile bin ich aber auch einen Schritt weiter: Mit dem Custom Skill funktioniert das Setzen von Farben direkt, Helligkeit ebenso.

Bin soweit erstmal zufrieden... ;)

RaspiLED

Hi Shuzz,
Magst Du uns Dein Custom Skill in einem anderen Thread zeigen?
Bei Homebridge klappt mit das direkte setzen der Farbe mit der aktuellen Version und der Eve App oder Sprache jetzt auch direkt.
npm -g list homebridge
homebridge@0.4.16
npm -g list homebridge-fhem
homebridge-fhem@0.2.67
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

pjakobs

#119
Noch ein Gedanke zur Erweiterung des Moduls:

ich habe ein oder zwei Projekte, in denen ich die einzelnen Kanäle nicht als RGBWWCW Farbraum ansprechen will, sondern als einzelne Weißkanäle, quasi einzelne Devices. Das geschieht sinnvollerweise über den RAW Modus.
Die ursprüngliche Idee war, einen separaten Modus für diese Funktionsweise einzubauen, das ist mir momentan aber zu viel Aufwand.
Ein einfacherer Gedanke ist: die fünf "Devices" sind Dummies, die ihren Wert jeweils an einen definierten Kanal des LedController Moduls weitergeben. Damit das machbar ist, würde ich einen optionalen "mask" Wert oder eine Kanalnummer in den "set raw" Befehl einfügen.
Ich könnte mir also entweder
set <device> raw 512,512,512,512,512 5 vorstellen, was bedeuten würde setze die Kanäle, die über die binäre Maske (in diesem Fall 5=0b10001) gesetzt sind auf den Wert 512 - das ist ein bisschen aufwendig, da die Maske und die Position der Werte davor korrespondieren müssen, dafür könnte man mehrere Werte auf ein mal setzen.
oder, einfacher zu nutzen:
set <device> raw 512 4 was simplerweise wäre: setze den vierten Kanal auf 512.

Die erste Variante hätte den Charme, dass sie weitestgehend zur aktuellen Implementation von "set raw" kompatibel wäre, es käme halt nur die Maske dazu - die allerdings müsste sich ggf. von der Transition Zeit, die ja auch als freilaufender Skalar übergeben wird unterscheiden lassen. Ich wäre allerdings hier durchaus der Meinung, dass ich bei RAW eine inkompatible Lösung akzeptabel fänd, so viele dürften das nicht verwenden.

Damit das alles funktionieren kann, muss ich natürlich auch die aktuellen RAW Werte im Device vorhalten. (Es ist vielleicht sogar möglich, dem API nur partielle Werte zu übergeben, also z.B. explizit nur den Wert für den blauen Kanal zu setzen und alle anderen unverändert zu lassen, das muss ich mir ansehen)

Die Kernfrage ist aber: sollen die RAW Werte im Device als Readings sichtbar sein? Wir haben es schon ein paar mal diskutiert, es gibt zwischen RAW und HSV nicht immer ein sinnvolles bidirektionales Mapping (HSV kann immer auf RAW gemappt werden, nicht aber umgekehrt).
Wenn ich also RAW Werte setze, was soll dann mit den HSV Readings passieren? Ideen irgendwer?

Grüße

pj