Datum als Zeitbedingung fehlt (Ferien, Sommer etc)

Was willst du damit machen?
Sommerzeit ist Ferienzeit. Keine Urlaubszeit!
Ich möchte ein HG programmieren, welches sagt:
WENN
Tag ist zwischen 01.08. und 01.10. ODER
Tag ist zwischen 01.11. und 01.12. ODER
Tag ist 24.12.
DANN aktiviere HG Ferien
(-> und lass die Rollo im Kinderzimmer zu :wink:

Warum interessiert es nicht nur dich?
Generell fehlt diese Funktion noch komplett…

2 Like

Da ist dieser Vorschlag etwas weiter gefasst, erfüllt aber denselben Zweck:

1 Like

Im Prinzip ja, würde mich aber schon über „kleine“ Fortschritte freuen. Also KEINE Verknüpfung nach irgendwohin, sondern einfach eine „Datum zwischen X und Y“ analog der Zeitfunktion.

2 Like

Du vermischt hier aber in der Logik Auslöser und Bedingung. Klar weiß ich was du möchtest, allerdings ändern sich die Ferientermine ja auch jedes Jahr und du musst diese manuell einmal im Jahr anpassen. Und dann kannst du einfach als Auslöser nehmen:
Wenn es der 1.8. ist, dann aktiviere HG Ferien.
Als Auslöser kannst du dann alle Startdaten der Ferien nehmen, dann sind alle Ferien mit einem HG abgedeckt(+Feiertage…).

Anschließend ein HG mit den Enddaten um HG Ferien zu deaktivieren…

Und dann kannst du im HG die Bedingung nutzen das die Rollos im Kinderzimmer nur hochfahren, wenn das HG Ferien aktiv ist = diese ausschlafen können.

Ein Zeitintervall kann kein Auslöser sein. Ein Zeitintervall ist immer eine Bedingung.

Und da sich Ferienzeiten jedes Jahr ändern, bringt dir dein vorgeschlagenes HG auch gar nichts. Du musst es jedes Jahr anpassen.

Mit weniger Aufwand kannst du auch einfach für jeden Ferienblock 2 HGs schreiben:
Sommerferien Start
Jedes Jahr am 1. August um 2 Uhr
Aktiviere HG Ferien

Sommerferien Ende
Jedes Jahr am 31. August um 22 Uhr
Deaktiviere HG Ferien

Und das passt du dann einmal jährlich zu Neujahr an.

Oder noch einfacher: Du tippst bei Ferienstart auf den Aktivier-Button deines Ferien HGs. Und am Ende der Ferien wieder.

Oder noooooch einfacher (wenn du Alexa hast): deine Kinder kommen aus der Schule und jubeln „Alexa, endlich Ferien!“ (was dein Ferien HG auslöst) und sagen betröpelt am Ende der Ferien „Alexa, morgen muss ich wieder in die Schule“.

3 Like

Nachtrag: dein Vorschlag geht übrigens schon, wenn du täglich dein HG aktivierst und nachts kurz deaktivierst.
Fan bin ich davon nicht, das soll kein best practice sein


(Ich hab jetzt irgendein HG genommen)

So in die Richtung werde ich es mal versuchen…
Nächstes HG-Projekt: Feiertage in Bayern.
Und nachdem Homee nicht rechnen kann, muss ich es wohl hart kodieren und jedes Jahr anpassen.
Damit am Feiertag auf das Rollo untenbleibt :wink:

1 Like

Das steht auf meiner To Do Liste ganz oben. Mein Ansatz ist, ein ical Kalender anzulegen, in diesem kommen die Tage an denen wir zu Hause sind, desweiteren ein Feiertagskalender.

Diese werden aus dem NR ausgelesen und entsprechende virtuelle Geräte (vermutlich ein Gerät mit je Mensch ein Attribut) im homee mit den entsprechenden Werten setzen.

Die HGs zur Steuerung der Rollläden berücksichtigen entsprechend diese Gerätewerte.

Leider der Umweg über NR. So ein Kalender wäre schon cool aber vermutlich der Use Case zu gering um es in homee direkt umzusetzen.

dafür nutze ich IFTTT. Event (Feiertag) im Google Kalender feuert einen Webhook zum homee.

Wenn du mehrere Kalender anbinden willst, ist IFTTT natürlich raus.

@whoami Nutzt du IoBroker? Dann muss es kein Umweg über Node Red sein…dafür könnte ich dir mein blockly senden…ich habe Feiertage, Wochenende und Urlaub in meinem Kalender als Trigger für die Rollos Steuerung

@annaeymnd danke für den Tipp, mein IFTTT free account ist leider schon ausgeschöpft :see_no_evil:
Aber wir nutzen ausschließlich die IOS Kalender.

@souly75: Cool, immer gerne. IO habe ich auch. In NR habe ich aktuell alles drin was mit homee extern kommuniziert.

Da es doch sehr sporadisch auftritt, dass die Kids mal zu Hause sind, will ich es mit dem iCal Kalender auslesen Node machen. Da können meine Frau und ich eintragen, wer mal zu Hause bleibt (KiTa zu, Schule zu, …).

@whoami
genau, ich mache das auslesen halt nur mittels meinem google kalender :wink:

hier, einmal als Block und einmal als code

<xml xmlns="https://developers.google.com/blockly/xml">
  <block type="schedule" id="G]@4S1s5j|ONQpmHk;i?" x="13" y="-487">
    <field name="SCHEDULE">3 0 * * *</field>
    <statement name="STATEMENT">
      <block type="controls_if" id="D_kOeg_VIA;/a~y{4BpG">
        <mutation else="1"></mutation>
        <value name="IF0">
          <block type="logic_operation" id="ciGU}%sms4o*b9q0dYHW" inline="false">
            <field name="OP">OR</field>
            <value name="A">
              <block type="logic_compare" id="5qz%$1P)eiqMtZH8^ufF">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="uZ@|U+mX_C/agOn[2Z$V">
                    <field name="ATTR">val</field>
                    <field name="OID">ical.0.events.0.today.Urlaub</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="VF#;|r9-6l0$wGZpWH5V">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
              </block>
            </value>
            <value name="B">
              <block type="logic_operation" id="/md4av~C1bXb.;%Q6Vvf" inline="false">
                <field name="OP">OR</field>
                <value name="A">
                  <block type="logic_compare" id="9izAhO8MVpyq/l:]#DbP">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="YL:0xNNB*q0SPS+h,uZM">
                        <field name="ATTR">val</field>
                        <field name="OID">feiertage.0.heute.boolean</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="sOXg%RmMf%2k`C$/HY2r">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_compare" id="-AMiWTU-ySpT`zb/r{4x">
                    <field name="OP">GTE</field>
                    <value name="A">
                      <block type="time_get" id="-3xe6ujk4PKQQmYo`*=A">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                        <field name="OPTION">wd</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id=":!u4ZU/T/eiO9X?ww:%t">
                        <field name="NUM">6</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO0">
          <block type="control" id="E%a~]YeO85Dy1SCBh]*7">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">homee.0.Homee-0.Homeegrams.187.active</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="logic_boolean" id="f-9?n6dRrOkd+drQI?z/">
                <field name="BOOL">TRUE</field>
              </block>
            </value>
            <next>
              <block type="control" id=";VS,rNQ=EH-Vy=C+N0^)">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                <field name="OID">homee.0.Homee-0.Homeegrams.128.active</field>
                <field name="WITH_DELAY">TRUE</field>
                <field name="DELAY_MS">2</field>
                <field name="UNIT">sec</field>
                <field name="CLEAR_RUNNING">FALSE</field>
                <value name="VALUE">
                  <block type="logic_boolean" id="zWwGx*=^JGR5[-P8(U[[">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
                <next>
                  <block type="telegram" id="%M_3F]5Hd4+x[2U}$svw">
                    <field name="INSTANCE">.0</field>
                    <field name="LOG">log</field>
                    <field name="SILENT">FALSE</field>
                    <field name="PARSEMODE">default</field>
                    <value name="MESSAGE">
                      <shadow type="text" id="ej`5_Nt@RUqiYD8[l0/i">
                        <field name="TEXT">Rollos hoch Wochenende aktiviert</field>
                      </shadow>
                    </value>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
        <statement name="ELSE">
          <block type="control" id="W!/N6/PW]^.Ki3/[ppU1">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">homee.0.Homee-0.Homeegrams.128.active</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="logic_boolean" id="?NK[y+JY/~}rVxvXieE!">
                <field name="BOOL">TRUE</field>
              </block>
            </value>
            <next>
              <block type="control" id="Kc^4rBw7N02k=5DC!F+q">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                <field name="OID">homee.0.Homee-0.Homeegrams.187.active</field>
                <field name="WITH_DELAY">TRUE</field>
                <field name="DELAY_MS">2</field>
                <field name="UNIT">sec</field>
                <field name="CLEAR_RUNNING">FALSE</field>
                <value name="VALUE">
                  <block type="logic_boolean" id="3/~~Bj-d_$lQL$7m])eG">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
                <next>
                  <block type="telegram" id="ga!)o)pPg1QFp9pK*M/}">
                    <field name="INSTANCE">.0</field>
                    <field name="LOG">log</field>
                    <field name="SILENT">FALSE</field>
                    <field name="PARSEMODE">default</field>
                    <value name="MESSAGE">
                      <shadow type="text" id="+G/+W7r0O?.MVl[pamqx">
                        <field name="TEXT">Rollos hoch Werktag aktiviert</field>
                      </shadow>
                    </value>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </statement>
  </block>
</xml>
2 Like

Sodala, ich hab mich heute mal dran gemacht.
a) HG (Kalender Feiertag (fix)

b) HG (Kalender Feiertag (variabel); den muss ich einmalig jedes Jahr anpassen)

c) HG (Kalender Feiertag Status)
grafik

Meine Rollo-HG müssen jetzt dann nur noch auf den Status abfragen

Ist vielleicht nicht die schönste, aber für mich erstmal die einfachste Lösung.

Das mit den Kindern und Alexa gefällt mir auch sehr gut.
Gekoppelt dann nocht mit VoiceMonkey und die Ferien können beginnen.

Gruß
Andi

1 Like