From eb4c5f22b850e41b1e2982f9b71d814c9927386b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sat, 9 May 2026 09:45:15 +0200 Subject: [PATCH] =?UTF-8?q?=C3=96ffnen=20wird=20verhindert,=20wenn=20es=20?= =?UTF-8?q?mehr=20als=206=20Stunden=20abgelaufen=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/const.cpython-312.pyc | Bin 0 -> 2029 bytes .../__pycache__/coordinator.cpython-312.pyc | Bin 50581 -> 51189 bytes .../custom_components/sternwarte/const.py | 1 + .../sternwarte/coordinator.py | 20 +++++++++++++++++- 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 sternwarte-homeassistant-integration/custom_components/sternwarte/__pycache__/const.cpython-312.pyc diff --git a/sternwarte-homeassistant-integration/custom_components/sternwarte/__pycache__/const.cpython-312.pyc b/sternwarte-homeassistant-integration/custom_components/sternwarte/__pycache__/const.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4b7df885da947e2feec72f09024e641e85817a0c GIT binary patch literal 2029 zcmZuxOHU(55N?A3KQMk^V`CdIEH4A*wMw!Z?MAWe@val_Se`K~EtHPs9>9`4W6g|% z*prVra?46len5UpE|$n))F-5558NW{Er%%GZI2B~Mxv;%`m1lMtH$-4&*uU3`SQ%XMjV$jKL_L zg)tn4^Ed+Icn&6T6ee*DF5r2%h~sbxCzKRUzM@6q1-Q)7B1cPbg`*Tl%kUXTD;zz8 zs~oLzvQ5tS=w8haj+~jD7qYO-Qw9C;R+~R1Tqj|W^(E&p@hw10< z=X08Bm^IZjQWu(@l1xQcuWP!g>^`s#ryaywQ&r8ZnGH&$aH7yqYfa)YhD_qT(hQS0 z+nR0?SG#5y*P4!rXQcJsckuFX_u%svy9c`m2m23Ys!UvlcC8)m@4tMY69f;7)HJ@A zspq8L<#Yawf8FTONfS3R>Q@TxG!^33+KP&FO}ikTdQ&r$zV9|nt=)HBZS7jok){&& zz`M90GxerY(?>E9LotzB>zIvttvL!inXt|(AVHxd7v(cl5yb+^i6=sZc-Sf8qEC;@ z;we4$@?%~UCZQ+kN1`O;iJKGH1xVoWu~-&LgY1^}LqolMntd#u6iaUg1Uf9UV>~5D za#pTN#HrUBD)HLN*E@U*=cuCk!WmhhXQc*67 zCE~Mtk9g%aNy@zy^3@{&@#<%WBz}Jq8AuITIo1M_w8MgoO4+Jh%w>;|%_*gK$P_|Y zt0P1_2wil{j;CtjNU2qvfn5or;w_ zna&G^Z1sq}@mLrko;5tdQ0T5sl`S`?P>f zvzsy^4I+gCnX^f`BOzNEwumg)aq0g)3O&Y#??>p-8ls;>oJRE|Gi-6_DP~rfS!HIO znN4Q4nAu?_L(Q+?6Sd&)Z${fIbEUNuy0aR53uYRssa)!O+nv`tbg8sZU2C;9RiP{L ze3W)xXM1zEeM4NYS{mC-U+E&1X1mPTqV}(Ghr>a@(nqlJ5ybA@k?!REbg1jLxCz9& zzI%V7J8k(FnF&%eyU+uH`*@-UqSidMb5?4*2NtYYyaysyWUdE7)=Z-7wZhRJ2wI6` z55%lKJv7_(Tfyk9>w~*Dv(ok6hnE;7vdnV&K35<3^J%XB1y#RKP)_jnvpcYCB{l}` zhLxm@(5-L>(pG$pmUX*!2i6`(9}yz7rXQ#utt`9b*|yw;Ct&;A8OL3H5& literal 0 HcmV?d00001 diff --git a/sternwarte-homeassistant-integration/custom_components/sternwarte/__pycache__/coordinator.cpython-312.pyc b/sternwarte-homeassistant-integration/custom_components/sternwarte/__pycache__/coordinator.cpython-312.pyc index 7485788cfc76f927b83ee4bbc274c86e30a7ec75..88c6fa1d5e0ef2731c88ec42477d28456f32b770 100644 GIT binary patch delta 6460 zcmb7I33QX!mDbbp%d#!o*s{DL%km-%FsreN7w~QzFF;rfCK*|=ei?x*Iq#PPb{zyE zsR=Q`@P-0m(vUW^!_bou#5Cy%!$6Y^LudjfG#E{LO3!f8aXUFyW6|(z5Czy_P?n5a*rzJqFx`VfZt;`@44Bby)nte^OiM%w00J>77&Fq)*0_v z*jd8JX3#S@o^&ew3a9pbqZ&~a|)+H%n*xGp!>KgJXRVU zBq@Z%vVTw(n5HjVUejz}S+%sLdUa!sy{TfYy`rwhzOtrjS#$Nu;BS>DG$fzB6j4jE z*{>t4)3ZPbwE%=7M6aLr*xk;MV3+(pD$=}Qif#rG%3!oNk7dp>>+E*7*X_64=LTuy zuL&t-OQZABn^44Z07(g8-bPno$7+Dya^SMERnaM=Dfm%zmzuP&>V;O)#$3}J8$={? z0oe4k3W`vqL+bIi+dV#qljdQEszdbCY9y<{W~{x-K_$`dbofQTyHljKI8=wQ6vqWe zSC{B@(izy$xIm8Irlw77PJFJwZCb?w>vCDMLty>!@#L}K%kllHfCKs0B0P!Ej?jVN z1h7R>4c5nv;5tJ(x8!sAXs5$Jp`MPOpMe>>Sn(-)8?Moei@+(8?Gs&@`9 zHLEkllAWx@)Jh&>Cr$rN*0N(6mdd{c0`Mu97U7U!t=b(Px(j;gQ}Phs4ZE>p5Fn)C z6p|Y1U_Bb8H?Jf6SclmKf#YtUU)Xz68s2 z>d4R7!JOQ`#R3#ioCYbe{^=>>^wYE6QEq}mK+*H1WwVNH(>-Ki=O(ak7|1bqO+oZrL_V%N&rHUlIXYly8T_H2PT2wb7B!JCf;Se8 zC=<9dC`L($E1bWY{k|kQrwy4<6nz(goAI!ql+tCwH!v=}%L3(z!5yWQDg%0Y)rbzT zb|ebWrll3^`jQfJBQz$7d{|mRc?}VQz2*ONDcw}^+yZSmS^5Bg+b(6VBSa>Z4k z3Tbg-xU*6Bm>p-KZqv{UQ2Zsm^g0YoQFs|TdKZl;jOWgpyb8_1>{Sa$)*+OuqMxGN zYY2R1Q>3xp)m88nKC^m0M3-Bu{bM}b7S1?~j8l1buBjod?Bg{HI8O>oYbnd)x|Fh- zhgnd@d4S%0ZuF5BJ$Zt?(USGB0M5&eouU&3TtWfz*Qjf4EMyJa)}nyd*PfWkwX0}7 zP=wS@pH~bC?GA6d=$Uf%P{=Rgo4=T}voq@|ftR!%(Q{snyvv%|8?6iSQA~KTLwcv^ zarD?FvEAo&N>f(hS7=WOpU~{}X=DR?bbTpg5&i3LsRK*U5{={$#V+||^R2oWE%+Wn z4?-`(q}_+jiN)fcK&SC($!izHCT=%=m_jjCe3Bl~SwpFh(r0mG2Y~KaI2exXa~M+i zhE+qi{K-Y4KLGR=bKB2uGHP(kdV?DrEvi{zS3ZhV|Bi4IVR8t=HXg??f0UR?cC%bD z?9ceHKly=eM%vF;%b!rNdJUVFhIx$ z{{Qbq+&PpRfG0-|ME{Akafi{*p*bln!NFS!g=%bp&u&U12ZO)aRHClu>(YP(6HAAy z8`8IXL^8DTp1VZq*)4MdOMiYwY{~=ta=(uK+t!)m za&+wc^ZBaOJ{>#vQX-4~{#8xXAlZI?%zpceiR|(I#qu23JN;&o7M{V~{+XZ(O|9K& zW{w^$4ZvLg3Msjp3TdCUZfa| z8Tbju7(o5NAYk;sH-J$C-vUMs3~?+5)bUZ>Kq1tHfvX(L05t>qI4)w346f8M@11XU9_zd| zyJ~25)hEX4opm?jk}k((4JW6+sz0Q^mOST5@|tY58qzD(y)dX9YGD#p^xMZoGg{`ZB7!t@3uEtiTVDr;F60iuL+A8_r^+XcL z5w066(s3*_p9J!R(1QAGY~4&EftkY1WSQ@?c_c7f_-uY^_cZRQD6)!YCIha*-|<83DPp z$VHA^CZO``8cOw#H9{)LqaC*TE)s z>1}HgLkg5CX`vRL1wO{S(?V=aeCII8Bfq$&4BSI50y(v#N22MdJPsii03JrhgPnYd zRl~c9!`mUs;d>4eK7xeNa(LYevOM7qIh<@?Je@|0gMT>v7709t<_VOinekAk%Mhj^m{7R78SVmLC^l#{+7hnY zkWtMam_jPaPdUXmv13n(<~}p$6gUN~MRxvvrGC=q^T^_Ah$1j1L#E(bkT$F(q;h-x zV;XtCT7I42@+NFjQ~u>ana2(JLZ8ytm%g!+5vQSAFE!ZCz55#B=hM}%J>oJKf<@IJyv z2v-n3M7Ru#r;w9@-(mYa0?$}@0)uxueo2xa9)_@a3tg`rtvSt;zU0~5f-d;*#HI3veOP0n!ar1LowldlXIzo|lyQ|yZO+~w%V*I2_f|mEn zh`@tD2@~I6-9oL<9}+r!5Z)yIs!nky$ZzC2cwcYyb-)3p^|+{u#}ph>$jVkAb3`d{ zcYDOev<--GZqoNz^aoW9aYXr*VhY^iO^bq5lOaXb4PENaq-(m=AzkXhMW5)hw+UYe XG@2ML=a#&)Y$&(!O9+cZp4R^WAA@+L delta 5924 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 + ): + LOGGER.warning( + "Veraltete Öffnungsplanung verworfen: open_at=%s now=%s", + open_at.isoformat(), + now.isoformat(), + ) + self.schedule.open_at = "" + self.schedule.open_done = True + self.schedule.open_power_on_at = "" + changed = True + open_power_on_at = None + open_at = None + if open_power_on_at is not None and not self.schedule.open_done and now >= open_power_on_at: if self._is_roof_open(state): LOGGER.info("Automatisches Öffnen bereits erfüllt") @@ -645,7 +664,6 @@ class SternwarteDataUpdateCoordinator(DataUpdateCoordinator[SternwarteState]): ) changed = True - open_at = self._schedule_datetime(self.schedule.open_at) if open_at is not None and not self.schedule.open_done and now >= open_at and not self.schedule.open_power_on_at: if self._is_roof_open(state): LOGGER.info("Automatisches Öffnen übersprungen, Dach ist bereits offen")