Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
arsenicks edited this page Jan 15, 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: custom:apexcharts-card
header:
 show: true
 show_states: true
experimental:
 color_threshold: true
graph_span: 12h
all_series_config:
 stroke_width: 4
yaxis:
 - id: kwh
 decimals: 0
 apex_config:
 tickAmount: 4
 - id: degree
 opposite: true
 decimals: 0
 apex_config:
 tickAmount: 4
series:
 - entity: sensor.meter00_power
 yaxis_id: kwh
 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
 - entity: sensor.temperature
 yaxis_id: degree
 name: Temperature
 unit: °C
 type: line

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 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 à 4h am ou à 11h am.
  • 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" 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 - PréHeat DÉFI Hil
description: ''
trigger:
 - platform: time
 at: '04:00'
 - platform: time
 at: '11:00'
condition:
 - condition: state
 entity_id: sensor.defi_hilo
 state: scheduled
action:
 - scene: scene.defi_hilo_preheat
 - 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) }}

Optimisation manuelle

Bien que vous recevrez quand même vos récompenses d'Hilo lorsque vous gérez vous même chacune des phases, c'est important de considérer les faits suivants:

  • Hydro-Québec exige une courbe de consommation de la part d'Hilo. Cette courbe inclue le pré-chauffage graduel et le retour graduel.
  • En ce moment, les récompenses sont uniquement attribuées en fonction du nombre de kWh utilisés lors de la phase de restriction.
  • Par contre, Les ingénieurs d'Hilo travaillent actuellement sur un algorithme pour que les récompenses soient attribuées en fonction de la courbe, en incluant la phase de pré-chauffage et la phase de retour.
  • C'est possible que la méthode Hilo ne soit pas optimale pour vos besoins. Grâce à cette intégration Home Assistant, vous pouvez l'adapter aux besoins de votre foyer.

En gros, Hilo est au courant qui a des gens qui adaptent la courbe selon leur besoin, et c'est possible qu'ils changent le format des récompenses.

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /