Seite 1 von 1
Rechnen mit Zeiten
Verfasst: Fr 20. Okt 2023, 17:38
von Stephan1965
Hallo,
Ich würde mir gerne einen bestimmten Zeitpunkt für eine Automatisierung machen:
Basierend auf dem jeweiligen Sonnenaufgang soll die Automation mit einer zusätzlichen Verzögerung von x Minuten ausgelöst werden. Und dann soll noch, je nach Anwesenheitsstatus der Bewohner eventuell noch eine Verzögerung hinzugefügt werden:
Dusk + Verzögerung y Minuten + Verzögerung (Bewohner sind weg) x Minuten
Und bei Sonnenuntergang soll das dann entsprechend anders herum sein. Hier soll dann entsprechend vor dem Sonnenuntergang ausgelöst werden. Also eine negative Verzögerung. 
Dawn - Verzögerung y Minuten - Verzögerung (Bewohner sind weg) x Minuten
Mir ist leider nicht klar, wie ich das bewerkstelligen soll. Rechnen mit Zeiten habe ich leider noch nicht verstanden. Vielleicht könnte mir da jemand auf die Sprünge helfen?
Gruß
Stephan
Re: Rechnen mit Zeiten
Verfasst: Fr 20. Okt 2023, 18:04
von Jim_OS
Ganz spontan ohne viel Helfer & co.: 
Ha_Auto_Sun.png
Versatz bei Sun: An optional time offset can be given to have it fire a set time before or after the sun event (e.g., 45 minutes before sunset). A negative value makes it fire before sunrise or sunset, a positive value afterwards. The offset needs to be specified in number of seconds, or in a hh:mm:ss format.
Bei Bedingungen dann z.B. die Entität die den Anweisenheitsstatus feststellt, bzw. das was Du dafür nutzt. Für den zusätzlichen Versatz bei dem Anwesenheitsstatus musst Du dann mal schauen ob Du das mit einer weiteren Automatisierung, oder einen Script lösen kannst/willst. Aktion halt das was dann passieren/soll.
Auch per HA Script und Sequenz wären ja Verzögerungen möglich. Hier ein Beispiel von meiner Video-/Türklingel und deren Live-Stream wenn jemand klingelt hat. Nach 30 Sekunden wird über das HA Script der HA Mediaplayer Stopp Dienst aufgerufen und der Live-Stream auf meinen Nest Displays beendet.
HA_Script_Sequenz_Verzögerung.png
D.h. viele Wege führen nach Rom
und vielleicht wäre es auch hilfreich zu wissen was genau über diese Automatisierung dann passieren soll. Dann könnte man dazu ggf. auch noch mehr sagen und/oder andere Vorschläge machen.
VG Jim
Re: Rechnen mit Zeiten
Verfasst: Sa 21. Okt 2023, 14:37
von Stephan1965
Hallo Jim,
ich will die berechneten Zeiten für die Rollladensteuerung benutzen. Die ca. halbe Stunde Verzögerung morgens, bzw. etwa eine halbe Stunde vorher am Abend, aus WAF-Gründen.
Die Verzögerung wegen Abwesenheit soll bei den Rollladen im Erdgeschoß gemacht werden als Abschreckung von Fremdpersonen. Ich hatte dies in meiner auf FHEM basierenden Haussteuerung so und würde das gerne jetzt auch wieder einrichten.
Und irgendwie muss auch rechnen mit Zeiten möglich sein.
Das wollte ich auch einfach wissen.
Re: Rechnen mit Zeiten
Verfasst: Sa 21. Okt 2023, 15:10
von Jim_OS
Ich glaube @Osorkon hatte hier schon mal einiges zum Thema Rollladensteuerung gepostet und sofern ich mich richtig erinnern kann, da auch irgendwelche Zeitsteuerungen drin. Siehe z.B. hier: viewtopic.php?t=393 --> Musst Du einfach mal schauen/suchen.
Wenn es um eher individuell angepassten YAML-Code, incl. Helfer & Co. geht, ist @Osorkon da sicherlich fitter drin als ich das bin und der wird Dir bestimmt helfen können. 
VG Jim
Re: Rechnen mit Zeiten
Verfasst: Sa 21. Okt 2023, 22:40
von Osorkon
Ich bin bin nicht sicher was genau @Stephan1965 umsetzen möchte. Bzw. warum er unbedingt irgendwas ausrechnen will.
Das was @Jim_OS bereits vorgeschlagen hat, ist glaube ich bereits die richtige Richtung.
Zum Verständnis @Stephan1965:
Du möchtest die Rollläden in Abhängigkeit vom Sonnenstand mit positiven bzw. negativen Offset steuern. Zusätzlich soll ein zusätzlicher offset berücksichtigt werden, wenn keiner Zuhause ist.
Also als Beispiel beim Sonnenaufgang.
Wenn jemand zuhause ist: Sonnenaufgang + 10min
Wenn keiner Zuhause ist: Sonnenaufgang + 10min + 10min
Das kannst Du einfach wie von @Jim_OS über den Sonnen Auslöser realisieren.
Die Anwesenheit wäre dann eine Bedingung. Hier mal ein BSP. Automatisierung.
Sonnenaufgang + 10min als Auslöser -> ID: anwesend
Sonnenaufgang + 20min als Auslöser -> ID: abwesend
Dann wird geprüft Ob die Bedingungen ID und Anwesenheit zutreffen.
Wenn die Zone Home >0 -> Anwesend, fahren die Jalousien um Sonnenaufgang + 10min hoch.
Wenn die Zone Home <1 -> Abwesend, fahren die Jalousien um Sonnenaufgang + 20min hoch.
Code: Alles auswählen
description: ""
mode: single
trigger:
- platform: sun
event: sunrise
offset: "00:10:00"
id: anwesend
- platform: sun
event: sunrise
offset: "00:20:00"
id: abwesend
condition: []
action:
- choose:
- conditions:
- condition: trigger
id:
- anwesend
- condition: numeric_state
entity_id: zone.home
above: 0
sequence:
- service: cover.open_cover
data: {}
target:
entity_id: cover.jalousie
- conditions:
- condition: trigger
id:
- abwesend
- condition: numeric_state
entity_id: zone.home
below: 1
sequence:
- service: cover.open_cover
data: {}
target:
entity_id: cover.jalousie
Gruß
Osorkon
Re: Rechnen mit Zeiten
Verfasst: So 22. Okt 2023, 11:50
von Osorkon
Bezüglich Berechnung der Uhrzeit, als Bsp. Sonnenaufggang + 1h.
Das Template dazu:
Code: Alles auswählen
{{ (as_timestamp(states('sensor.sun_next_rising')) + 3600) | timestamp_custom('%H:%M') }}
Die Ausgabe erfolgt im Format HH:MM
Diese Template kannst u jetzt z.B. als Auslöser verwenden.
Nach de Motto, wenn Aktzelle Uhrzeit = berechnete Uhrzeit.
Code: Alles auswählen
trigger:
- platform: template
value_template: |
{{now().strftime('%H:%M') == (as_timestamp(states('sensor.sun_next_rising')) + 3600) | timestamp_custom('%H:%M') }}
Gruß
Osorkon
Re: Rechnen mit Zeiten
Verfasst: Mo 23. Okt 2023, 19:38
von Stephan1965
Hallo,
ich wollte in einem Helfer die Zeit berechnen und davon abhängig dann eine Automatisierung für die Rollläden machen. Und es interessiert mich auch, wie so etwas in HA gemacht werden kann. Daher schon mal vielen Dank @Osorkon
Den Vorschlag von @Jim_OS ist natürlich auch eine Möglichkeit, um an das Ziel zu gelangen.
Ich habe das mal testweise für einen Rollladen umgesetzt:
Code: Alles auswählen
alias: Rollo Eingangsflur runter bei Sonnenuntergang
description: ""
trigger:
- platform: sun
event: sunset
offset: "-30"
- platform: time
at: "22:30:00"
- platform: sun
event: sunset
offset: "-60"
condition: []
action:
- if:
- condition: state
entity_id: input_boolean.bewohner_sind_weg
state: "off"
then:
- if:
- condition: time
after: "22:29:00"
- condition: sun
after: sunset
after_offset: "-30"
then:
- if:
- type: is_open
condition: device
device_id: ef6fe5144bc17658a149c884eb4e29bd
entity_id: 139002d0625a7bfc08818582c365034b
domain: binary_sensor
then:
- device_id: 29470f5d52c326abf26dda49f9897756
domain: cover
entity_id: 97db183c8bb5dd8a2702d429a1b2a48f
type: set_position
position: 40
else:
- device_id: 29470f5d52c326abf26dda49f9897756
domain: cover
entity_id: 97db183c8bb5dd8a2702d429a1b2a48f
type: close
else:
- if:
- condition: sun
after: sunset
after_offset: "-30"
then:
- if:
- type: is_open
condition: device
device_id: ef6fe5144bc17658a149c884eb4e29bd
entity_id: 139002d0625a7bfc08818582c365034b
domain: binary_sensor
then:
- device_id: 29470f5d52c326abf26dda49f9897756
domain: cover
entity_id: 97db183c8bb5dd8a2702d429a1b2a48f
type: set_position
position: 40
else:
- device_id: 29470f5d52c326abf26dda49f9897756
domain: cover
entity_id: 97db183c8bb5dd8a2702d429a1b2a48f
type: close
else:
- device_id: 29470f5d52c326abf26dda49f9897756
domain: cover
entity_id: 97db183c8bb5dd8a2702d429a1b2a48f
type: close
mode: single
Ich muss jetzt mal in den nächsten Tagen testen, ob das auch so funktioniert.
Gruß
Stephan