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

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

DJFlaxi
Beiträge: 27
Registriert: 16. Apr 2020 19:40
Answers: 0

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

Beitrag 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

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

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

Beitrag 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
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

DJFlaxi
Beiträge: 27
Registriert: 16. Apr 2020 19:40
Answers: 0

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

Beitrag 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

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

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

Beitrag 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
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

DJFlaxi
Beiträge: 27
Registriert: 16. Apr 2020 19:40
Answers: 0

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

Beitrag von DJFlaxi »

Danke erstmal.
Allerdings passiert jetzt genau das Gegenteil.
Die Rollos fahren garnicht mehr hoch.

Andere Idee?

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

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

Beitrag 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 ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

DJFlaxi
Beiträge: 27
Registriert: 16. Apr 2020 19:40
Answers: 0

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

Beitrag 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!

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

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

Beitrag 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 !?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

DJFlaxi
Beiträge: 27
Registriert: 16. Apr 2020 19:40
Answers: 0

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

Beitrag 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!

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

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

Beitrag 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.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten