WIFI LED Controller

Begonnen von jenscz, 05 November 2013, 00:12:03

Vorheriges Thema - Nächstes Thema

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

im Color modul gibt es routinen dafür.

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

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

Kuzl

#182
Hallo zusammen,

hier wie versprochen das geänderte Modul, hab recht viel umgeschmissen und will auch noch mehr ändern, allerdings ist jetzt funktional mal alles so fertig wie ich es wollte. Ich bitte um Tests :) Das Updateintervall ist jetzt mal auf 60 sek gestellt. zusätzlich 1 Sek nach dem letzten Befehl. Der Grund dafür ist, dass man ansonsten nicht mehrere Befehle schnell hintereinander senden kann (z.b. aufdimmen). Soll ich diese beiden Zeiten noch per Attribut einstellbar machen?

@Andre: Danke, die Routine funktioniert wunderbar. Ich will jetzt auch noch deine "BrightnessToChannels" verwenden. Kannst du mir da die Verwendung erklären? Blicke da leider nicht so ganz durch:/

Viele Gruße
Kuzl 

EDIT: jetzt mit Log3 und verbose anstatt loglevel

betateilchen

Läuft soweit gut, ein paar Sachen sind mir schon aufgefallen:


  • Das Attribut loglevel ist schon länger deprecated, stattdessen gibt es verbose und das nur mit Werten von 0 bis 5.
  • Anstatt Log() sollte Log3() verwendet werden.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kuzl

Alles klar, danke dir.
Mit den Ausgaben hab ich mich noch nicht beschäftigt, sind noch komplett vom original.
Das ist ja mein erstes Modul, an dem ich bastle. Wie ist das mit den  globalen variablen?
ich würde gerne den "offset" global für alle funktionen bekannt machen. geht das so einfach oder muss ich da was beachten?

Gruß
Kuzl

Pythonf

Ich hab für  meine LEDs einen Wandschalter mit 6 Tasten. 2 für die Helligkeit,  2 für  die Sättigung  und 2 für den Farbton, alles läuft also im HSV Farbraum ab. Dafür  hab ich bis jetzt das wifilight modul verwendet. Jetzt wo das wifiled modul den Rückkanal des LW12 unterstützt  - schaut sehr gut aus:)! - würde mich noch interessieren ob die Integration vom HSV Farbraum eine weitere Option zur Ergänzung des Moduls wäre.

Beste Grüße und vielen Dank für  das Modul

Fabian

betateilchen

Zitat von: Kuzl am 23 November 2014, 22:59:39
Das ist ja mein erstes Modul, an dem ich bastle. Wie ist das mit den  globalen variablen?

Kein Problem, da helfe ich Dir gerne weiter :)

Zitat von: Kuzl am 23 November 2014, 22:59:39
ich würde gerne den "offset" global für alle funktionen bekannt machen. geht das so einfach oder muss ich da was beachten?

Das kannst Du relativ einfach bewerkstelligen, indem Du ein "my $offset = 728;" (oder was auch immer) in das Modul VOR die _Initialize Funktion packst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kuzl

Hallo zusammen,

@betateilchen: Dankeschön, funktioniert wunderbar :)

@Fabian: ich wollte es einbauen mit der Umwandlung aus dem colorpicker. Hab da aber glaub ich einen Fehler entdeckt und werde Andre darauf anschreiben. Brauchst du auch ein Reading dazu?

Viele Grüße
Kuzl

Kuzl

So war nur ein Verständnisfehler von mir :)

Hier die Version mit unterstützung für hsv in den Intervallen von H: 0-360, S und V: 0-100
Viel Spaß damit :)
Die Frage mit dem Reading steht noch :D

Gruß Kuzl

betateilchen

Zitat von: Kuzl am 23 November 2014, 22:07:24
Das Updateintervall ist jetzt mal auf 60 sek gestellt. zusätzlich 1 Sek nach dem letzten Befehl.
...
Soll ich diese beiden Zeiten noch per Attribut einstellbar machen?

Die Aktualisierung 1 Sekunde nach dem Befehl ist ok. Ich würde aber ein Attribut für das generelle Updateintervall begrüßen, da mir grundsätzlich längere Intervalle völlig ausreichend wären. Ein Intervall von 0 sollte die automatische Abfrage auch komplett abschaltbar machen.

Hab jetzt noch nicht nachgesehen, gibt es ein "get <device> status" damit man die Information "bei Bedarf" abrufen kann?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kuzl

Zitat von: betateilchen am 24 November 2014, 15:28:44
Die Aktualisierung 1 Sekunde nach dem Befehl ist ok. Ich würde aber ein Attribut für das generelle Updateintervall begrüßen, da mir grundsätzlich längere Intervalle völlig ausreichend wären. Ein Intervall von 0 sollte die automatische Abfrage auch komplett abschaltbar machen.

Alles klar werde ich versuchen einzubauen.
Zitat von: betateilchen am 24 November 2014, 15:28:44
Hab jetzt noch nicht nachgesehen, gibt es ein "get <device> status" damit man die Information "bei Bedarf" abrufen kann?
Es ist eine get-routine vorhanden die wohl intern irgendwas mit dem colorpicker macht, da blicke ich nicht ganz durch. Und die ist auch nicht sichtbar. Wie muss ich da vorgehen um ein "sichtbares" get-kommando einzubauen?

Gruß
Kuzl

justme1968

vielleicht kannst du die syntax der hue devices für das aktualisieren nach einem set verwenden.

der colorpicker brauchte bis vor ein paar tagen ein get um das textfeld beim seitenaufbau mit dem aktuellen wert zu versehen. inzwischen reicht wie sonst in fhem üblich auch das reading mit gleichem namen.

die get bekommst du 'sichtbar' in dem du auf get ? mit der liste der möglichen kommandos antwortest. genau so wie bei set und attr.

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

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

Pythonf

Ein Reading wäre echt super praktisch, weil ich das Reading auslese und darauf addiere - somit kann ich quasi eine Taste lange drücken und er geht alle farben druch :D

WOW - Bin begeistert :D Vielen Dank!!

Grüße
Fabian

Kuzl

Hallo wieder mal,

anbei die Version mit dem hsv-Reading, ein get zum manuellen anstoßen des updates und einem attr zum einstellen des updateintervalls.
Die Syntax der HUE verstehe ich leider nicht so ganz, das ist mir noch zu hoch ich hab nur irgendwas "update_timeout" gefunden aber da blicke ich nicht ganz durch.
Auch Brightness2Channels kapier ich noch nicht so ganz :D

By the way: wie bekomm ich das zweite RGB-Reading weg? wenn ich eins davon weg mache funktioniert der colorpicker nicht mehr richtig

Aber bis da hin viel Spaß damit :)

Gruß
Kuzl

Pythonf

Ich hab die HSV-Readings mal auseinander gezogen. Es funktioniert allerdings bis dato recht unschön - Ich poste das nur deshalb hier, weil ich mich mit Perl kaum auskenne und nicht weiß, wie ich weiter verfahren sollte.
Meine Änderungen:
- HSV in 3 Readings geteilt (erleichtert es, die Readings weiter zu verwenden um z.B. nur auf HUE etwas aufzuaddieren)
- HSV Readings auf Integer umgerechnet (Nachkommastelle wird einfach abgeschnitten)

Was noch fehlt.

HSV Werte im SET [..] HSV [..] sind nachwievor mit Nachkommastellen.
Bin mir nicht sicher, hab nur die Updatefunktion bearbeitet, kann sein, dass noch wo anders eine Ergänzung statt zu finden hätte.

Zusätzlich ist mir aufgefallen (was für mich allerdings kein Problem ist) das im Dropdownmenu von set [...] RGB keine Möglichkeit zur Werte eingabe besteht.

Grüße
Fabian