ESP RGBWW Wifi Led Controller - fhem - Modul

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

Vorheriges Thema - Nächstes Thema

Shuzz

Ohne direkte Unterstützung im Controller wird das glaube ich nicht sauber möglich sein.

Man könnte theoretisch den momentanen Betriebszustand (RGB/RGBW/RGBWWCW) des Controllers auslesen und dementsprechend die "ungenutzten" Kanäle per RAW ansprechen.

Je nach Betriebsmodus könnte man auch die Umrechnung RAW->HSV machen.

Als "korrekte" Umrechnung würde ich bezeichnen, wenn bei Umwandlung RAW->HSV->RAW der Input identisch zum Output ist.

- RAW nach HSV zurückrechnen geht nur für RGB problemlos. Modus "RGB" geht also.
- Ein Weißkanal wird kniffliger. Man kann einfach den Weißanteil auf RGB aufaddieren bis eine der drei Farben bei 0xFF steht ODER der Weißanteil noch "rein passt". Ist der Weißanteil "zu hoch" bekommt man einen Fehler rein. Als Näherung aber denke ich brauchbar, speziell wenn der Controller ansonsten nur per HSV angesteuert wird (dann sollte nämlich alles "passen").
Beispiele:
RAW 180/90/0/50 kann in HSV umgerechnet werden - RGBW 180/90/0/50 --> RGB 230/140/50 --> HSV 30/78.3/90.2
RAW 180/90/0/120 kann NICHT sauber umgerechnet werden: RGBW 180/90/0/120 --> RGB 255/165/75 Rest 45 --> HSV 30/70.6/100
- Zwei Weißkanäle laufen analog dem einen, es werden nur die beiden Weißwerte aufaddiert. Zu den Fehlern von oben kommt nun noch dazu, dass ggf. die Farbtemperatur nicht mehr stimmt. Der Fall ist aber eher akademisch, denn in diesem Modus ist ja gar kein Kanal mehr "frei" den man noch für andere Dinge verwenden könnte.


Was mir noch als Problem einfällt: Wie "rettet" man die RAW-Kanäle bei HSV Ansteuerung? Muss man das überhaupt? Oder lässt der Controller die entsprechenden Kanäle einfach in Ruhe?
(Beispiel: RGBW-Strip oben auf dem Schrank, der "freie" Kanal soll für Beleuchtung von Glasregalen im Schrank verwendet werden. Bei Änderung der Farbe des RGBW-Strips per "set hsv" soll die Beleuchtung der Regale nicht einfach ausgehen...)


Grüße,

Shuzz

pjakobs

Hi Shuzz,

an einen Mischbetrieb hatte ich da auch garnicht gedacht, der müsste ja tatsächlich in der Firmware hinterlegt sein. (hmm...  nachher mal Patrick fragen).

Ich dachte wirklich an den einfachen Fall: fünf unabhängige LED Bänder, die aber eben auch völlig unabhängig voneinaner angesprochen werden können, d.h. wenn ich den dritten Kanal auf irgendeinen Wert setze, dann ändert das nichts an den anderen. Das lässt sich, wenn man strikt im RAW Mode bleibt, im Modul abfangen.

Ich überleg mal noch ein bisschen und wenn ich Zeit hab, bau ich vielleicht mal was.

pj

Shuzz

Ach so, ja.
Einzelne Bänder sollten sich so ansprechen lassen.
Da würde ich ggf. beide Varianten unterstützen, ja nach Anwendungsfall mag man nur einen oder mehrere Werte setzen.

Noch ne Idee dazu: set <DEV> raw 255,128,,0,0
Werte, die nicht verändert werden sollen lässt man einfach weg und fertig. Sind dann halt ggf. ein paar Kommata mehr, aber dafür spart man sich das maskieren.

Was den Mischbetrieb angeht: Solange der Controller beim setzen eines HSV Wertes die unbenutzten RAW-Kanäle in Ruhe lässt könnte man das schon machen. Da wäre ggf. auch nicht viel Arbeit in der FW für notwendig...


Grüße!

pjakobs

Zitat von: Shuzz am 10 Januar 2017, 22:23:22
Ach so, ja.
Einzelne Bänder sollten sich so ansprechen lassen.
Da würde ich ggf. beide Varianten unterstützen, ja nach Anwendungsfall mag man nur einen oder mehrere Werte setzen.

Noch ne Idee dazu: set <DEV> raw 255,128,,0,0
Werte, die nicht verändert werden sollen lässt man einfach weg und fertig. Sind dann halt ggf. ein paar Kommata mehr, aber dafür spart man sich das maskieren.

Was den Mischbetrieb angeht: Solange der Controller beim setzen eines HSV Wertes die unbenutzten RAW-Kanäle in Ruhe lässt könnte man das schon machen. Da wäre ggf. auch nicht viel Arbeit in der FW für notwendig...


Grüße!

ich glaub, Patrick wäre nicht undankbar, wenn jemand sich in die FW einarbeitet und da ein paar Dinge vorantreibt ;-)

pj

Shuzz

Zitat von: pjakobs am 10 Januar 2017, 22:42:32
ich glaub, Patrick wäre nicht undankbar, wenn jemand sich in die FW einarbeitet und da ein paar Dinge vorantreibt ;-)

pj

Aber... Aber... Aber... Die ist so kompliziert!  :-\
;)

pjakobs

Zitat von: Shuzz am 11 Januar 2017, 10:18:34
Aber... Aber... Aber... Die ist so kompliziert!  :-\
;)

ich glaube, sowas hab ich von Softwareentwicklern schonmal gehört ;-)

Shuzz

Zitat von: pjakobs am 11 Januar 2017, 11:10:11
ich glaube, sowas hab ich von Softwareentwicklern schonmal gehört ;-)

*seufz*
Ich bastel mir mal ein kleines Testbett zusammen und spiel' mal ein wenig herum...
Werde nur in nächster Zeit nicht all zu viel Freiraum dafür haben, mal sehen was bei rumkommt...

pjakobs

Zitat von: Shuzz am 11 Januar 2017, 19:29:14
*seufz*
Ich bastel mir mal ein kleines Testbett zusammen und spiel' mal ein wenig herum...
Werde nur in nächster Zeit nicht all zu viel Freiraum dafür haben, mal sehen was bei rumkommt...

nu mach mir kein schlechtes Gewissen, sonst hab ich am Ende noch das Gefühl, ich dräng Dich zu irgendwas ;-)

Softwareentwicklung ist Vergüngen - non?

pj

Shuzz

Zitat von: pjakobs am 11 Januar 2017, 21:04:30
Softwareentwicklung ist Vergüngen - non?

Mais oui. Nur die liebe Zeit ist derzeit knapp. Aber zumindest mein Testplatinchen läuft seit gestern, nun kann ich lokal damit spielen was die Sache schonmal sehr vereinfacht... ;)

AlexSchei

Moin.
Ich hatte da mal eine Idee wo ich hier ein wenig gelesen habe.

Wenn auf dem Controller 5 Leistungskanäle enthalten sind, könnte man in dem Fhem-Modul einen Umschalter auf "Single Weiß Ansteuerung" implementieren? Somit bis zu 5 einzeln ansteuerbare Kanäle für nur-Weiß-Stripes vorhanden wären?
Das könnte ich bei mir an verschiedensten Stellen verwenden: Fußleistenbeleuchtung im Flur (nur 1 Controller statt 5), Terrassenbeleuchtung, Weihnachtsbeleuchtung, etc.

Sollte das zu abwegig sein, dann einfach sagen...

Gruß
AlexSchei
Intel Nuc mit Proxmox — KNX

pjakobs

Zitat von: AlexSchei am 19 Januar 2017, 19:02:08
Moin.
Ich hatte da mal eine Idee wo ich hier ein wenig gelesen habe.

Wenn auf dem Controller 5 Leistungskanäle enthalten sind, könnte man in dem Fhem-Modul einen Umschalter auf "Single Weiß Ansteuerung" implementieren? Somit bis zu 5 einzeln ansteuerbare Kanäle für nur-Weiß-Stripes vorhanden wären?
Das könnte ich bei mir an verschiedensten Stellen verwenden: Fußleistenbeleuchtung im Flur (nur 1 Controller statt 5), Terrassenbeleuchtung, Weihnachtsbeleuchtung, etc.

Sollte das zu abwegig sein, dann einfach sagen...

Gruß
AlexSchei

Hi Alex,

ja, das ist eine Funktion, die ich von Anfang an im Kopf hatte. Ich habe nur noch keine gute Idee, wie ich das implementiere - eigentlich würde ich dafür gerne fünf einzelne fhem-Geräte haben, dazu kommt, dass wir vielleicht auch die Möglichkeit schaffen wollen, nur einen oder zwei Kanäle getrennt zu aktivieren, z.B. wenn Du RGBW benutzt und dazu den fünften Kanal gesondert verwendest.

Kommt bestimmt noch, die Frage ist nur - wann ;-)

pj

AlexSchei

Hey Super!
Dann werde ich mal abwarten. Parallel schaue ich mir mal das vorhandene Modul mal an. Kenne zwar perl, aber fhem interna noch nicht. Vielleicht hab ich ja ne idee, ohne die Firmware des Controllers ändern zu müssen.

Ich hätte 2 Ansätze als idee.

1: Ein Fork des Moduls nur halt mit anderen Bedienelementen und Einstellungen.

2: Umschalter im aktuellen Modul auf andere Arbeitsweise.

Den Umschalter als Attribute.
attr <gerät> RGBW <kanal rot>,<kanal grün>,<kanal blau>,<kanal weiß>

Z.B. attr licht RGBW 2,4,3,0

Rot kanal 2
Grün kanal 4
Blau kanal 3
Weiß nicht verwendet.

attr <gerät> extraKanal1 <auswahl vorhandener kanäle>

Z.B. attr licht extraKanal1 1
Daraus erzeugt sich ein extra Gerät: z.B. licht.1
Insgesamt 5 extrakanäle

Das könnte sehr flexibel sein, allerdings auch sehr komplex.

Gruß Alex



Intel Nuc mit Proxmox — KNX

pjakobs

Zitat von: AlexSchei am 19 Januar 2017, 23:25:16
Hey Super!
Dann werde ich mal abwarten. Parallel schaue ich mir mal das vorhandene Modul mal an. Kenne zwar perl, aber fhem interna noch nicht. Vielleicht hab ich ja ne idee, ohne die Firmware des Controllers ändern zu müssen.

Ich hätte 2 Ansätze als idee.

1: Ein Fork des Moduls nur halt mit anderen Bedienelementen und Einstellungen.

2: Umschalter im aktuellen Modul auf andere Arbeitsweise.

Den Umschalter als Attribute.
attr <gerät> RGBW <kanal rot>,<kanal grün>,<kanal blau>,<kanal weiß>

Z.B. attr licht RGBW 2,4,3,0

Rot kanal 2
Grün kanal 4
Blau kanal 3
Weiß nicht verwendet.

attr <gerät> extraKanal1 <auswahl vorhandener kanäle>

Z.B. attr licht extraKanal1 1
Daraus erzeugt sich ein extra Gerät: z.B. licht.1
Insgesamt 5 extrakanäle

Das könnte sehr flexibel sein, allerdings auch sehr komplex.

Gruß Alex
Ganz so einfach wird es nicht, da der Controller das Farbmanagement selbständig macht und dazu alle fünf Kanäle verwendet.

pj

Gesendet von meinem HTC 10 mit Tapatalk


dev0

Zitat von: pjakobs am 07 November 2016, 10:52:19
Ich hab mal meine aktuelle Version auf github gepusht, branch dev-pj

development branch:
Zitat
This branch is 10 commits ahead, 4 commits behind master.
Ich frage mich gerade welchen branch ich zur Mit- bzw. Weiterentwicklung auschecken sollte. master oder develop?

pjakobs

Zitat von: dev0 am 24 Januar 2017, 08:51:53
development branch:Ich frage mich gerade welchen branch ich zur Mit- bzw. Weiterentwicklung auschecken sollte. master oder develop?

ich *glaube*, dass die Commits, die Master voraus ist nur darin bestehen, dass ich das fhem update File dort extern upgedatet habe - es gibt also einen Commit, der direkt gegen master ging und ein paar Dateien außerhalb von 32_LedController.pm geändert hat.

In dem Fall war das nötig, damit der Update-Mechanismus für master funktioniert. Nachdem ich denke, dass develop jetzt seit ner ganzen Weile problemlos läuft, werd ich den einfach nach Master mergen, dann sollte das Problem behoben sein. Zumindest so lange, bis ich wieder irgendwas am Master drehe. Git treibt mich zuweilen in den Wahnsinn.

pj