Achat Sèche-linge

J’ai utilisé ce sujet :

J’ai fait cela, il y a longtemps, le plus dur est de ce souvenir… :grinning_face:

Template Durée dernier cycle :

{% if is_state('input_boolean.seche_linge_cycle', 'on') %}
        En cours
      {% else %}
        {% set var_debut_seche_linge = as_timestamp(states('input_datetime.debut_cycle_seche_linge')) -%}
        {%- set var_fin_seche_linge = as_timestamp(states('input_datetime.fin_cycle_seche_linge')) -%}
        {%- set var_duree_derniere_seche_linge = as_datetime(var_fin_seche_linge) - as_datetime(var_debut_seche_linge) -%}
        {{ var_duree_derniere_seche_linge }}
      {% endif %}

Template cout dernier cycle :

{{ (states('sensor.seche_linge_power_cycle') |
        float(default=0) * (states('input_number.prix_instantanee_seche_linge')| float(default=0)/100)
        *10) | round(3) }}€

Template debut de cycle:

{%- set months = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"] %}
        {%- set days = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]  %}
        {%- set days_short = ["Lun.", "Mar.", "Mer.", "Jeu.", "Ven.", "Sam.", "Dim."]  %}
        {%- set months_short = ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juill.", "août", "sept.", "oct.", "nov.", "déc."] %}
        {{ days_short[as_datetime(states('input_datetime.debut_cycle_seche_linge')).weekday()] + ' ' + as_datetime(states('input_datetime.debut_cycle_seche_linge')).day | string + ' ' + months_short[as_datetime(states('input_datetime.debut_cycle_seche_linge')).month-1] + ' ' + (as_datetime(states('input_datetime.debut_cycle_seche_linge'))).strftime("à %H:%M") }}

Template fin de cycle :

{% if is_state('input_boolean.seche_linge_cycle', 'on') %}
        En cours
      {% else %}
        {%- set months = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"] %}
        {%- set days = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]  %}
        {%- set days_short = ["Lun.", "Mar.", "Mer.", "Jeu.", "Ven.", "Sam.", "Dim."]  %}
        {%- set months_short = ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juill.", "août", "sept.", "oct.", "nov.", "déc."] %}
        {{ days_short[as_datetime(states('input_datetime.fin_cycle_seche_linge')).weekday()] + ' ' + as_datetime(states('input_datetime.fin_cycle_seche_linge')).day | string + ' ' + months_short[as_datetime(states('input_datetime.fin_cycle_seche_linge')).month-1] + ' ' + (as_datetime(states('input_datetime.fin_cycle_seche_linge'))).strftime("à %H:%M") }}
      {% endif %}

Pour la conso sèche-linge :
compteur de services que je remets à zéro à chaque début de cycle (voir automatisme).

Automatisme sèche-linge (ou autres):

alias: Gestion Start et Stop Sèche Linge
description: Seche Linge Start
triggers:
  - type: power
    device_id: 4d1b3a0a3d7131985ef3afd36acbe96a
    entity_id: sensor.plug_zb_011_power
    domain: sensor
    above: 4
    for:
      hours: 0
      minutes: 5
      seconds: 0
    trigger: device
    id: Sèche linge Debut
  - type: power
    device_id: 4d1b3a0a3d7131985ef3afd36acbe96a
    entity_id: sensor.plug_zb_011_power
    domain: sensor
    below: 4
    for:
      hours: 0
      minutes: 15
      seconds: 0
    trigger: device
    id: Sèche Linge Fin
conditions: []
actions:
  - alias: Action Debut
    choose:
      - conditions:
          - condition: trigger
            id:
              - Sèche linge Debut
          - condition: state
            entity_id: input_boolean.seche_linge_cycle
            state: "off"
        sequence:
          - data:
              datetime: "{{ now() }}"
            target:
              entity_id: input_datetime.debut_cycle_seche_linge
            action: input_datetime.set_datetime
          - data: {}
            target:
              entity_id: input_boolean.seche_linge_cycle
            action: input_boolean.turn_on
          - data:
              value: "{{states('sensor.edf_tempo_prix_actuel')|float}}"
            target:
              entity_id: input_number.prix_instantanee_seche_linge
            action: input_number.set_value
          - data:
              value: "0"
            target:
              entity_id: sensor.seche_linge_power_cycle
            action: utility_meter.calibrate
          - data:
              title: ⚠️ Seche-Linge Depart
            action: notify.telegram_pascal_ha
  - alias: Action Fin
    choose:
      - conditions:
          - condition: trigger
            id:
              - Sèche Linge Fin
          - condition: state
            entity_id: input_boolean.seche_linge_cycle
            state: "on"
        sequence:
          - data:
              datetime: "{{ now() }}"
            target:
              entity_id: input_datetime.fin_cycle_seche_linge
            action: input_datetime.set_datetime
          - data: {}
            target:
              entity_id: input_boolean.seche_linge_cycle
            action: input_boolean.turn_off
          - data:
              title: "⚠️ Seche-Linge : Fin de sechage 🧺"
              message: ""
            action: notify.telegram_pascal_ha
mode: single