Skip to content
arsenicks edited this page Jan 14, 2022 · 35 revisions

Cette section inclus des exemples d'utilisation de l'intégration. Le projet ne supporte pas ces exemples, il devrait vous servir de base pour construire ou vous donner des idées. Si vous avez besoin d'aide, veuillez utiliser le forum de HA ou cette discussion

Lovelace / Dashboard

Les exemples qui ont un requis particulier de type "custom:*" nécessite d'installer ces composant. Soit via HACS ou via la méthode manuelle.

Intégration donnée d'énergie

Requis particulier:

  • custom:paper-buttons-row

Contributeur:

Capture d'écran

Capture d'écran énergie lovelace

yaml Code
- type: vertical-stack
  cards:
    - type: custom:paper-buttons-row
      buttons:
        - type: entity
          entity: sensor.hilo_gateway
          name: false
          action: none
          state: false
          state_styles:
            'on':
              button:
                color: green
            'off':
              button:
                color: red
        - type: entity
          entity: sensor.defi_hilo
          state: false
          action: none
          state_styles:
            'on':
              button:
                color: red
            scheduled:
              button:
                color: yellow
            pre_heat:
              button:
                color: red
            recovery:
              button:
                color: blue
            'off':
              button:
                color: green
        - type: entity
          entity: sensor.meter00_power
          name: false
          layout: icon|state
          action: none
          state: '{{ states(config.entity) }}'
          icon: mdi:speedometer
          style:
            button:
              color: |-
                {% if states(config.entity) | int > 1000 %}
                  yellow
                {% elif states(config.entity) | int > 1500 %}
                  orange
                {% elif states(config.entity) | int > 2000 %}
                  red
                {% else%}
                  green
                {% endif %}
        - type: entity
          entity: sensor.hilo_rate_current
          name: false
          layout: icon|state
          action: none
          state: '{{ states(config.entity) }}'
          style:
            button:
              color: |-
                {% if states(config.entity) | float > 0.07 %}
                  yellow
                {% elif states(config.entity) | float > 0.1 %}
                  red
                {% else%}
                  green
                {% endif %}
    - type: energy-date-selection
    - type: energy-sources-table
    - type: energy-usage-graph
    - type: energy-distribution
      link_dashboard: true

Graphiques

Consommation Globale

Requis particulier:

  • custom:apexcharts-card

Contributeur:

Dans ce graphique, vous devrez ajuster les threshold selon votre consommation. Vous pouvez également ajuster la moyenne qui est fait au 5 minutes dans le group_by, duration.

Capture d'écran

Capture d'écran

yaml Code
- type: horizontal-stack
  cards:
    - type: custom:apexcharts-card
      header:
        show: true
        show_states: true
      experimental:
        color_threshold: true
      graph_span: 12h
      all_series_config:
        stroke_width: 4
      series:
        - entity: sensor.meter00_power
          unit: W
          type: column
          color_threshold:
            - value: 0
              color: cyan
            - value: 1000
              color: green
            - value: 1500
              color: orange
            - value: 2500
              color: red
          group_by:
            duration: 5min
            func: avg

Consommation par thermostat

Requis particulier:

  • custom:apexcharts-card

Contributeur:

Dans ce graphique, vous devrez ajuster les nom des title et entity. Vous pouvez également ajuster les couleurs des lignes et ajouter d'autres thermostat et ajoutant des sections "- type: custom:apexcharts-card".

Capture d'écran

Capture d'écran

yaml Code
- type: horizontal-stack
  cards:
    - type: custom:apexcharts-card
      header:
        show: true
        title: Chambre principale
        show_states: true
        colorize_states: true
      graph_span: 8h
      cache: true
      series:
        - entity: climate.thermostat_chambre1
          attribute: current_temperature
          name: Temperature
          color: red
          fill_raw: last
        - entity: climate.thermostat_chambre1
          attribute: temperature
          name: Consigne
          fill_raw: last
    - type: custom:apexcharts-card
      header:
        show: true
        title: Chambre 2
        show_states: true
        colorize_states: true
      graph_span: 8h
      cache: true
      series:
        - entity: climate.thermostat_chambre2
          attribute: current_temperature
          name: Temperature
          color: red
          fill_raw: last
        - entity: climate.thermostat_chambre2
          attribute: temperature
          name: Consigne
          fill_raw: last
    - type: custom:apexcharts-card
      header:
        show: true
        title: Chambre 3
        show_states: true
        colorize_states: true
      graph_span: 8h
      cache: true
      series:
        - entity: climate.thermostat_chambre3
          attribute: current_temperature
          name: Temperature
          color: red
          fill_raw: last
        - entity: climate.thermostat_chambre3
          attribute: temperature
          name: Consigne
          fill_raw: last

Liste des consommateurs(sensor) dynamique

Requis particulier:

  • custom:auto-entities

Contributeur:

Ce graphique dynamique affiche TOUT les sensors qui ont le mot "power" dedans et qui affiche une consommation. S'ils tombent à 0, ils disparaissent de la liste. C'est intéressant pour voir pendant un défi si quelque chose ne fonctionne pas comme prévu.

Capture d'écran

Capture d'écran

yaml Code
- type: custom:auto-entities
  card:
    type: entities
    title: Plus grand consommateur en temps réel
    state_color: true
  filter:
    include:
      - domain: sensor
        entity_id: '*power*'
    exclude:
      - state: unavailable
      - state: unknown
      - state: '0'
      - state: '0.0'
  sort:
    method: state
    numeric: true
    reverse: true

Automatisation


Augmenter le maximum du prochain défi.

Requis particulier:

  • Créer une scène y ajouter les thermostat et y configurer la consigne désiré sur chacun d'entre eux.

Contributeur:

But: Phase de pré-chauffage intense 3-4h avant le début de la phase de pré-chauffage de manière à emmagasiner la chaleurs dans les pièces et augmenter le maximum pour le défi et ainsi maximiser la récompense.

Résumé de l'automatisme:

  • Cet automatisme se déclenche à 1h am ou à 13h.
  • Il sera exécuté seulement si le sensor.defi_hilo a pour valeur scheduled, donc lorsqu'il n'y a pas de défi de prévu, il ne s'exécute pas.
  • Lorsque la condition est satisfaite, une scène nommé "defi_hilo_preheat_intense" sera appliqué
  • Une commande est envoyé à un RM4Pro pour envoyer la commande IR(précédemment enregistré) à la thermopompe pour chauffer. La commande est répetté 3 fois avec un délais de 2 secondes car le IR n'est pas parfait et des animaux/personnes peuvent l'obstruer parfois.
Code YAML
alias: TEMP - BoostReward DÉFI Hilo - 3-4h avant preheat
description: ''
trigger:
  - platform: time
    at: '01:00'
  - platform: time
    at: '13:00'
condition:
  - condition: state
    entity_id: sensor.defi_hilo
    state: scheduled
action:
  - scene: scene.defi_hilo_preheat_intense_
  - service: remote.send_command
    target:
      device_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
    data:
      device: thermopompe
      command: heat25on
      num_repeats: 3
      delay_secs: 2
mode: single

Abaisser la consigne de chauffage après défi

Requis particulier:

  • Créer une scène y ajouter les thermostat et y configurer la consigne désiré sur chacun d'entre eux. Ex. 16 degré

Contributeur:

But: Baisser les thermostats au maximum pendant la durée du défi

Résumé de l'automatisme:

  • Cet automatisme se déclenche lorsque l'état du sensor.defi_hilo passe de pre_heat à reduction.
  • Dans ce cas une scène nommé "defi_hilo_en_cours_extra_audacieux" sera appliqué.
  • Une commande est envoyé à un RM4Pro pour envoyer la commande IR(précédemment enregistré) à la thermopompe pour s'arrêter. La commande est répetté 3 fois avec un délais de 2 secondes car le IR n'est pas parfait et des animaux/personnes peuvent l'obstruer parfois.
Code YAML
alias: TEMP - DÉFI Hilo en cours Extra audacieux
description: ''
trigger:
  - platform: state
    entity_id: sensor.defi_hilo
    from: pre_heat
    to: reduction
condition: []
action:
  - scene: scene.defi_hilo_en_cours_extra_audacieux
  - service: remote.send_command
    target:
      device_id: XXXXXXXXXXXXXXXXXXXX
    data:
      device: thermopompe
      command: heat25off
      num_repeats: 3
      delay_secs: 2
mode: single

Templates

Créer plusieurs sensors relié au défi.

Requis particulier:

  • Une version récente du component Hilo.

Contributeur:

Résumé du/des template: Créer plusieurs sensors par rapport au défi.

Les sensors suivant seront rendu disponible pour afficher dans des dashboard ou utilisé dans des automatisme:

  • defi_hilo_in_progress
  • defi_hilo_allowed_kwh
  • defi_hilo_allowed_cash
  • defi_hilo_used_kwh
  • defi_hilo_used_cash
  • defi_hilo_remaining_cash
  • defi_hilo_predicted_cash
  • defi_hilo_currentdefi_cash
Code YAML
sensor:
  - platform: template
    sensors:
      defi_hilo_in_progress:
        friendly_name: Défi Hilo en cours?
        value_template: "{{ is_state('sensor.defi_hilo', 'appreciation') or is_state('sensor.defi_hilo', 'pre_heat') or is_state('sensor.defi_hilo', 'reduction') }}"

      defi_hilo_allowed_kwh:
        unit_of_measurement: "kWh"
        friendly_name: Limite max defi
        value_template: "{{ state_attr('sensor.defi_hilo', 'next_events')[0]['allowed_kWh'] }}"

      defi_hilo_allowed_cash:
        friendly_name: Montant max defi
        unit_of_measurement: "$"
        value_template: "{{ (state_attr('sensor.defi_hilo', 'next_events')[0]['allowed_kWh'] * 0.55) | round(2) }}"

      defi_hilo_used_kwh:
        friendly_name: kWh utilise defi
        unit_of_measurement: "kWh"
        value_template: "{{ state_attr('sensor.defi_hilo', 'next_events')[0]['used_kWh']}}"

      defi_hilo_used_cash:
        friendly_name: Montant utilise defi
        unit_of_measurement: "$"
        value_template: "{{ (state_attr('sensor.defi_hilo', 'next_events')[0]['used_kWh'] * 0.55) | round(2) }}"

      defi_hilo_remaining_cash:
        friendly_name: Montant restant defi
        unit_of_measurement: "$"
        value_template: "{{(( state_attr('sensor.defi_hilo', 'next_events')[0]['allowed_kWh'] - state_attr('sensor.defi_hilo', 'next_events')[0]['used_kWh']) * 0.55) | round(2) }}"

      defi_hilo_predicted_cash:
        friendly_name: Montant total predit defi
        unit_of_measurement: "$"
        value_template: >
          {% set debutdefi = as_timestamp(state_attr('sensor.defi_hilo', 'next_events')[0]['phases']['reduction_start']) %}
          {% set maintenant =  (now().timestamp()) %}
          {% set delta = ((maintenant - debutdefi)) // 60 | float %}
          {% if delta <= 0  %}
          {% set delta = 1 %}
          {%endif %}
          {% if delta >= 240  %}
          {% set delta = 240 %}
          {%endif %}
          {%set predicteduse = (1/(delta/ 240 )) * float(states('sensor.defi_hilo_used_kwh'),0) %}
          {{((float(states('sensor.defi_hilo_allowed_kwh'),0) - predicteduse) * 0.55)  | round(2) }}

      defi_hilo_currentdefi_cash:
        friendly_name: Montant accumule estime defi
        unit_of_measurement: "$"
        value_template: >
          {% set debutdefi = as_timestamp(state_attr('sensor.defi_hilo', 'next_events')[0]['phases']['reduction_start']) %}
          {% set maintenant =  (now().timestamp()) %}
          {% set delta = ((maintenant - debutdefi) // 60) +1 | int %}
          {% if delta <= 0  %}
          {% set delta = 1 %}
          {%endif %}
          {% if delta >= 240  %}
          {% set delta = 240 %}
          {%endif %}
          {{ (delta/ 240 * ((float(states('sensor.defi_hilo_allowed_kwh'),0) - ((1/(delta/ 240 ) * float(states('sensor.defi_hilo_used_kwh'),0)))) * 0.55))  | round(2) }}

Clone this wiki locally