Seite 1 von 1

Gruppenshutter runter fahren

Verfasst: 23. Mai 2022 16:35
von scotty
Hallo,

meine (von Udo übernommene) Regel zur Bedienung der Rollläden habe ich hier ja schon mehrfach erwähnt. Nun möchte ich einen Teil ( genauer gesagt die Terrassen links und rechts, beide als Gruppe 'gTerrasseShutters' zusammengefasst) Mittags um 12:15 runter lassen.
Die abgeleitete Rule habe ich bereits so formuliert:

Code: Alles auswählen

//------------------------------------------------------------------------
//    Rollladen Abwärts, Mittags (Montag bis Sonntag)
//------------------------------------------------------------------------
rule "Rollladen Mittags"
when 
    Time cron "0 15 12 ? * MON-SUN"

then
    logInfo("shutters", "Rollläden Terrassenansicht fahren um 12:15 Uhr auf 50%")
    gTerrasseShutters.allMembers.forEach[ k |       // Terrassenansicht
        if (k.name.contains("1") || k.name.contains("2")) 
            k.sendCommand(50)                   // Terrasse links und recht auf 50%
        else m.sendCommand(100)                   // Rest auf 100%
    ]
end
Ich weiß, dass der Code noch nicht perfekt ist. Die If-Abfrage ist eigentlich überflüssig, weil die Gruppe nur aus den beiden Terrassen-Rollläden besteht. Außerdem wäre es nicht schlecht, wenn auch noch ein Datum (also: von - bis) eingebaut werden könnte.

Im Voraus schon mal vielen Dank für die Unterstützung.

Re: Gruppenshutter runter fahren

Verfasst: 23. Mai 2022 16:49
von udo1toni
Na, der erste Schritt wäre, alles Unnötige wegzulassen:

Code: Alles auswählen

rule "Rollladen Mittags"
when 
    Time cron "0 15 12 ? * *"
then
    logInfo("shutters", "Rollläden Terrassenansicht fahren um 12:15 Uhr auf 50%")
    gTerrasseShutters.members.forEach[ k |                                       // Terrassenansicht
        k.sendCommand(50)                                                        // Terrasse links und recht auf 50%
    ]
end
Und in einem zweiten Schritt ergänzt Du den Zeitraum. Was stellst Du Dir da denn vor? Davon hängt ab, wie man das realisiert...

Re: Gruppenshutter runter fahren

Verfasst: 23. Mai 2022 17:12
von scotty
Genau, das meinte ich. Der Zeitraum ist variabel, weil die Rule immer nur dann auslösen soll, wenn wir in Urlaub fahren. Es ist natürlich schwierig zu sagen, was ich mir vorstelle. Das hängt von den Möglichkeiten ab. Grob geschrieben: Jeden Monatsanfang erscheint ein Fenster mit der Frage "Ist Urlaub geplant". Das Ergebnis wird in einer Variablen gespeichert, die anschließend von der Regel übernommen wird.
Das alles übersteigt allerdings, ehrlich gesagt, meine Fähigkeiten.

Re: Gruppenshutter runter fahren

Verfasst: 23. Mai 2022 17:57
von udo1toni
Na, dann ist es doch das Einfachste, die Rule täglich zünden zu lassen, aber als erster in der Rule zu prüfen, ob ihr im Urlaub seid:

Code: Alles auswählen

rule "Rollladen Mittags"
when 
    Time cron "0 15 12 ? * *"
then
    if(Urlaub.state != ON)
        return;

    logInfo("shutters", "Rollläden Terrassenansicht fahren um 12:15 Uhr auf 50%")
    gTerrasseShutters.members.forEach[ k |                                       // Terrassenansicht
        k.sendCommand(50)                                                        // Terrasse links und recht auf 50%
    ]
end
Nun hast Du einen Schalter, den Du umlegen kannst. Und weil wir ja faul sind ;) verknüpfst Du den Schalter mit einem Kalender. Im Kalender hinterlegst Du Deinen Urlaub vielleicht ohnehin :)

Re: Gruppenshutter runter fahren

Verfasst: 23. Mai 2022 18:44
von scotty
Ich komm aus dem staunen nicht mehr raus. Allerdings habe ich jetzt wieder etwas zum tüfteln...Kalender verknüpfen...auch mit dem externen Synology-Kalender? Denn dort hinterlege ich meine Termine, die wiederum mit Handy und Tablet verknüpft sind.

Re: Gruppenshutter runter fahren

Verfasst: 23. Mai 2022 20:33
von udo1toni
Solange es das ical Format ist und es einen offenen Port gibt, um auf den Kalender zuzugreifen, sehe ich keinen Grund, warum das nicht gehen sollte.