Seite 4 von 4

Re: Bewegungsmelder oder dauer an

Verfasst: 11. Jul 2020 19:20
von SIDE22
so habe mal etwas anderes probiert für unsere außen Lampen im Garten

Code: Alles auswählen

rule "Nachtlicht Schifslampen"
when
    Time cron "0 */15 * * * ?"
then
    if(Garten_Switch2.state == OFF) {                                           // Dauerbetrieb AUS
        if(Garten_helligkeit.state < 60 ) {                                     // startet wenn dunkel
            if(now.getHourOfDay > 17 || now.getHourOfDay < 1 ) {                // und nur zwischen 17uhr bis 1uhr
                gLichtGartenNacht.sendCommand(45)                               // entsprechendes Licht auf 45%
            } 
        } else if(Garten_helligkeit.state > 60 ) {                              // startet wenn hell
            if (now.getHourOfDay > 1 || now.getHourOfDay < 17 ) {               // und nur zwischen 1uhr bis 17uhr
                gLichtGartenNacht.sendCommand(0)                                // entsprechendes Licht auf 0%
            }
        }
    }
end

wäre das so gut formuliert oder gäbe es da was besseres ?

habe es mal mit anderen werten probiert also anderer heligkeit und so das man es bei tag testen kann und schien zu laufen

LG
Florian

Re: Bewegungsmelder oder dauer an

Verfasst: 11. Jul 2020 21:21
von udo1toni
Warum? Oder anders formuliert: Was willst Du erreichen? Die Situation jetzt: Die Rule prüft alle Viertelstunde, ob ein Schalter aus ist. Ist das der Fall, prüft die Rule, ob es heller (oder dunkler) als 60 ist.
Nur für den Fall, dass es dunkler als 60 ist, prüft die Rule, ob es zwischen 18 Uhr und 1 Uhr ist. Ist das der Fall, schaltet sie das Licht auf 45.
Nur für den Fall, dass es heller als 60 ist, prüft die Rule, ob es nach 2 und vor 17 Uhr ist. Ist das der Fall, schaltet sie das Licht aus.

Ist das wirklich exakt das, was Du erreichen möchtest? (z.B. dass das Licht, unabhängig von irgendwas, im Zweifel eine viertel Stunde den "falschen" Zustand hat, oder dass zwischen 1 und 2 Uhr bzw. zwischen 17 und 18 Uhr unter keinen Umständen geschaltet wird)

Re: Bewegungsmelder oder dauer an

Verfasst: 11. Jul 2020 21:54
von SIDE22
Naja wollte die Regel so erstellen dass das Licht angeht wenn es dunkel wird soll aber nicht vor 17uhr angehen (zb schlechtes Wetter oder in Richtung Winter) zudem soll es um 1uhr wieder ausgehen die ganze rule soll aber nicht ausgeführt werden wenn man dauerlicht geschaltet hat und im Dauerlich soll es ja dimmbar sein

Re: Bewegungsmelder oder dauer an

Verfasst: 11. Jul 2020 22:08
von SIDE22
Habe testweise erstma alle 15min genommen wollte diesen später höher stellen oder schauen was ich sonnst für ein Auslöser nehmen kann

Re: Bewegungsmelder oder dauer an

Verfasst: 11. Jul 2020 22:29
von udo1toni
Also, die Rule soll zum einen triggern, wenn sich die Helligkeit ändert. Zum zweiten (und dritten) soll sie zu zwei bestimmten Zeiten triggern.
Wenn die Rule getriggert hat, soll sie prüfen, ob ein Schalter OFF ist. Ist das der Fall, soll sie prüfen, ob die Randbedngungen erfüllt sind und gegebenenfalls schalten.

Nun wäre noch die Frage, was passieren soll, wenn sich die Helligkeit wieder ändert (also z.B. im Sommer kommt um 17:01 Uhr eine dunkle Wolke und die Helligkeit sinkt unter 60, um 17:05 Uhr ist die Wolke wieder weg und die Helligkeit steigt wieder weit über 60...)

Allgemein möchte ich empfehlen, im Zusammenhang mit Helligkeit auf fixe Uhrzeiten eher zu verzichten und stattdessen lieber über das Astro Binding den Sonnenstand zu berücksichtigen.

Ich gehe davon aus, dass Du es eher so möchtest:

Code: Alles auswählen

rule "Nachtlicht Schiffslampen"
when
    Item Garten_helligkeit changed or
    Time cron "0 0 17 * * ?" or
    Time cron "0 0 1 * * ?"
then
    if(Garten_Switch2.state == ON) {                                                         // Dauerbetrieb AN
        logInfo("autolight","Rule getriggert, aber Dauerbetrieb an. Abbruch.")
        return;
    }
    if((now.getHourOfDay > 16 || now.getHourOfDay < 1 )) && Garten_helligkeit.state < 60 ) {
        if(gLichtGartenNacht.state != 45)                                                    // Nur schalten, falls Abweichung von Soll
            gLichtGartenNacht.sendCommand(45)
    } else if(now.getHourOfDay == 1  || Garten_helligkeit.state > 60 ) {                     // falls Abschalten bei Helligkeit über 60 erwünscht
//  } else if( now.getHourOfDay == 1 ) {                                                     // Alternativ nur um 1 Uhr abschalten
        if(gLichtGartenNacht.state != 0)                                                     // Nur schalten, falls Abweichung von Soll
            gLichtGartenNacht.sendCommand(0)
    }
end
Die Rule triggert bei jeder Änderung der Helligkeit, zusätzlich um 1 Uhr und um 17 Uhr.
Die Rule prüft, ob Dauerlicht AN ist und bricht in diesem Fall die Ausführung ab (mittels return;, das Semikolon ist in diesem Fall notwendig)
Läuft die Rule noch, prüft sie nun, ob die Helligkeit unter 60 und gleichzeitig der Zeitraum 17 Uhr bis 1 Uhr erfüllt ist. Ist das der Fall, schaltet sie das Licht auf 45 (nur, falls das Licht nicht auf 45 ist)
Ansonsten prüft die Rule, ob es 1 Uhr ist. Ist das der Fall, schaltet sie das Licht aus, falls es nicht aus ist. Die alternative Zeile prüft zusätzlich, ob die Helligkeit über 60 liegt.

Re: Bewegungsmelder oder dauer an

Verfasst: 11. Jul 2020 22:40
von SIDE22
der helligkeitswert liefert mir mein Homematic Funkbewegungsmelder dieser misst alle 6min die helligkeit und passt das ergebnis der letzten 8 messungen zusammen der wert 60 in meim fall ist schon ziemlich dunkel habe aktuell im 22:38uhr eine helligkeit von 69 muss die werte aber die nächste zeit erstmal regelmäßig nachschauen und mal grob dokumentieren das ich meine rules demnach besser anpassen kann