Supprimer home-assistant /template.yaml
This commit is contained in:
@@ -1,349 +0,0 @@
|
|||||||
- sensor:
|
|
||||||
- name: "timer_ch_duration"
|
|
||||||
state: "{{ (states('input_number.timer_ch') | int * 60) | int }}"
|
|
||||||
unit_of_measurement: "seconds"
|
|
||||||
|
|
||||||
- name: "Grocy Chores Weekly"
|
|
||||||
unique_id: grocy_chores_weekly
|
|
||||||
state: >
|
|
||||||
{{ state_attr('sensor.grocy_chores', 'chores')
|
|
||||||
| selectattr('period_type', 'equalto', 'weekly')
|
|
||||||
| list | count }}
|
|
||||||
attributes:
|
|
||||||
chores: >
|
|
||||||
{{ state_attr('sensor.grocy_chores', 'chores')
|
|
||||||
| selectattr('period_type', 'equalto', 'weekly')
|
|
||||||
| list }}
|
|
||||||
|
|
||||||
- name: "Grocy Chores Monthly"
|
|
||||||
unique_id: grocy_chores_monthly
|
|
||||||
state: >
|
|
||||||
{{ state_attr('sensor.grocy_chores', 'chores')
|
|
||||||
| selectattr('period_type', 'equalto', 'monthly')
|
|
||||||
| list | count }}
|
|
||||||
attributes:
|
|
||||||
chores: >
|
|
||||||
{{ state_attr('sensor.grocy_chores', 'chores')
|
|
||||||
| selectattr('period_type', 'equalto', 'monthly')
|
|
||||||
| list }}
|
|
||||||
|
|
||||||
- name: "Grocy Chores Adaptive"
|
|
||||||
unique_id: grocy_chores_adaptive
|
|
||||||
state: >
|
|
||||||
{{ state_attr('sensor.grocy_chores', 'chores')
|
|
||||||
| selectattr('period_type', 'equalto', 'adaptive')
|
|
||||||
| list | count }}
|
|
||||||
attributes:
|
|
||||||
chores: >
|
|
||||||
{{ state_attr('sensor.grocy_chores', 'chores')
|
|
||||||
| selectattr('period_type', 'equalto', 'adaptive')
|
|
||||||
| list }}
|
|
||||||
|
|
||||||
- name: "Lumieres Allumees"
|
|
||||||
unique_id: lumieres_allumees
|
|
||||||
state: >
|
|
||||||
{{ expand('light.lumieres')
|
|
||||||
| selectattr('state', 'eq', 'on') | list | count }}
|
|
||||||
unit_of_measurement: "allumée(s)"
|
|
||||||
|
|
||||||
- name: "Volets Ouverts"
|
|
||||||
unique_id: volets_ouverts
|
|
||||||
state: >
|
|
||||||
{{ expand('cover.volets')
|
|
||||||
| selectattr('state', 'eq', 'open') | list | count }}
|
|
||||||
unit_of_measurement: "ouvert(s)"
|
|
||||||
|
|
||||||
- name: "Prises Actives"
|
|
||||||
unique_id: prises_actives
|
|
||||||
state: >
|
|
||||||
{{ expand('switch.prises')
|
|
||||||
| selectattr('state', 'eq', 'on') | list | count }}
|
|
||||||
unit_of_measurement: "active(s)"
|
|
||||||
|
|
||||||
- name: "Ouvertures Ouvertes"
|
|
||||||
unique_id: ouvertures_ouvertes
|
|
||||||
state: >
|
|
||||||
{{ expand('binary_sensor.ouvrants')
|
|
||||||
| selectattr('state', 'eq', 'on') | list | count }}
|
|
||||||
unit_of_measurement: "ouvert(s)"
|
|
||||||
|
|
||||||
- name: "Watchman Missing"
|
|
||||||
unique_id: watchman_missing
|
|
||||||
state: >
|
|
||||||
{{ state_attr("sensor.watchman_missing_entities", "entities")
|
|
||||||
| selectattr('state', 'eq', 'missing') | list | count }}
|
|
||||||
icon: mdi:alert-circle
|
|
||||||
|
|
||||||
- name: "Watchman Unavail"
|
|
||||||
unique_id: watchman_unavail
|
|
||||||
state: >
|
|
||||||
{{ state_attr("sensor.watchman_missing_entities", "entities")
|
|
||||||
| selectattr('state', 'eq', 'unavail') | list | count }}
|
|
||||||
icon: mdi:alert-circle-outline
|
|
||||||
|
|
||||||
- name: "HACS Intégrations count"
|
|
||||||
unique_id: hacs_integrations_count
|
|
||||||
state: >
|
|
||||||
{{ integration_entities('hacs') | list | count }}
|
|
||||||
icon: mdi:package-variant
|
|
||||||
|
|
||||||
- name: "Grocy - Corvées hebdo réalisées"
|
|
||||||
unique_id: grocy_weekly_done
|
|
||||||
unit_of_measurement: "corvées"
|
|
||||||
icon: mdi:check-circle
|
|
||||||
state: >
|
|
||||||
{% set chores = state_attr('sensor.grocy_chores_weekly', 'chores') %}
|
|
||||||
{% if chores %}
|
|
||||||
{% set week_start = now().replace(hour=0, minute=0, second=0, microsecond=0) - timedelta(days=now().weekday()) %}
|
|
||||||
{{ chores | selectattr('last_tracked_time', 'ne', None)
|
|
||||||
| selectattr('last_tracked_time', 'ge', week_start.isoformat())
|
|
||||||
| list | count }}
|
|
||||||
{% else %}
|
|
||||||
0
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Grocy - Corvées hebdo restantes"
|
|
||||||
unique_id: grocy_weekly_remaining
|
|
||||||
unit_of_measurement: "corvées"
|
|
||||||
icon: mdi:clock-alert
|
|
||||||
state: >
|
|
||||||
{% set chores = state_attr('sensor.grocy_chores_weekly', 'chores') %}
|
|
||||||
{% if chores %}
|
|
||||||
{% set dow = now().weekday() %}
|
|
||||||
{% set days_to_friday = (4 - dow) % 7 %}
|
|
||||||
{% set friday_end = (now().replace(hour=23, minute=59, second=59, microsecond=0) + timedelta(days=days_to_friday)).isoformat() %}
|
|
||||||
{{ chores | selectattr('next_estimated_execution_time', 'ne', None)
|
|
||||||
| selectattr('next_estimated_execution_time', 'le', friday_end)
|
|
||||||
| list | count }}
|
|
||||||
{% else %}
|
|
||||||
0
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Grocy - Corvées mensuelles réalisées"
|
|
||||||
unique_id: grocy_monthly_done
|
|
||||||
unit_of_measurement: "corvées"
|
|
||||||
icon: mdi:check-circle
|
|
||||||
state: >
|
|
||||||
{% set chores = state_attr('sensor.grocy_chores_monthly', 'chores') %}
|
|
||||||
{% if chores %}
|
|
||||||
{% set week_start = now().replace(hour=0, minute=0, second=0, microsecond=0) - timedelta(days=now().weekday()) %}
|
|
||||||
{{ chores | selectattr('last_tracked_time', 'ne', None)
|
|
||||||
| selectattr('last_tracked_time', 'ge', week_start.isoformat())
|
|
||||||
| list | count }}
|
|
||||||
{% else %}
|
|
||||||
0
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Grocy - Corvées mensuelles restantes"
|
|
||||||
unique_id: grocy_monthly_remaining
|
|
||||||
unit_of_measurement: "corvées"
|
|
||||||
icon: mdi:clock-alert
|
|
||||||
state: >
|
|
||||||
{% set chores = state_attr('sensor.grocy_chores_monthly', 'chores') %}
|
|
||||||
{% if chores %}
|
|
||||||
{% set dow = now().weekday() %}
|
|
||||||
{% set days_to_friday = (4 - dow) % 7 %}
|
|
||||||
{% set friday_end = (now().replace(hour=23, minute=59, second=59, microsecond=0) + timedelta(days=days_to_friday)).isoformat() %}
|
|
||||||
{{ chores | selectattr('next_estimated_execution_time', 'ne', None)
|
|
||||||
| selectattr('next_estimated_execution_time', 'le', friday_end)
|
|
||||||
| list | count }}
|
|
||||||
{% else %}
|
|
||||||
0
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Grocy - Corvées adaptatives réalisées"
|
|
||||||
unique_id: grocy_adaptive_done
|
|
||||||
unit_of_measurement: "corvées"
|
|
||||||
icon: mdi:check-circle
|
|
||||||
state: >
|
|
||||||
{% set chores = state_attr('sensor.grocy_chores_adaptive', 'chores') %}
|
|
||||||
{% if chores %}
|
|
||||||
{% set week_start = now().replace(hour=0, minute=0, second=0, microsecond=0) - timedelta(days=now().weekday()) %}
|
|
||||||
{{ chores | selectattr('last_tracked_time', 'ne', None)
|
|
||||||
| selectattr('last_tracked_time', 'ge', week_start.isoformat())
|
|
||||||
| list | count }}
|
|
||||||
{% else %}
|
|
||||||
0
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Grocy - Corvées adaptatives restantes"
|
|
||||||
unique_id: grocy_adaptive_remaining
|
|
||||||
unit_of_measurement: "corvées"
|
|
||||||
icon: mdi:clock-alert
|
|
||||||
state: >
|
|
||||||
{% set chores = state_attr('sensor.grocy_chores_adaptive', 'chores') %}
|
|
||||||
{% if chores %}
|
|
||||||
{% set dow = now().weekday() %}
|
|
||||||
{% set days_to_friday = (4 - dow) % 7 %}
|
|
||||||
{% set friday_end = (now().replace(hour=23, minute=59, second=59, microsecond=0) + timedelta(days=days_to_friday)).isoformat() %}
|
|
||||||
{{ chores | selectattr('next_estimated_execution_time', 'ne', None)
|
|
||||||
| selectattr('next_estimated_execution_time', 'le', friday_end)
|
|
||||||
| list | count }}
|
|
||||||
{% else %}
|
|
||||||
0
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Calendrier Mashome prochain"
|
|
||||||
unique_id: calendar_mashome_next
|
|
||||||
state: >
|
|
||||||
{% set next = state_attr('calendar.mashome', 'start_time') %}
|
|
||||||
{% if next %}
|
|
||||||
{% set diff = (as_local(as_datetime(next)) - now()).days %}
|
|
||||||
{{ diff <= 6 and diff >= 0 }}
|
|
||||||
{% else %}
|
|
||||||
false
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Calendrier Garbage prochain"
|
|
||||||
unique_id: calendar_garbage_next
|
|
||||||
state: >
|
|
||||||
{% set next = state_attr('calendar.garbage', 'start_time') %}
|
|
||||||
{% if next %}
|
|
||||||
{% set diff = (as_local(as_datetime(next)) - now()).days %}
|
|
||||||
{{ diff <= 6 and diff >= 0 }}
|
|
||||||
{% else %}
|
|
||||||
false
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Calendrier Garden prochain"
|
|
||||||
unique_id: calendar_garden_next
|
|
||||||
state: >
|
|
||||||
{% set next = state_attr('calendar.garden', 'start_time') %}
|
|
||||||
{% if next %}
|
|
||||||
{% set diff = (as_local(as_datetime(next)) - now()).days %}
|
|
||||||
{{ diff <= 6 and diff >= 0 }}
|
|
||||||
{% else %}
|
|
||||||
false
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: "Calendrier Bestioles prochain"
|
|
||||||
unique_id: calendar_bestioles_next
|
|
||||||
state: >
|
|
||||||
{% set next = state_attr('calendar.bestioles', 'start_time') %}
|
|
||||||
{% if next %}
|
|
||||||
{% set diff = (as_local(as_datetime(next)) - now()).days %}
|
|
||||||
{{ diff <= 30 and diff >= 0 }}
|
|
||||||
{% else %}
|
|
||||||
false
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- sensor:
|
|
||||||
- name: mojo_delai_repas
|
|
||||||
unique_id: mojo_delai_repas
|
|
||||||
state: >
|
|
||||||
{% set last = states.sensor.nutri_mojo_dernier_montant.last_changed %}
|
|
||||||
{% set diff = (now() - last).total_seconds() | int %}
|
|
||||||
{% set h = (diff // 3600) | int %}
|
|
||||||
{% set m = ((diff % 3600) // 60) | int %}
|
|
||||||
{% if h == 0 %}il y a {{ m }}min
|
|
||||||
{% elif h < 2 %}il y a {{ h }}h{{ '%02d' | format(m) }}
|
|
||||||
{% else %}il y a {{ h }}h
|
|
||||||
{% endif %}
|
|
||||||
attributes:
|
|
||||||
secondes: >
|
|
||||||
{{ (now() - states.sensor.nutri_mojo_dernier_montant.last_changed).total_seconds() | int }}
|
|
||||||
|
|
||||||
- name: mojo_delai_litiere
|
|
||||||
unique_id: mojo_delai_litiere
|
|
||||||
state: >
|
|
||||||
{% set last = states.counter.compteur_litiere.last_changed %}
|
|
||||||
{% set diff = (now() - last).total_seconds() | int %}
|
|
||||||
{% set h = (diff // 3600) | int %}
|
|
||||||
{% set m = ((diff % 3600) // 60) | int %}
|
|
||||||
{% if h == 0 %}il y a {{ m }}min
|
|
||||||
{% elif h < 2 %}il y a {{ h }}h{{ '%02d' | format(m) }}
|
|
||||||
{% else %}il y a {{ h }}h
|
|
||||||
{% endif %}
|
|
||||||
attributes:
|
|
||||||
secondes: >
|
|
||||||
{{ (now() - states.counter.compteur_litiere.last_changed).total_seconds() | int }}
|
|
||||||
|
|
||||||
- name: mojo_indice_confort
|
|
||||||
unique_id: mojo_indice_confort
|
|
||||||
unit_of_measurement: "/10"
|
|
||||||
state: >
|
|
||||||
{% set seuil = states('input_number.seuil_nettoyage_litiere') | float %}
|
|
||||||
{% set passages = states('counter.compteur_litiere') | int %}
|
|
||||||
{% set delai_repas = (now() - states.sensor.nutri_mojo_dernier_montant.last_changed).total_seconds() / 3600 %}
|
|
||||||
{% set score_litiere = [10 - ((passages / seuil) * 10) | round(0), 0] | max %}
|
|
||||||
{% set score_repas = [10 - ((delai_repas / 8) * 10) | round(0), 0] | max %}
|
|
||||||
{{ ((score_litiere * 0.5) + (score_repas * 0.5)) | round(1) }}
|
|
||||||
|
|
||||||
- name: mojo_humeur
|
|
||||||
unique_id: mojo_humeur
|
|
||||||
state: >
|
|
||||||
{% set seuil = states('input_number.seuil_nettoyage_litiere') | float %}
|
|
||||||
{% set passages = states('counter.compteur_litiere') | int %}
|
|
||||||
{% set delai_repas = (now() - states.sensor.nutri_mojo_dernier_montant.last_changed).total_seconds() / 3600 %}
|
|
||||||
{% set litiere_ok = passages < seuil * 0.5 %}
|
|
||||||
{% set litiere_sale = passages > seuil * 0.8 %}
|
|
||||||
{% set repas_recent = delai_repas < 2 %}
|
|
||||||
{% set affame = delai_repas > 6 %}
|
|
||||||
{% if affame and litiere_sale %}Affamé et en colère
|
|
||||||
{% elif affame %}Affamé
|
|
||||||
{% elif litiere_sale %}Grognon
|
|
||||||
{% elif repas_recent and litiere_ok %}Roi du monde
|
|
||||||
{% elif repas_recent %}Content
|
|
||||||
{% else %}Neutre
|
|
||||||
{% endif %}
|
|
||||||
attributes:
|
|
||||||
icone: >
|
|
||||||
{% set h = states('sensor.mojo_humeur') %}
|
|
||||||
{% if h == 'Affamé et en colère' %}😾🍽️
|
|
||||||
{% elif h == 'Affamé' %}🍽️😿
|
|
||||||
{% elif h == 'Grognon' %}😾
|
|
||||||
{% elif h == 'Roi du monde' %}👑😸
|
|
||||||
{% elif h == 'Content' %}😸
|
|
||||||
{% else %}🐱
|
|
||||||
{% endif %}
|
|
||||||
citation: >
|
|
||||||
{% set h = states('sensor.mojo_humeur') %}
|
|
||||||
{% if h == 'Affamé et en colère' %}Tu pourrais faire un effort sur les deux fronts non ?!
|
|
||||||
{% elif h == 'Affamé' %}Je vois des croquettes partout... des croquettes imaginaires...
|
|
||||||
{% elif h == 'Grognon' %}Cette litière est une insulte à ma dignité féline.
|
|
||||||
{% elif h == 'Roi du monde' %}La vie est belle. Je règne sur tout ce que je vois.
|
|
||||||
{% elif h == 'Content' %}Zzz... bien mangé, bien fait... zzz...
|
|
||||||
{% else %}J'observe. J'attends. Je suis un chat.
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
- name: mojo_barre_faim
|
|
||||||
unique_id: mojo_barre_faim
|
|
||||||
unit_of_measurement: "%"
|
|
||||||
state: >
|
|
||||||
{% set repas_s = state_attr('sensor.mojo_delai_repas', 'secondes') | int(0) %}
|
|
||||||
{{ [[((1 - repas_s / 28800) * 100) | round, 0] | max, 100] | min }}
|
|
||||||
|
|
||||||
- name: mojo_barre_hygiene
|
|
||||||
unique_id: mojo_barre_hygiene
|
|
||||||
unit_of_measurement: "%"
|
|
||||||
state: >
|
|
||||||
{% set passages = states('counter.compteur_litiere') | int %}
|
|
||||||
{% set seuil = states('input_number.seuil_nettoyage_litiere') | float(10) %}
|
|
||||||
{{ [[((1 - passages / seuil) * 100) | round, 0] | max, 100] | min }}
|
|
||||||
|
|
||||||
- name: mojo_barre_energie
|
|
||||||
unique_id: mojo_barre_energie
|
|
||||||
unit_of_measurement: "%"
|
|
||||||
state: >
|
|
||||||
{% set h = now().hour %}
|
|
||||||
{% if h >= 6 and h <= 9 %}90
|
|
||||||
{% elif h >= 17 and h <= 20 %}85
|
|
||||||
{% elif h >= 13 and h <= 15 %}15
|
|
||||||
{% elif h >= 22 or h < 5 %}10
|
|
||||||
{% else %}55{% endif %}
|
|
||||||
|
|
||||||
- name: mojo_barre_calins
|
|
||||||
unique_id: mojo_barre_calins
|
|
||||||
unit_of_measurement: "%"
|
|
||||||
state: >
|
|
||||||
{{ ((now().minute * 7 + now().hour * 13) % 50) + 30 }}
|
|
||||||
|
|
||||||
- name: mojo_barre_capteur
|
|
||||||
unique_id: mojo_barre_capteur
|
|
||||||
unit_of_measurement: "%"
|
|
||||||
state: >
|
|
||||||
{% set b = states('sensor.litiere_etat_batterie') %}
|
|
||||||
{% if b == 'high' %}90
|
|
||||||
{% elif b == 'middle' %}50
|
|
||||||
{% elif b == 'low' %}15
|
|
||||||
{% else %}0{% endif %}
|
|
||||||
Reference in New Issue
Block a user