Seite 1 von 2

Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 12:13
von DJFlaxi
Hallo zusammen,

ich möchte gerne den Rollo im Wohnzimmer so steuern, dass dieser runter gefahren wird, wenn der eine Aktion mit der Harmony gestartet wird bei dem der Beamer eingeschaltet wird und der Rollo dann wieder hoch fährt, wenn der Beamer ausgeschaltet wird und die Sonne noch nicht untergegangen ist.

Leider stellt mich das Ganze vor einem Problem.

Rollo runter beim Beamer anschauen funktioniert super:
Rollo.rules

Code: Alles auswählen

rule "Rollo WZ runter bei Beamer"
when
    Channel "harmonyhub:hub:HarmonyHub:activityStarted" triggered KinoTV or
    Channel "harmonyhub:hub:HarmonyHub:activityStarted" triggered KinoFireTV or
    Channel "harmonyhub:hub:HarmonyHub:activityStarted" triggered KinoAppleTV
then
    if (RolloWZRechtsRollerControl.state == 0.0)
    if (RolloWZLinksRollerControl.state == 0.0)
    logInfo("Harmony", "Beamer an -> Rollo runter")
    sendCommand(RolloWZRechtsRollerControl, DOWN)
    sendCommand(RolloWZLinksRollerControl, DOWN)
end
allerdings funktioniert das hochfahren der Rollos nicht wie gewünscht.
Es fährt der Rollo immer hoch, wenn eine Aktion genutzt wird bzw. ausgeschaltet wird.
Ich möchte aber, dass die Rollos nur hochfahren, wenn die Sonne noch nicht untergegangen ist und nicht immer.

Hier die rule, die ich verwende:

Code: Alles auswählen

rule "Rollo WZ rauf bei Beamer beenden"
when
    Item HarmonyHubCurrentActivity changed to PowerOff or
    Item HarmonyHubCurrentActivity changed to Fernsehen or
    Item HarmonyHubCurrentActivity changed to AppleTV or
    Item HarmonyHubCurrentActivity changed to Wii or
    Item HarmonyHubCurrentActivity changed to Musik
then
    if (Astro_Sonnenuntergang.state == OFF)
    if (RolloWZRechtsRollerControl.state == 100.0)
    if (RolloWZLinksRollerControl.state == 100.0)
    logInfo("Harmony", "Beamer aus -> Rollo hoch")
    sendCommand(RolloWZRechtsRollerControl, UP)
    sendCommand(RolloWZLinksRollerControl, UP)
end
Kann mir einer sagen, wo hier der Wurm drinnen ist?

Vielen Dank für die Fachmännische Hinweise!

Liebe Grüße
DJFlaxi

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 12:25
von peter-pan
Was ist denn "Astro_Sonnenuntergang" für ein Item und wie wird es gesteuert ? Ggf die drei If's mit "and" verknüpfen

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 12:28
von DJFlaxi
Das sind einfache Switch-Items, die durch eine Rule gesteuert werden:

item
Switch Astro_Sonnenuntergang "Astro Sonnenuntergang" <sunset>
Switch Astro_Sonnenaufgang "Astro Sonnenaufgang" <sunrise>

rule

Code: Alles auswählen

rule "Sonnenaufgang Trigger"
when Channel 'astro:sun:local:rise#event' triggered START
then Astro_Sonnenaufgang.sendCommand(ON)
end

rule "Sonnenuntergang Trigger"
when Channel 'astro:sun:local:set#event' triggered START
then Astro_Sonnenuntergang.sendCommand(ON)
end

rule "Sonnenaufgang (Astro_Sonnenaufgang) schaltet Sonnenuntergang (Astro_Sonnenuntergang) aus"
when Item Astro_Sonnenaufgang changed to ON
then Astro_Sonnenuntergang.sendCommand(OFF)
end

rule "Sonnenuntergang (Astro_Sonnenuntergang) schaltet Sonnenaufgang (Astro_Sonnenaufgang) aus"
when Item Astro_Sonnenuntergang changed to ON
then Astro_Sonnenaufgang.sendCommand(OFF)
end

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 12:53
von peter-pan
... es ist mir grad zu heiss, deshalb bin ich zu faul die Regel neu zu formulieren (da ich als Noob sowieso vieeel länger brauche), aber theortisch könntest du z.B Jetzt (now) mit Sunset vergleichen und natürlich noch deine zwei anderen Items.

Deine Regel könnte evtl. so aussehen:

Code: Alles auswählen

rule "Rollo WZ rauf bei Beamer beenden"
when
    Item HarmonyHubCurrentActivity changed to PowerOff or
    Item HarmonyHubCurrentActivity changed to Fernsehen or
    Item HarmonyHubCurrentActivity changed to AppleTV or
    Item HarmonyHubCurrentActivity changed to Wii or
    Item HarmonyHubCurrentActivity changed to Musik
then
    if ((Astro_Sonnenuntergang.state == OFF)  && (RolloWZRechtsRollerControl.state == 100.0) && (RolloWZLinksRollerControl.state == 100.0)) {
        logInfo("Harmony", "Beamer aus -> Rollo hoch")
        sendCommand(RolloWZRechtsRollerControl, UP)
        sendCommand(RolloWZLinksRollerControl, UP)
    }
    else logInfo("Harmony", "nix passiert")
end

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 13:22
von DJFlaxi
Danke erstmal.
Allerdings passiert jetzt genau das Gegenteil.
Die Rollos fahren garnicht mehr hoch.

Andere Idee?

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 13:28
von peter-pan
...? sind die Bedingungen für die IF-Bedingung erfüllt, also Astro-Status ist "OFF" und die beiden Rollershutter-Status sind 100 %.

Frage noch zu den Shutter-Items: Number oder Number:Unit (also UoM) ? Kannst du die mal posten ?

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 13:53
von DJFlaxi
Ok, habe den Fehler gefunden.
die beiden Rollershutter-Status waren nicht 100 % obwohl beide unten waren.

Jetzt klappt es super!

Danke Dir für Deine Hilfe!

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 13:56
von peter-pan
...freut mich :P , aber das mit dem Status ist doch merkwürdig, wenn beide Shutter unten waren und doch keine 100 % angezeigt wurden !?

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 14:06
von DJFlaxi
Ja, das stimmt.
Ich arbeite mit Shelly's 2.5 habe aber Funk-Rolladenmotoren. Da wird der Status nicht richtig gemeldet, da die Shelly's keinen Strom messen können.
Deshalb ist das bei mir ein "Spezialfall". Ich muss mir mir Regeln und Switche alles bisschen zurecht basteln.

Wie gesagt, mit Deiner Regel funktioniert es und das ist die Hauptsache.

Also Danke nochmal für Deine Hilfe!

Re: Rollo rauf - wenn Beamer beendet und Sonne noch nicht unter gegangen ist

Verfasst: 23. Jul 2020 14:53
von peter-pan
...hier noch die Version mit dem Zeitvergleich. Du hast ja auch das Astro-Binding im Einsatz und auch sicherlich das Item für den Sonnenuntergang aktiviert:

Code: Alles auswählen

DateTime  SonnenDatenSetStart "SetStart  Startzeit"   (gAstrotest) {channel="astro:sun:local:set#start"}
DateTime  SonnenDatenSetEnd   "SetEnd  Endzeit"       (gAstrotest) {channel="astro:sun:local:set#end"}
Dann kannst du direkt mit dem Datum vergleichen:

Code: Alles auswählen

rule "Rollo WZ rauf bei Beamer beenden"
when
    Item HarmonyHubCurrentActivity changed to PowerOff or
    Item HarmonyHubCurrentActivity changed to Fernsehen or
    Item HarmonyHubCurrentActivity changed to AppleTV or
    Item HarmonyHubCurrentActivity changed to Wii or
    Item HarmonyHubCurrentActivity changed to Musik
then
    if (now.isBefore(new DateTime(SonnenDatenSetStart.state.toString))  && (RolloWZRechtsRollerControl.state == 100.0) && (RolloWZLinksRollerControl.state == 100.0)) {
        logInfo("Harmony", "Beamer aus -> Rollo hoch")
        sendCommand(RolloWZRechtsRollerControl, UP)
        sendCommand(RolloWZLinksRollerControl, UP)
    }
    else logInfo("Harmony", "nix passiert")
end
Dann kannst du dir evtl. die anderen Rules, die dir die Flags setzen, sparen.