NEWS
DP Strucktur zur Lichtsteuerung
-
Hi,
Ich habe jetzt schon mehrere Automationen (gerade was Licht angeht) gebaut (die auch gut funktionieren).
Aber mir ist jetzt aufgefallen, dass ich nicht alles abbilden kann was ich gerne möchte. Ich würde euch jetzt einfach mal meine Grundidee vorstellen und hoffe auf Anregungen wie es vielleicht besser/einfacher geht.Anforderungen:
Licht an/aus schalten durch:
- Manuell (Knopf / Handy)
- Sensor (z.b. Bewegungsmelder) [Person pressend]
- Zeitgesteuert (Feste Uhrzeit oder Astro)
- Mischung als Sensor + Uhrzeit
- Mischung als Sensor + Astro
Dimmen:
- Fester wert
- Helligkeit im Raum
- Zeitgesteuert (Feste Uhrzeit oder Astro)
(Beispiel Lampe ist "eg.office.light.desk" )
Im Userdata werden die default Werte Pro Lampe erzäugt z.b.:
eg.office.light.desk.default.brightness // fester wert eg.office.light.desk.default.room_lux // lux Wert den der Raum haben soll eg.office.light.desk.default.time_start // Uhrzeit wenn das Licht angehen soll eg.office.light.desk.default.time_stop // Uhrzeit wenn das Licht ausgehen soll eg.office.light.desk.default.astro_start // Astro start wert z.b. goldenHour eg.office.light.desk.default.astro_stop // Astro stop wert z.b. night eg.office.light.desk.default.astro_offset // +- offset in Min
Dann kommen die Steuersignale:
eg.office.light.desk.pressend_enable // Lampe kann über Sensor geschalter werden eg.office.light.desk.astro_enable // Lampe wird über Astro geschaltet eg.office.light.desk.time_enable // Lampe wird über die Uhrzeit geschaltet eg.office.light.desk.time_pressend_enable // Lampe kann über Sensor geschalter werden in der zeit zwischen start + stop eg.office.light.desk.astro_pressend_enable // Lampe kann über Sensor geschalter werden in der zeit zwischen astro start + astro stop eg.office.light.desk.brightness_mode // 1 = Fester wert , 2= Lux im Raum, 3= Zeitabhängig (astro oder Uhrzeit) eg.office.light.desk.set_by // Enum wer die Lampe geschaltet hat um zuverhindern das z.b. pressend ein manuel überschreibt
Folgende Scripte laufen
- Wenn manuell geschaltet wird
- set_by wird auf "time" gesetzt
- brightness_mode gibt an wie gedimmt werden soll
- Wenn time_enable oder astro_enable wird ein Cron auf die Zeit gesetzt.
- wenn set_by nicht auf "Manuel" gesetzt wird ist kann die Lampe an oder ausgeschaltet werden
- brightness_mode gibt an wie gedimmt werden soll
- set_by wird auf "time" gesetzt
- wenn ein Sensor aktiv ist (pressend)
- wenn set_by nicht auf "Manuel" gesetzt wird ist kann die Lampe an oder ausgeschaltet werden
- wenn time_pressend_enable oder astro_pressend_enable aktive ist wird die Uhrzeit(Astro) noch geprüft
- brightness_mode gibt an wie gedimmt werden soll
- set_by wird auf "sensor" gesetzt
Wie man sieht wird das ganze ganz schön unübersichtlich und selbst da habe ich noch nicht eingearbeitet das wenn ich manuell anschalte, ich einen Festen wert habe der Unterumständen nicht der gleiche ist wie bei der Aktivierung durch einen Sensor. Auch ist die colortemp noch nicht mit eingebaut.
Ich glaube nicht, dass ich alleine bin mit meinen Wünschen. Wie habt ihr das gelöst?
P.S. mir geht es nicht um die konkrete Implementierung das bekomme ich mit etwas Zeit hin eher um den Aufbau.
-
@ignis-draco
Ich hab meine Steuerung dafür noch nicht fertig, bin aber schon soweit das ich davon absehe die über alle Räume zu vereinheitlichen. In manchen Räumen wird das per BWM, lux und Uhrzeit gesteuert und kann per Schalter übersteuert werden. Im Wohnzimmer hab ich ne Scenen steuerung und die hat 8 * 6 * 6 + 6 Datenpunkte (an/aus, hue,sat,rgb, ct,helligkeit) (letzte Dimmereinstellung für diese Scene) )ohne Aktivierungsbedingungen. Geht da auch alles über diverse "Schalter" oder was man als Schalter bezeichnen könnte. Mit aktivierungsbedinungen wären es pro Lampe nochmal 3 Datenpunkte mehr und pro Scenen... oh Gott - manches passiert weil niemand im Zimmer ist, anders wenn der erste nach hause komme, oder der Fernseher angeht usw usf.Manche Lampen gehen auch erst zu bestimmten Uhrzeiten an trotz Aktivierung in der Scene.
-
Das heißt das du für jeden raum /Lampe ein separates Skript hast?
Ja man hat dann viele Datenpunkte. Man könnte sich ja überlegen das man die Datenpunkte nur anlegt, wenn die Funktion benötigt wird und sonst nichts. Damit lässt sich bestimmt die Menge halbieren.Ich persönlich finde es sehr schön wenn meine skripte so geschrieben sind das ich wenn ich z.b. eine neue Lampe habe an den Skripten nichts geändert werden muss (maximal ein neustart). So das es reicht ein paar alias anzulegen und alles ist gut.
Ich werde mal versuchen meine Struktur genauer auszuarbeiten und in einem Testsystem zu implementieren. Mal schauen wie gut das ganze klappt.