Seite 1 von 1
Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 1. Nov 2020 17:50
von Piko
Hallo ihr Verrückten
Ich hab mir ein Aquarium zugelget und würde gerne das licht Langsam hoch sowie runter Dimmen.
Bin mir aber noch nicht Schüssig wie ich das am besten anstelle. Sowie aktuell 2 Lichtfarben, Warmweiss und Kaltweiss.
Ich hab als Ausgangsposition ein Shelly RGBW2 (hatte ich gerade zu hand). Genial wäre natürlich wenn ich erst langsam das Warmweiss hochstufen könnte und ab (sagen wir einfach mal) 20% dass kaltweiss nachträglich langsam weiter hoch dimmen könnte.
Ich hab schon ein wenig gesucht im forum, aber das richtige nicht so recht gefunden.
konkret zur regel:
Sie soll "Channel 1" ab 09 Uhr alle 6 Minuten um 10% steigen lassen.
Channel "2" soll dann ab 20% prozent langsam (vielleicht mit 7-8 Schritten) dazu kommen. Bis am ende beide auf 100% sind.
Das gleiche am Abend in umgekehrter form natürlich auch.
Bisher hab ich nur die idee über einen TimeCron zu arbeiten, aber ich glaube ihr habt da ne bessere idee.
EDIT:
Meine bisheruige Rule zum abdunkeln sieht so aus:
Code: Alles auswählen
rule "Licht Aus"
when
Time cron "0 0 21 1/1 * ? *" or
Time cron "0 0 20 1/1 * ? *" or
Time cron "0 06 20 1/1 * ? *" or
Time cron "0 12 20 1/1 * ? *" or
Time cron "0 24 20 1/1 * ? *" or
Time cron "0 30 20 1/1 * ? *" or
Time cron "0 36 20 1/1 * ? *" or
Time cron "0 42 20 1/1 * ? *" or
Time cron "0 48 20 1/1 * ? *" or
Time cron "0 54 20 1/1 * ? *" or
then
if(Beleuchtung_Warm.state ==100){
Beleuchtung_Warm.sendCommand(90)
}
if (Beleuchtung_Warm.state == 90){
Beleuchtung_Warm.sendCommand(80)
}
if (Beleuchtung_Warm.state == 80){
Beleuchtung_Warm.sendCommand(70)
}
if (Beleuchtung_Warm.state == 70){
Beleuchtung_Warm.sendCommand(60)
}
if (Beleuchtung_Warm.state == 60){
Beleuchtung_Warm.sendCommand(50)
}
if (Beleuchtung_Warm.state == 50){
Beleuchtung_Warm.sendCommand(40)
}
if (Beleuchtung_Warm.state == 40){
Beleuchtung_Warm.sendCommand(30)
}
if (Beleuchtung_Warm.state == 30){
Beleuchtung_Warm.sendCommand(20)
}
if (Beleuchtung_Warm.state == 20){
Beleuchtung_Warm.sendCommand(10)
}
if (Beleuchtung_Warm.state == 10){
Beleuchtung_Warm.sendCommand(0)
}
end
PS: Test läuft erstmal mit Warmweiss.
Danke und Schönen Abend Euch!
Bleibt Gesund!
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 1. Nov 2020 18:11
von violine21
Hallo,
ich habe hier etwas ähnliches für eine Vogelvoliere. Um 19:00 Uhr wird das Licht im 5-Sekunden-Takt um 1% herunter gedimmt.
Der "Sonnenaufgang" liesse sich ganz einfach in die Rule mit integrieren.
Code: Alles auswählen
var Timer tSunset = null
rule "Beleuchtung Simulation Sonnenuntergang"
when
Time cron "0 0 19 * * ?"// um 19:00:00 Uhr
then
tSunset?.cancel
tSunset = createTimer(now.plusMillis(10),[|
if((SDimmer_D1_RelayBrightness.state as Number) > 0) {
SDimmer_D1_RelayBrightness.sendCommand((SDimmer_D1_RelayBrightness.state as Number) - 1)
tSunset.reschedule(now.plusSeconds(5))
}
])
end
SDimmer_D1 ist ein Shelly-Dimmer, dessen Items:
Code: Alles auswählen
Dimmer SDimmer_D1_RelayBrightness "Helligkeit" {channel="shelly:shellydimmer:f3a210:relay#brightness"}
Switch SDimmer_D1_RelayOutput "Output" {channel="shelly:shellydimmer:f3a210:relay#brightness"}
Switch SDimmer_D1_RelayInput1 "Eingang 1" {channel="shelly:shellydimmer:f3a210:relay#input1"}
Switch SDimmer_D1_RelayInput2 "Eingang 2" {channel="shelly:shellydimmer:f3a210:relay#input2"}
Number:Time SDimmer_D1_RelayAutoOn "Auto ein timer" {channel="shelly:shellydimmer:f3a210:relay#autoOn"}
Number:Time SDimmer_D1_RelayAutoOff "Auto aus timer" {channel="shelly:shellydimmer:f3a210:relay#autoOff"}
Number SDimmer_D1_DeviceWifiSignal "WiFi[MAP(shelly_rssi.map):%s]" {channel="shelly:shellydimmer:f3a210:device#wifiSignal"}
Number:Time SDimmer_D1_DeviceUptime "Laufzeit" {channel="shelly:shellydimmer:f3a210:device#uptime"}
Number:Temperature SDimmer_D1_DeviceInternalTemp "Device internal temp" {channel="shelly:shellydimmer:f3a210:device#internalTemp"}
Number:Power SDimmer_D1_MeterCurrentWatts "Meter current watts" {channel="shelly:shellydimmer:f3a210:meter#currentWatts"}
Number:Energy SDimmer_D1_MeterTotalKWH "Meter total kwh" {channel="shelly:shellydimmer:f3a210:meter#totalKWH"}
Number:Energy SDimmer_D1_MeterLastPower1 "Meter last power1" {channel="shelly:shellydimmer:f3a210:meter#lastPower1"}
Number:Energy SDimmer_D1_MeterLastPower2 "Meter last power2" {channel="shelly:shellydimmer:f3a210:meter#lastPower2"}
Number:Energy SDimmer_D1_MeterLastPower3 "Meter last power3" {channel="shelly:shellydimmer:f3a210:meter#lastPower3"}
DateTime SDimmer_D1_MeterLastUpdate "Meter last update" {channel="shelly:shellydimmer:f3a210:meter#lastUpdate"}
Probier mal, ob das Deinen Vorstellungen entspricht. Die Feinheiten bauen wir dann noch ein.
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 2. Nov 2020 20:02
von Piko
Nabend violine21,
danke für den Vorschlag. Das sieht schon sehr gut aus. Umgebaut bekomm ich das denke ich selbst. ich brauchte nur einen ansastz.
Ich bin/war aber auch in dem glauben, das wenn ich eine solche Rule aufbaue, ich diese Rule eine Stunde am laufen habe und es so vielleicht zu problemen mit anderen Rules kommen kann.
Aber wenn das bei dir soweit ohne probleme läuft, passe ich das so für mich an.
Danke und schönen Abend
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 2. Nov 2020 22:57
von violine21
Piko hat geschrieben: ↑2. Nov 2020 20:02
ich brauchte nur einen ansastz.
Zwei Möglichkeiten:
1. Eine zweite Rule für den Sonnenaufgang. Dann immer um 1 erhöhen, Vergleich dann auf den Maximalwert.
2. Den Sonnenaufgang in diese Rule integrieren.
Im when-Bereich erweiterst Du um den Zeitpunkt, an dem die "Sonne aufgehen" soll.
Dafür musst Du dann per if-Bedingung noch einmal auf den Zeitpunkt filtern, damit die Rule weiss, was gemeint ist:
Code: Alles auswählen
if(now.getHourOfDay = 9 ) //Sonnenaufgang
if(now.getHourOfDay = 19 ) //Sonnenuntergang
Du kannst den selben Timer nutzen, da er ja nicht gleichzeitig startet.
Dann musst Du das noch einbauen:
Channel "2" soll dann ab 20% prozent langsam (vielleicht mit 7-8 Schritten) dazu kommen. Bis am ende beide auf 100% sind.
Das geht dann auch mit Vergleichsoperationen.
Ich empfehle wegen der Übersichtlichkeit zwei Rules. Dann entfällt auch der Zeitvergleich.
Und ja, es läuft zur Freude meiner Sittiche stabil. Ich habe allerdings als Startbedingung einen Lichtsensor im Aussenbereich.
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 4. Nov 2020 18:57
von Piko
Ich werd gleich mal ein wenig basteln.
Ich denke das wird schon werden, wenn ich die rule fertig habe poste ich sie, dann könnt ihr sie zerpflücken und verbesserungen vorschlagen
Die idee mit dem Lichtsensor im Aussenbereich ist grundsätzlich Nett (hab ich z.b. für meine Aussenbeleuchtung bereits eingebrunden) allerdings denke ich wollen meine Fische etwas recht gleichbleibendes und ich würd sie auch gerne noch sehen wenn ich Heim kommen
Ich denke ich werd als Trigger einen Time Cron verwenden und dann Steppweise hochsetzen.
Sollte ich auf Probleme stoßen gebe ich Laut

Schönen Abend
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 4. Nov 2020 19:40
von violine21
Piko hat geschrieben: ↑4. Nov 2020 18:57
Die idee mit dem Lichtsensor im Aussenbereich ist grundsätzlich Nett (hab ich z.b. für meine Aussenbeleuchtung bereits eingebrunden) allerdings denke ich wollen meine Fische etwas recht gleichbleibendes und ich würd sie auch gerne noch sehen wenn ich Heim kommen
Ich glaube, da hast Du mich missverstanden
Ich verlängere mit dem Licht den Tag in meiner Vogelvoliere. An Hand der Lichtverhältnisse im Aussenbereich beginnt die Zusatzbeleuchtung
im Winter entsprechend früher. Das stufenweise herunterdimmen findet eigentlich immer zur selben Zeit statt.
Bei Fischen wird die Beleuchtung in der Regel den ganzen Tag benötigt.
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 6. Nov 2020 19:37
von Piko
OKAY ich bin blöd!
ich hab mir da gerade was zusammen gebastelt, aber irgendwie läuft das so nicht.
habe ich nur eine der beiden Rules in der Datei, geht es. mit beiden nicht.
Übersehe ich was ?
Code: Alles auswählen
var Timer tSunset = null
var Timer tSunrise = null
rule "Beleuchtung Simulation Sonnenuntergang"
when
Time cron "00 24 19 * * ?"// um 19:00:00 Uhr
then
tSunrise?.cancel
tSunrise = createTimer(now.plusMillis(10),[|
if((Aquarium_Kaltweiss.state as Number) >= 0) {
if((Aquarium_Warmweiss.state as Number) < 100){
Aquarium_Warmweiss.sendCommand((Aquarium_Warmweiss.state as Number) +1)
}
if((Aquarium_Warmweiss.state as Number) >= 20){
Aquarium_Kaltweiss.sendCommand((Aquarium_Kaltweiss.state as Number)+2)
}
tSunrise.reschedule(now.plusSeconds(1))
}
])
end
rule "Beleuchtung Simulation Sonnenuntergang"
when
Time cron "00 35 19 * * ?"// um 19:00:00 Uhr
then
tSunset?.cancel
tSunset = createTimer(now.plusMillis(10),[|
if((Aquarium_Warmweiss.state as Number) > 0) {
if((Aquarium_Kaltweiss.state as Number) < 90){
Aquarium_Warmweiss.sendCommand((Aquarium_Warmweiss.state as Number) - 1)}
if((Aquarium_Kaltweiss.state as Number) > 0){
Aquarium_Kaltweiss.sendCommand((Aquarium_Kaltweiss.state as Number) - 2)
}
tSunset.reschedule(now.plusSeconds(1))
}
])
end
ja ich weiss, ist nicht schön ^^
PS: die 1 Sekunde ist nur zum testen.
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 6. Nov 2020 20:59
von violine21
Piko hat geschrieben: ↑6. Nov 2020 19:37
habe ich nur eine der beiden Rules in der Datei, geht es. mit beiden nicht.
Beide Rules haben den gleichen Namen:
Funktioniert der Cron-Trigger?
19:00 Uhr müsste so aussehen:
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 8. Nov 2020 20:17
von Piko
Ja sowas kommt davon wenn man mal schnell was machen will und die Frau im Hintergrund schon am Nerven ist
Habs dann gestern Neu gemacht und es läuft.
die Rule sieht im moment so aus:
Code: Alles auswählen
var Timer tSunrise = null
var Timer tSunset1 = null
var Timer tSunset2 = null
rule "Beleuchtung Simulation Sonnenuntergang Warmweiss"
when
Time cron "00 25 20 * * ?"// um 19:00:00 Uhr
then
tSunset1?.cancel
tSunset1 = createTimer(now.plusMillis(10),[|
if((Aquarium_Warmweiss.state as Number) > 0) {
Aquarium_Warmweiss.sendCommand((Aquarium_Warmweiss.state as Number) - 1)
tSunset1.reschedule(now.plusSeconds(20))
}
])
end
rule "Beleuchtung Simulation Sonnenuntergang Kaltweiss"
when
Time cron "00 50 19 * * ?"// um 19:00:00 Uhr
then
tSunset2?.cancel
tSunset2 = createTimer(now.plusMillis(10),[|
if((Aquarium_Kaltweiss.state as Number) > 0) {
Aquarium_Kaltweiss.sendCommand((Aquarium_Kaltweiss.state as Number) - 1)
tSunset2.reschedule(now.plusSeconds(20))
}
])
end
rule "Beleuchtung Simulation Sonnenaufgang"
when
Time cron "00 45 08 * * ?"// um 19:00:00 Uhr
then
tSunrise?.cancel
tSunrise = createTimer(now.plusMillis(10),[|
if((Aquarium_Kaltweiss.state as Number) >= 0) {
if((Aquarium_Warmweiss.state as Number) < 100){
Aquarium_Warmweiss.sendCommand((Aquarium_Warmweiss.state as Number) +1)
}
if((Aquarium_Warmweiss.state as Number) >= 20 && (Aquarium_Kaltweiss.state as Number) < 98){
Aquarium_Kaltweiss.sendCommand((Aquarium_Kaltweiss.state as Number)+2)
}
tSunrise.reschedule(now.plusSeconds(20))
}
])
end
Kann man sicherlich Optimieren. Will aber jetzt erstamal in nächsten Stepp das RGB-Led Band mit dazunehmen.
Morgens von Rot ins Gelb-Grün und zum Abend dann über Rot zu Blau.
Aber da schau ich dann wenn ich mal zeit habe.
Re: Aqurariumbeleuchtung - Schonende Schlatung
Verfasst: 10. Nov 2020 21:50
von Piko
Ich häng mal die nächste frage an das Thema an...
Wie setzte ich eine zufällige bewölung um ?
also ich hätte es gerne so das zufällig über den Tag verteilt das licht schwächer wird, aber natürlich nie ganz aus geht.
Hat dazu jemand ne idee ?