Guten Morgen zusammen,
kann mir jemand evtl. helfen und sagen warum mein folgender Code nicht wirklich funktioniert?
Er hat während der Winterzeit natürlich die richtigen werte ausgegeben.
Jetzt jedoch wir mir eine Stunde zu viel als Ergebnis gegeben.
Ich finde das Problem jedoch leider nicht.
- platform: template
sensors:
feierabend:
unique_id: feierabendid
friendly_name: "Feierabend"
value_template: >
{% set arbeitsbeginn = state_attr('input_datetime.arbeitsbeginn', 'timestamp') %}
{% set arbeitstag_dauer = states('input_number.arbeitstag_dauer') | float %}
{% set kurzpause = states('sensor.summe_kurz_pausen') | float %}
{% set gesetzliche_pausen = 0 %}
{# Pausenregelung: #}
{% if arbeitstag_dauer > 6 and arbeitstag_dauer <= 9 %}
{% set gesetzliche_pausen = 30 %}
{% elif arbeitstag_dauer > 9 %}
{% set gesetzliche_pausen = 45 %}
{% endif %}
{# Dynamische Sommerzeit-Berücksichtigung: #}
{% set is_sommerzeit = now().timetuple().tm_isdst > 0 %}
{% set endzeit = arbeitsbeginn + arbeitstag_dauer * 3600 + (gesetzliche_pausen + kurzpause) * 60 %}
{% if is_sommerzeit == false %}
{% set endzeit = endzeit - 3600 %}
{% endif %}
{{ endzeit | timestamp_custom('%H:%M') }} Uhr
Vielen Dank!!!
Habs erstmal gelöst!
- platform: template
sensors:
feierabend:
unique_id: feierabendid
friendly_name: "Feierabend"
value_template: >
{% set arbeitsbeginn = state_attr('input_datetime.arbeitsbeginn', 'timestamp') %}
{% set arbeitstag_dauer = states('input_number.arbeitstag_dauer') | float %}
{% set kurzpause = states('sensor.summe_kurz_pausen') | float %}
{% set gesetzliche_pausen = 0 %}
{# Pausenregelung: #}
{% if arbeitstag_dauer > 6 and arbeitstag_dauer <= 9 %}
{% set gesetzliche_pausen = 30 %}
{% elif arbeitstag_dauer > 9 %}
{% set gesetzliche_pausen = 45 %}
{% endif %}
{# Dynamische Sommerzeit-Berücksichtigung: #}
{% set is_sommerzeit = now().timetuple().tm_isdst > 0 %}
{% set endzeit = arbeitsbeginn + arbeitstag_dauer * 3600 + (gesetzliche_pausen + kurzpause) * 60 %}
{% if is_sommerzeit == true %}
{% set endzeit = endzeit - 3600 %}
{% elif is_sommerzeit == false %}
{% set endzeit = endzeit %}
{% endif %}
{{ endzeit | timestamp_custom('%H:%M') }} Uhr
Wenn jemand trotzdem eine Anmerkung hat und es evtl. bei der umstellung zur Winterzeit erneut Probleme geben könnte, bitte jederzeit schreiben!
Danke!!!
Würde mal fast annehmen, dass die Sommer- / Winterzeit vom System automatisch berücksichtigt wird, also du den Part weglassen kannst.
Ne, leider nicht.
Ohne das gabs in der Winterzeit Probleme.
Was hat denn da nicht funktioniert? Laut Dokumentation wird die lokale Zeit als Standard benutzt.
Filter timestamp_custom(format_string, local=True, default)
converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is the default. If that fails, returns the default
value, or if omitted raises an error. Supports the standard Python time
1 „Gefällt mir“