Wie bei Zeittrigger (sensor.sun_next_noon) eine Zeit abziehen

Hallo,

Ich möchte eine Automation zb. 2:15 vor dem Sonnenhöchststand starten.

trigger:
  - platform: time
    at: sensor.sun_next_noon

Habe online ein paar Varianten gefunden um Zeiten zu addieren usw. aber wenn ich mir das ganze in den Entwicklerwerkzeugen → Template ansehen scheint das Format von sensor.sun_next_noon nicht mit dem normalen Zeitformat zusammenzupassen auf dem gängige Beispiele basieren. Irgendwie sieht das sogar nach einem String aus.

{{ states(‘sensor.sun_next_noon’) }} → 2023-06-11T10:54:18+00:00
{{ now() }} → 2023-06-10 18:34:07.278447+02:00

Weiß jemand wie man das bewerkstelligen könnte?

Vielen Dank

Servus Mike,

wie du schon gesagt hast gibt es mehrere Varianten, ich hab es so umgesetzt:

{{ (as_timestamp(states("sensor.sun_next_noon")) - 7200) | timestamp_custom("%H:%M") }}

Falls es ne elegantere Methode gibt, lass ich mich gerne belehren :slight_smile:
Das Format kannst du noch anpassen. Hier die Doku dafür

hier meine Automation für mein Rollo:

alias: Rollo Steuerung
description: ""
trigger:
  - platform: sun
    event: sunrise
    offset: "00:30:00"
    id: morgens
  - platform: sun
    event: sunset
    offset: "-00:30:00"
    id: abends
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: morgens
        sequence:
          - service: cover.open_cover
            data: {}
            target:
              entity_id:
                - cover.balkontur
                - cover.wohnzimmer
      - conditions:
          - condition: trigger
            id: abends
        sequence:
          - service: cover.close_cover
            data: {}
            target:
              entity_id:
                - cover.balkontur
                - cover.wohnzimmer
mode: single

Einfach platform: sun nehmen hab da Anfang der Woche auch mit template rumprobiert und dann auf einmal die Sonne bei den triggern gesehen.
image

Edit:
Sorry nicht richtig gelesen, da kann man nur Sonnenaufgang und Sonnenuntergang steuern.

LG
Tobi

Danke, ja genau, das hab ich auch gemerkt … meiner Meinung nach etwas blöd in Home Assistant gelöst weil die “Sun” Einbindung ja mehr als die beiden Werte bereitstellt.

Die obige Lösung gibt zwar die Zeit korrekt aus, allerdings lässt sich das Template in der platform: sun ja nicht verwenden weil es dafür die platform: template braucht.

Hab das ganze jetzt so hinbekommen und nach einem kurzen Test funktioniert es auch. Muss es aber noch die Tage Testen ob der Trigger wirklich nur jeden Tag 1x korrekt ausgelöst wird.

trigger:
  - platform: template
    value_template: >-
      {% set settime = states('sensor.sun_next_noon')|as_timestamp|int - 6300 %}
      {% set timenow = now().timestamp() | int %} {{ settime < timenow }}
condition: []

Verschiebt mir den Trigger Sonnenhöchststand um 6300 Sekunden = 1h:45min

(Grund ist übrigens weil ich meinen Geschirrspüler / Waschmaschine gemessen habe und den höchsten Verbrauch den die Geräte haben ungefähr auf den Sonnenhöchststand legen möchte weil meine Balkon-PV-Anlage da statistisch gesehen am meisten produzieren sollte)

1 „Gefällt mir“

Das kannst Du auch anders lösen. Der PV-Forecast von Solcast gibt mit der Entität sensor.solcast_peak_time_today den Sonnenhöchststand PV-technisch aus.

Beide Lösungsansätze funktioniert auch an bedeckten Tagen, von daher würde ich das über die PV-Leistung steuern und nicht über “wackelige” Werte.

Irgendwie so, wenn 30 Min Vollgas anliegt, führe das aus was ich will…

EDITH: Und bei Solcast gibt es auch noch den ein oder anderen Wert, den man heranziehen könnte. Es ist und bleibt ein Forecast, zumindest bei mir passt das bis auf 10% Abweichung.

Der von heute:

Und die vorhandenen Sensoren:

Danke, ja das hab ich mir sogar selbst schon überlegt.

Mein Problem mit dem Forecast ist, dass sich der täglich oft mehrfach ändert und der Peak da auch mal eben ein paar Stunden rumwandern kann. Das ganze müsste ich dann einmal um eine bestimmte Uhrzeit abgreifen.

Hab mir darum gedacht, dass ich einfach den Sonnen-Peak verwende der zu 95% schon immer stimmen wird.