Zeitgesteuert Licht Dimmen
-
- Beiträge: 45
- Registriert: 6. Apr 2019 14:37
Zeitgesteuert Licht Dimmen
Hallo,
ich möchte meine Aquarien Stück für Stück an openHAB anbinden. Angefangen habe ich mit dem LD382 Wifi LED Controller, um die Beleuchtung zu kontrollieren. Ich habe über dem Aquarium weiße Streifen mit unterschiedlichen Farbtemperaturen und möchte damit einen Sonnenaufgang und Sonnenuntergang simulieren.
Zuerst soll also der warmweiße Kanal langsam heller werden, dann soll der kaltweiße Kanal langsam heller und der warmweiße dunkler werden. Abends soll es umgekehrt laufen.
Da ich noch blutiger Anfänger in openHAB bin tappe ich noch etwas im Dunkeln, wie ich das steuern kann. Das Binding habe ich schon installiert und ich habe den Wifi Controller als Thing hinzugefügt. Elektrisch läuft schon alles. Programmieren kann ich grundsätzlich, ich habe nur noch nicht rausgefunden, wie ich hier vorgehen muss.
Ich bin mir noch nicht ganz sicher, welche Verdrahtung besser ist. Der Controller hat ja 3 Kanäle für RGB und einen für Weiß. Ich kann jetzt zB den roten und den blauen Kanal nutzen und dann einfach die Farbe entsprechend ändern. Oder ich kann einen farbigen und den weißen Kanal verwenden und getrennt steuern
Könnt ihr mir einen kleinen Schubs in die richtige Richtung geben?
Viele Grüße
Markus
ich möchte meine Aquarien Stück für Stück an openHAB anbinden. Angefangen habe ich mit dem LD382 Wifi LED Controller, um die Beleuchtung zu kontrollieren. Ich habe über dem Aquarium weiße Streifen mit unterschiedlichen Farbtemperaturen und möchte damit einen Sonnenaufgang und Sonnenuntergang simulieren.
Zuerst soll also der warmweiße Kanal langsam heller werden, dann soll der kaltweiße Kanal langsam heller und der warmweiße dunkler werden. Abends soll es umgekehrt laufen.
Da ich noch blutiger Anfänger in openHAB bin tappe ich noch etwas im Dunkeln, wie ich das steuern kann. Das Binding habe ich schon installiert und ich habe den Wifi Controller als Thing hinzugefügt. Elektrisch läuft schon alles. Programmieren kann ich grundsätzlich, ich habe nur noch nicht rausgefunden, wie ich hier vorgehen muss.
Ich bin mir noch nicht ganz sicher, welche Verdrahtung besser ist. Der Controller hat ja 3 Kanäle für RGB und einen für Weiß. Ich kann jetzt zB den roten und den blauen Kanal nutzen und dann einfach die Farbe entsprechend ändern. Oder ich kann einen farbigen und den weißen Kanal verwenden und getrennt steuern
Könnt ihr mir einen kleinen Schubs in die richtige Richtung geben?
Viele Grüße
Markus
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Zeitgesteuert Licht Dimmen
Was die Verdrahtung betrifft, kommt es sicher darauf an, wie die Kanäle angesteuert werden können. Wie wird der Controller denn in openHAB eingebunden? MQTT? Kommst Du an die einzelnen Kanäle ran, oder musst Du eine Farbe senden, die der Controller dann in RGB umsetzt?
Ich kenne den Controller ja nicht, oft ist es aber so, dass solche Controller durchaus etwas Eigenintelligenz besitzen, also z.B. zwei Lichtszenen mit einstellbarer Zeit überblenden können. Falls Du das über den Controlle kontrollieren kannst, wäre das der beste Weg.
Sollte das nicht gehen, müsste halt eine Regel her:
zwei Items für die beiden Streifen:
Und der Code:
Die Rule wird einmalig um 7 Uhr jeden Tag ausgeführt. Innerhalb der Rule werden zunächst die Variablen initialisiert. Anschließend wird ein Timer angelegt, der auch gleich ausgeführt wird. Die kleine verzögerung von 50 Millisekunden ist ein Sicherheitspuffer, damit der ode schon komplett im Speicher liegt, wenn der Timer ausgeführt wird.
Innderhalb des Timers wird die Variable nAquaCount hochgezählt. Sofern die Variable kleiner 101 ist, wird das warmweiße Licht um einen Prozentpunkt heller geregelt. Solange der Counter unter 201 ist, wird der Timer erneut geplant, und zwar in 5 Sekunden. Damit ergibt sich ein allmähliches Aufblenden innerhalb 10 Minuten.
Wenn der Counter über 100 kommt, wird der WW-Anteil pro Durchlauf um einen Prozentpunkt abgesenkt, während der KW-Anteil nun jeweils um einen Prozentpunkt steigt.
erreicht der Counter die 201, wird der Timer nicht erneut geplant.
Die Rule für die Gegenrichtung funktioniert dann genauso, nur in umgekehrter Reihenfolge (und natürlich mit geänderter Startzeit). Du kannst Die Rule auch über Astro-Ereignisse auslösen lassen, dann könnte der Sonnenauf/Untergang quasi synchron zur Natur laufen
Ich kenne den Controller ja nicht, oft ist es aber so, dass solche Controller durchaus etwas Eigenintelligenz besitzen, also z.B. zwei Lichtszenen mit einstellbarer Zeit überblenden können. Falls Du das über den Controlle kontrollieren kannst, wäre das der beste Weg.
Sollte das nicht gehen, müsste halt eine Regel her:
zwei Items für die beiden Streifen:
Code: Alles auswählen
Dimmer Aquarium_WW "Warmweißes Licht" ...
Dimmer Aquarium_KW "Kaltweißes Licht" ...
Code: Alles auswählen
var Timer tAquaLicht = null
var Number nAquaCount = 0
rule "Aquarium Sonnenaufgang"
when
Time cron "0 0 7 * * ?" // täglich um 07:00:00 Uhr
then
tAquaLicht?.cancel
nAquaCount = 0
tAquaLicht = createTimer(now.plusMillis(50),[|
nAquaCount += 1
if(nAquaCount < 101)
Aquarium_WW.sendCommand((Aquarium_WW.state as Number) + 1)
else {
Aquarium_WW.sendCommand((Aquarium_WW.state as Number) - 1)
Aquarium_KW.sendCommand((Aquarium_KW.state as Number) + 1)
}
if(nAquaCount < 201)
tAquaLicht.reschedule(now.plusSeconds(6))
])
end
Innderhalb des Timers wird die Variable nAquaCount hochgezählt. Sofern die Variable kleiner 101 ist, wird das warmweiße Licht um einen Prozentpunkt heller geregelt. Solange der Counter unter 201 ist, wird der Timer erneut geplant, und zwar in 5 Sekunden. Damit ergibt sich ein allmähliches Aufblenden innerhalb 10 Minuten.
Wenn der Counter über 100 kommt, wird der WW-Anteil pro Durchlauf um einen Prozentpunkt abgesenkt, während der KW-Anteil nun jeweils um einen Prozentpunkt steigt.
erreicht der Counter die 201, wird der Timer nicht erneut geplant.
Die Rule für die Gegenrichtung funktioniert dann genauso, nur in umgekehrter Reihenfolge (und natürlich mit geänderter Startzeit). Du kannst Die Rule auch über Astro-Ereignisse auslösen lassen, dann könnte der Sonnenauf/Untergang quasi synchron zur Natur laufen

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 45
- Registriert: 6. Apr 2019 14:37
Re: Zeitgesteuert Licht Dimmen
Ich bin also nicht der einzige, der die Aquarien über openHAB steuern will 
Ich verwende dieses Binding
https://www.openhab.org/addons/bindings/wifiled/
Ich schaue mir den Code später noch an. Will gerade ein Walstad Aquarium einrichten

Ich verwende dieses Binding
https://www.openhab.org/addons/bindings/wifiled/
Ich schaue mir den Code später noch an. Will gerade ein Walstad Aquarium einrichten

- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Zeitgesteuert Licht Dimmen
Ich habe kein Aquarium
Aber die Aufgabe, zwei Dimmer gegeneinander zu blenden, ist nicht sooo ungewöhnlich...
Was das Binding betrifft:
Mich wundert es ein wenig, dass es von vornherein zwei Dimmerkanäle für weiß gibt. Ist das vom Controller abhängig? (Das geht aus der Beschreibung für mich nicht hervor).
Ah. Gerade nochmal rein geschaut. das wäre der LD686...

Was das Binding betrifft:
Mich wundert es ein wenig, dass es von vornherein zwei Dimmerkanäle für weiß gibt. Ist das vom Controller abhängig? (Das geht aus der Beschreibung für mich nicht hervor).
Ah. Gerade nochmal rein geschaut. das wäre der LD686...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 45
- Registriert: 6. Apr 2019 14:37
Re: Zeitgesteuert Licht Dimmen
Über die Astro Geschichte habe ich auch schon nachgedacht, denke aber, im Sommer wird das zu viel und im Winter zu wenig Licht.
Bei dem Treiber habe ich zwei Möglichkeiten. Entweder ich verwende den Classic Treiber, dann kann ich das Fading selbst im Code machen oder ich verwende den Fading Treiber, der das Fading dann anscheinend selbst übernimmt. Ob das lange genug eingestellt werden kann weiß ich noch nicht. Welche Variante ich verwenden kann muss ich noch ausprobieren.
Ich denke aber es wäre sinnvoll, wenn ich beide Kanäle über die RGB Farben steuere. Dann muss ich nicht alles doppelt machen
Bei dem Treiber habe ich zwei Möglichkeiten. Entweder ich verwende den Classic Treiber, dann kann ich das Fading selbst im Code machen oder ich verwende den Fading Treiber, der das Fading dann anscheinend selbst übernimmt. Ob das lange genug eingestellt werden kann weiß ich noch nicht. Welche Variante ich verwenden kann muss ich noch ausprobieren.
Ich denke aber es wäre sinnvoll, wenn ich beide Kanäle über die RGB Farben steuere. Dann muss ich nicht alles doppelt machen
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Zeitgesteuert Licht Dimmen
Na ja, Du musst ohnehin zwei Items anlegen, wenn Du das über die Oberfläche vielleicht auch mal manuell steuern möchtest.
openHAB verwendet intern immer HSB als Farbmodell. Du musst also im Zweifel immer rumrechnen.
Innerhalb einer Rule geht das dann so:
Code: Alles auswählen
val hsbValue = HSBType.fromRGB(redValue,greenValue,blueValue)
myColorItem.sendCommand(hsbValue)
In der Gegenrichtung funktioniert es ähnlich:
Code: Alles auswählen
val hsbValue = HSBType.fromRGB(redValue,greenValue,blueValue)
val redValue = (myColorItem.state as HSBType).red
val blueValue = (myColorItem.state as HSBType).blue
val greenValue = (myColorItem.state as HSBType).green
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 45
- Registriert: 6. Apr 2019 14:37
Re: Zeitgesteuert Licht Dimmen
Ok, dann schaue ich mir das mal an. Danke bis hier her für die Hilfe.
Ich habe gerade festgestellt, dass die Lampen in einem zweiten Aquarium auch mit 24V laufen. Die kann ich dann mit dem gleichen Controller gleich mit steuern. So muss das sein
Ich habe gerade festgestellt, dass die Lampen in einem zweiten Aquarium auch mit 24V laufen. Die kann ich dann mit dem gleichen Controller gleich mit steuern. So muss das sein

- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Zeitgesteuert Licht Dimmen
Super, wenn die Aquarien dicht genug beieinander stehen. Unschön ist nur die Krücke mit dem geschummelten Color Item.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 45
- Registriert: 6. Apr 2019 14:37
Re: Zeitgesteuert Licht Dimmen
Naja, ein paar Meter Kabel sind es schon, steht aber im gleichen Raum. Ich denke nicht, dass sich da irgendwelche Probleme durch die Leitungskapazität ergeben. Hier steht auch noch ein zweites Aquarium. Da sitzt derzeit eine billige LED Leuchte drüber, die leider nur mit 5V läuft. Vielleicht baue ich da auch noch was mit 24V drüber. Dann habe ich den Controller voll ausgereizt
. Muss ich nur mit den RGB Kanälen etwas spielen. Bei den beiden anderen Aquarien kann ich dann halt nur dimmen, aber nicht die Farbtemperatur ändern. Aber egal. Besser so als "hart" einschalten.
Ich bin inzwischen zumindest so weit dass ich das Licht von der Classic UI aus steuern kann. Muss mich jetzt noch ein wenig in die Scriptsprache einlesen

Ich bin inzwischen zumindest so weit dass ich das Licht von der Classic UI aus steuern kann. Muss mich jetzt noch ein wenig in die Scriptsprache einlesen
-
- Beiträge: 45
- Registriert: 6. Apr 2019 14:37
Re: Zeitgesteuert Licht Dimmen
Nach einigem Rumprobieren, Tutorial lesen und Trail and Error läuft es jetzt. Zumindest der Sonnenaufgang. Den Sonnenuntergang und eigene Anpassungen bekomme ich auch hin.
Was mich im Moment etwas stört ist die Ausfallsicherheit. Wie ist das, wenn es ein Problem wie einen Stromausfall während der Dimmer Phase gibt? Dann bleibt nach dem Neustart das Licht auf dem aktuell im Controller eingestellten Wert, bis der nächste Timer ausgeführt wird.
Ich müsste beim Start die aktuellen Ist Werte aus dem Controller auslesen und anhand von der Zeit mit entsprechenden Soll Werten vergleichen. Oder gibt es da eine andere Möglichkeit?
Ein anderes Problem ist, wenn das Licht manuell verstellt wird. Zum einen kann man es ja zB in der Paper UI oder von den Handy App aus verändert werden, zum anderen kann es ja beabsichtigt sein, dass Licht zB zum Reinigen einmal zu verstellen. Wie kann man zB ein manuelles Verstellen der Werte zB von der Paper UI aus erkennen? Gibt es einen "onChange" Event oder muss ich das manuell regelmäßig abfragen?
Was mich im Moment etwas stört ist die Ausfallsicherheit. Wie ist das, wenn es ein Problem wie einen Stromausfall während der Dimmer Phase gibt? Dann bleibt nach dem Neustart das Licht auf dem aktuell im Controller eingestellten Wert, bis der nächste Timer ausgeführt wird.
Ich müsste beim Start die aktuellen Ist Werte aus dem Controller auslesen und anhand von der Zeit mit entsprechenden Soll Werten vergleichen. Oder gibt es da eine andere Möglichkeit?
Ein anderes Problem ist, wenn das Licht manuell verstellt wird. Zum einen kann man es ja zB in der Paper UI oder von den Handy App aus verändert werden, zum anderen kann es ja beabsichtigt sein, dass Licht zB zum Reinigen einmal zu verstellen. Wie kann man zB ein manuelles Verstellen der Werte zB von der Paper UI aus erkennen? Gibt es einen "onChange" Event oder muss ich das manuell regelmäßig abfragen?