Mal eine Frage ich suche ein Sensor der die Zeit nach vorne Zähl also wieviel Zeit bis jetzt vergangen ist.
aktuell wird die Zeit rückwärts abgezählt einer eine Idee ?
Mal eine Frage ich suche ein Sensor der die Zeit nach vorne Zähl also wieviel Zeit bis jetzt vergangen ist.
aktuell wird die Zeit rückwärts abgezählt einer eine Idee ?
Ein “bißchen” her, aber das suche ich auch
Moin,
Hilft das evtl. weiter?
Ein Beispiel würde schon helfen zu verstehen, was ihr vorhabt
VG
Bernd
Was ist der Ausgangspunkt? Ein Timer Start, ein Datums/Zeit Helfer oder einfach nur ein Textfeld? Oder das Öffnen eines Fensters?
In meinem Fall tatsächlich das Fenster. Ich hätte gerne einen Alarm mit verschiedenen Eskalationsstufen, je nach vergangener Zeit.
Ich les das da oben mal, danke.
Das hier wäre z.B. eine Template Sensor, der dir anzeigt wie lange das Fenster schon geöffnet ist. Anzeige wäre hier in dem Fall in Minuten.
- name: "Fenster Badezimmer offen Zeit"
unique_id: "fenster_badezimmer_offen_zeit"
unit_of_measurement: "min"
state: >
{% if is_state('binary_sensor.fenster_sensor_badezimmer_contact', 'on') %}
{% set last_change = as_timestamp(states.binary_sensor.fenster_sensor_badezimmer_contact.last_changed) %}
{% set now = as_timestamp(now()) %}
{{ ((now - last_change) / 60) | round(0) }}
{% else %}
0
{% endif %}
Dieser hier gibt dir die Zeit in Stunden Minuten und Sekunden an
- name: "Fenster Offen Dauer"
unique_id: "fensteroffendauerbz"
state: >
{% if is_state('binary_sensor.fenster_sensor_badezimmer_contact', 'on') %}
{% set last_changed = states.binary_sensor.fenster_sensor_badezimmer_contact.last_changed %}
{% if last_changed %}
{% set time_diff = (now() - last_changed).total_seconds() %}
{% set hours = (time_diff // 3600) | int %}
{% set minutes = ((time_diff % 3600) // 60) | int %}
{% set seconds = (time_diff % 60) | int %}
{{ '%02d:%02d:%02d' | format(hours, minutes, seconds) }}
{% else %}
00:00:00
{% endif %}
{% else %}
00:00:00
{% endif %}
Hallo,
eine Automation könnte so aussehen.
description: ""
mode: single
triggers:
- trigger: state
entity_id:
- binary_sensor.tfk_bad_state
from: "off"
to: "on"
for:
hours: 0
minutes: 10
seconds: 0
id: 10min
- trigger: state
entity_id:
- binary_sensor.tfk_bad_state
from: "off"
to: "on"
for:
hours: 0
minutes: 20
seconds: 0
id: 20min
- trigger: state
entity_id:
- binary_sensor.tfk_bad_state
from: "off"
to: "on"
for:
hours: 0
minutes: 25
seconds: 0
id: 25min
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id:
- 10min
sequence:
- action: notify.notify
metadata: {}
data:
message: "Fenster schließen "
- conditions:
- condition: trigger
id:
- 20min
sequence:
- action: notify.notify
metadata: {}
data:
message: "Fenster schließen "
- conditions:
- condition: trigger
id:
- 25min
sequence:
- action: notify.notify
metadata: {}
data:
message: "Fenster schließen "
Na da muß ich dann auch noch einen nachlegen
Beruht auf eine zentrale Makrolösung. Templatecode im Makro selbst ist ähnlich wie obig vorgestellter Code.
Die Idee: Du gibst dem zentralem Makro die EntityId des Fensters (oder von welchem Sensor auch immer) und er gibt gleich formatiert die Zeitdifference zum last_changed zurück.
Vorteil gegenüber einem einzelnem Template Sensor. Du hast nur einen Code auf denen sich andere beziehen und bei Änderungen (z.B. Du willst später die exakte Zeit) brauchst Du nur den einen Code ändern und alle Anzeigen ändern sich automatisch.
Den Code und das HowTo findest Du hier
Geöffnete Fenster inkl. Öffnungszeiten / Makros und deren zentrale Wiederverwendbarkeit machen Templating effizienter