Seite 1 von 3

Zeitschaltung nachträglich Astro-Binding

Verfasst: 4. Jan 2021 17:41
von MrCrashy
Hallo,

Ich habe es endlich geschafft und mit einem Selection Widged mehrere Zeitschaltungen meiner Lampe zugewiesen. Ich kann zwischen vier Uhrzeiten wählen und noch den "Automatik-Modus", wo die Lampe normal bei Sonnenuntergang eingeschaltet werden soll. Jetzt ist mir allerdings aufgefallen, dass wenn ich z.B. die Zeit "20 Uhr" ausgewählt habe und ich doch lieber den "Automatik-Modus" auswählen will, dann schaltet sich die Lampe nicht ein, wenn der Sonnenuntergang schon war. Dieser ist ja circa 16:30 Uhr. Der Schalter für den Sonnenuntergang wurde so verwirklicht:

Code: Alles auswählen

rule "Sonnenuntergang"
when 
    Channel 'astro:sun:home:set#event' triggered START
then 
    Cinema_Night.postUpdate(ON)
end 

rule "Sonnenaufgang"
when 
    Channel 'astro:sun:home:rise#event' triggered START
then 
    Cinema_Night.postUpdate(OFF)
end 
Meine Rules für die Lampe sehen so aus:

Code: Alles auswählen

rule "Stehlampe automatisch an 17:00 Uhr"
when 
    Time cron "0 00 17 ? * * *"
then 
    if(Stehlampe_Timer.state == 1){
        gHUE_Lamp_Childsroom.sendCommand(ON)
        logInfo("Beleuchtung", "Stehlampe im Kinderzimmer wurde um 18:00 Uhr eingeschaltet")
    }
end 

rule "Stehlampe automatisch an 18:00 Uhr"
when
    Time cron "0 00 18 ? * * *"
then 
    if(Stehlampe_Timer.state == 2){
        gHUE_Lamp_Childsroom.sendCommand(ON)
        logInfo("Beleuchtung", "Stehlampe im Kinderzimmer wurde um 18:00 Uhr eingeschaltet")
    }
end

rule "Stehlampe automatisch an 19:00 Uhr"
when
    Time cron "0 00 19 ? * * *"
then 
    if(Stehlampe_Timer.state == 3){
        gHUE_Lamp_Childsroom.sendCommand(ON)
        logInfo("Beleuchtung", "Stehlampe im Kinderzimmer wurde um 19:00 Uhr eingeschaltet")
    }
end

rule "Stehlampe automatisch an 20:00 Uhr"
when 
    Time cron "0 00 20 ? * * *"
then 
    if(Stehlampe_Timer.state == 4){
        gHUE_Lamp_Childsroom.sendCommand(ON)
        logInfo("Beleuchtung", "Stehlampe im Kinderzimmer wurde um 20:00 Uhr eingeschaltet")
    }
end

rule "Stehlampe automatisch an bei Sonnenuntergang"
when 
    Item Cinema_Night changed from OFF to ON
then 
    if(Stehlampe_Timer == 0){
        gHUE_Lamp_Childsroom.sendCommand(ON)
        logInfo("Beleuchtung", "Stehlampe im Kinderzimmer wurde bei Sonnenuntergang eingeschaltet")
    }
end
Jetzt stellt sich mir die Frage wieso sich das Licht nach dem Sonnenuntergang nicht einschaltet, wenn man es auch erst nach dem Sonnenuntergang auswählt. Habe es mit "received command" und mit "changed from .. to .." ausprobiert, nichts funktioniert.
Und da ich das Gefühl habe, dass man die ganzen Rules bestimmt auch kürzer gestallten kann, würde ich mich sehr über Tipps freuen.

Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 4. Jan 2021 22:04
von udo1toni
Wenn Stehlampe_Timer ein Item ist, musst Du mit .state arbeiten, wie in den anderen Rules auch.

Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 08:54
von MrCrashy
Das habe ich probiert. Es funktioniert leider auch nicht. Ich vermute das Problem liegt daran, dass die Rule ja getriggert werden muss. Und der Schalter "Cinema_Night" triggert ja nur einmal, wenn er seinen Status ändert. Ich muss irgendwie die Rule triggern, wenn ich im Selection Widget die Stellung "Sonnenuntergang" auswähle. Danach müsste ja dann geprüft werden ob der Schalter "Cinema_Night" auf "ON" steht. Ist das richtig? Wie kann man so etwas triggern?

Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 09:44
von udo1toni
Na indem Du das entsprechende Item als Trigger einträgt... received command ist der richtige Trigger.

Gesendet von meinem SM-G973F mit Tapatalk


Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 09:48
von MrCrashy
Also zum Verständnis: Mit dem "received Command" ist die Rule die ganze Zeit aktiv? Also dass ich nach Sonnenuntergang die Rule aktivieren kann und das Licht sich direkt einschaltet?

Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 09:54
von Darkwin101
Nein eine neue Regel die auf deine Uhrzeitauswahl reagiert meinte udo1toni bestimmt

Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 10:08
von udo1toni
Also, grundsätzlich kannst Du die RuleS so gestalten, wie Du das gemacht hast. Du hast dadurch halt ein ziemliches Kuddelmuddel an Rules für eine Aufgabe.
Damit die Automatik auch greift, wenn es schon zu spät ist, brauchst Du dann halt eine Rule, die bei Änderung der Auswahl prüft, ob die Bedingungen erfüllt sind (also Automatik und Nacht aktiv) und gegebenenfalls entsprechend reagiert.

Gesendet von meinem SM-G973F mit Tapatalk


Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 10:10
von MrCrashy
Ich werde es nochmal Probieren. Du hattest gerade aber von "Kuddelmuddel" geschrieben. Wie kann man sowas denn kürzer gestalten?

Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 10:14
von udo1toni
Na ja, halt mit einer Rule... auch da gibt es verschiedene Ansätze. Ist aber etwas schwierig vom Handy aus... vielleicht denke ich dran, wenn ich vom Dienst zurück bin...

Gesendet von meinem SM-G973F mit Tapatalk


Re: Zeitschaltung nachträglich Astro-Binding

Verfasst: 5. Jan 2021 10:17
von MrCrashy
Das wäre sehr freundlich. Habe nämlich die Sorge, dass das System "träge" wird, wenn ich so weiter mache.