AVERTISSEMENT: Breaking Config Change
Vous devez à nouveau définir les flux !!
Sans définir chaque flux qu'aucune ligne ne s'affiche, lisez soigneusement la partie d'utilisation (les bulles peuvent être cliquables mais c'est facultatif)
Il s'agit d'une carte assistée à domicile pour les installations solaires. Il fournit un graphique de style Tesla pour voir les flux d'énergie ((k) w).

J'ai essayé de le rendre aussi générique que possible, pour l'instant il y a 6 bulles avec 4 icônes principales et 2 appareils supplémentaires. Les quatre valeurs d'icône principales sont contrôlées par la somme des flux de et vers eux:
Les deux appareils optionnels peuvent être n'importe quel consommateur dans la maison, ils sont attachés à la maison. Ces deux sont contrôlés directement par leur consommation. Ce qui signifie qu'aucune somme de flux n'est effectuée.
Les bulles / icônes peuvent être configurées pour avoir une entité lors du clic, mais les nombres sont calculés à partir des flux. Vous pouvez afficher un texte / valeur d'entité supplémentaire sur la partie supérieure de la bulle.
Il y a 7 flux principaux et 2 flux d'appareils. Les principaux flux sont:
Vous en avez besoin au moins un, le placement des bulles principales est fixé pour l'instant. Certains vont soustraire la valeur d'une bulle et ajouteront de la valeur à une autre bulle. Par exemple:
BATTERIE_TO_HOUSE se soustraire de la bulle / icône de la batterie et ajoutera à la bulle / icône de la maison.
Les entités cliquables peuvent être configurées via ces entités mais sont facultatives:
Cette carte a commencé en fonction de la carte de la carte de consommation animée de Bessarabov, merci encore pour ce travail. Ensuite, il a été réécrit complètement en prenant une carte de chauffeur comme point de départ mais avec TypeScript. J'ai également emprunté quelques idées à la carte électrique malheureusement pas encore autant que je le souhaiterais;)
En plus des flux et une entité cliquable, chaque bulle peut avoir une valeur supplémentaire en haut. Pour définir ceux dont vous avez besoin pour ajouter un capteur à l'une des entités:
J'ai toujours la charge de courant de la batterie comme batterie_extra_entité. Dans ce cas, l'icône de la batterie changera également avec la charge.
Actuellement, je n'ai pas de configuration minimale, mais certaines combinaisons peuvent ne pas avoir de sens. Je vous conseille d'utiliser les bulles que vous souhaitez et les flux liés à celui que vous utilisez. La partie gauche de ces exemples est fixe, changez la partie droite avec vos propres capteurs. Il n'y a pas d'entités requises, bien que votre configuration puisse afficher des résultats étranges si vous laissez certaines combinaisons. Le capteur peut être appelé comme vous voulez, ce sont des capteurs de puissance en watt ou kilowatt (choisissez la même chose pour tous, il en créera KW). Tous les capteurs doivent être des valeurs positives
Un exemple de combinaison simple:
type : ' custom:tesla-style-solar-power-card '
grid_consumption_entity : sensor.grid_consumption
house_consumption_entity : sensor.house_consumption
grid_to_house_entity : sensor.grid_consumptionCela vous permettra d'avoir deux bulles qui sont cliquables et le flux de la grille à la maison, ce qui déterminera les valeurs sous les icônes.
type : ' custom:tesla-style-solar-power-card '
name : My Flows
# 7 flows between bubbles
grid_to_house_entity : sensor.grid_consumption
grid_to_battery_entity : sensor.grid_battery_charge
generation_to_grid_entity : sensor.grid_feed_in
generation_to_battery_entity : sensor.battery_charging
generation_to_house_entity : sensor.solar_consumption
battery_to_house_entity : sensor.battery_consumption
battery_to_grid_entity : sensor.battery_to_grid
# extra values to show as text above icons
battery_extra_entity : sensor.battery_charge
house_extra_entity : sensor.current_temperature
generation_extra_entity : sensor.percent_cloud_coverage
grid_extra_entity : sensor.monthly_feed_in
# optional appliances with consumption and extra values
appliance1_consumption_entity : sensor.car_consumption
appliance1_extra_entity : sensor.car_battery_state_of_charge
appliance2_consumption_entity : sensor.heating_consumption
appliance2_extra_entity : sensor.heating_operation
# optional 4 main bubble icons for clickable entities
grid_entity : sensor.grid_consumption
house_entity : sensor.house_consumption
generation_entity : sensor.solar_yield
battery_entity : sensor.battery_consumptionSi vous définissez une entité supplémentaire pour la bulle de batterie avec l'état de charge, l'icône sera remplacée dynamiquement par la valeur de cette entité et remplacera la définition de l'icône ci-dessus.
Il y a quelques variables de configuration qui modifient le comportement: en-tête:
name : ' My Tesla Power Card! 'Un pour forcer W (watt) au lieu de KW, définissez-le sur 1 pour l'utiliser:
show_w_not_kw : 1Un pour définir une vitesse différente pour les points en mouvement, le facteur de vitesse normal est de 0,04, donc restez près de ce nombre au début, 0,2 est très rapide:
speed_factor : 0.03Un pour le seuil à partir duquel w est converti en KW (l'exemple ci-dessous changera W en kilowatt à partir de 5000 W):
threshold_in_k : 5threshold_in_k n'est pas compatible avec show_w_not_kw, ce dernier annulera le threshold_in_k
Un pour masquer les lignes non actives pour l'utiliser, assurez-vous que tout fonctionne avant de masquer les lignes:
hide_inactive_lines : 1Un pour ajouter des lacunes pour les lignes électriques comme le panneau d'énergie de HA le fait:
show_gap : trueUn pour colorer la bulle de la maison en fonction du plus haut débit:
change_house_bubble_color_with_flow : 1Un pour ne pas montrer de cercles mobiles mais un diagramment d'écoulement d'énergie (lignes plus épais lorsque le flux est plus élevé):
energy_flow_diagramm : 1Il y a un facteur pour rendre les lignes plus épaisses en fonction de votre flux normal, c'est 2:
energy_flow_diagramm_line_factor : 2Vous pouvez soustraire les valeurs de l'appareil de la valeur de la maison sans affecter le flux de ligne:
house_without_appliances_values : 1Ensuite, il y a 6 variables de configuration d'icônes:
grid_icon : ' mdi:transmission-tower '
generation_icon : ' mdi:solar-panel-large '
house_icon : ' mdi:home '
battery_icon : ' mdi:battery '
appliance1_icon : ' mdi:car-sports '
appliance2_icon : ' mdi:car-sports 'N'oubliez pas que vous pouvez créer des capteurs de modèle si vous en manquez un comme le rendement solaire dans Solar_Consumption et Grid_Feed_in ou si vous en manquez un autre comme Home_Consomption. Certains onduleurs ont des valeurs positives et négatives, ici tous les capteurs doivent être des valeurs positives, alors créez des capteurs de modèle comme:
battery_consumption :
value_template : ' {% set batter_cons = sensor.powerwall_battery_now | int %}
{% if batter_cons > 0 %}
{{ batter_cons | int }}
{% else %}
0
{% endif %} '
device_class : power
unit_of_measurement : WAfin d'utiliser cette carte avec l'intégration Tesla Powerwall, vous devrez d'abord créer des capteurs supplémentaires. Cette carte s'attend à une entité avec une valeur numérique positive par ligne indiquée à l'écran. Cependant, l'intégration Tesla Powerwall crée des capteurs qui deviennent négatifs ou positifs selon que l'énergie est consommée ou alimente ce mètre particulier.
Heureusement, cela peut être facilement fixé avec l'ajout de quelques capteurs de modèle, ceux que vous auriez besoin d'ajouter sont illustrés ci-dessous. Notez que ces capteurs supposent les noms par défaut pour chaque entité créée par l'intégration Tesla Powerwall, si vous avez changé les noms de vos entités, vous devrez ajuster la configuration en conséquence:
# Templates for Actual Powerflow transfer charts (APF - Actual PowerFlow)
#
# For the math to add up a new Real House Load must be calculated and used, witch includes
# the inverter consumption and excludes rounding errors and corrects inaccurate power readings.
#
# It never made sense that inbound power sometimes does not equal outbound power. This fixes it!
#
# Developed by AviadorLP modified for powerwall by purcell-lab
# Correctly sets battery2grid & grid2battery flows
#
template :
- sensor :
# grid sensor must be negative when importing and positive when exporting
- name : APF Grid Entity
device_class : power
state_class : measurement
unit_of_measurement : W
state : " {{ (0 - states('sensor.powerwall_site_now')|float(0)*1000)|int(0) }} "
# sensor must always be 0 or positive (i think they always are)
- name : APF House Entity
device_class : power
state_class : measurement
unit_of_measurement : W
state : " {{ (states('sensor.powerwall_load_now')|float(0)*1000)|int(0) }} "
# sensor must always be 0 or positive (i think they always are)
- name : APF Generation Entity
device_class : power
state_class : measurement
unit_of_measurement : W
state : " {{ (states('sensor.powerwall_solar_now')|float(0)*1000)|int(0) }} "
# battery sensor must be positive when charging and negative when discharging
- name : APF Battery Entity
device_class : power
state_class : measurement
unit_of_measurement : W
state : " {{ (0 - states('sensor.powerwall_battery_now')|float(0)*1000)|int(0) }} "
# Required to reduce code later on
- name : APF Grid Import
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_grid_entity')|int(default=0) < 0 %}
{{ states('sensor.apf_grid_entity')|int(default=0)|abs }}
{% else %}
0
{% endif %}
# Inverter consumption and power losses due to Inverter transfers and power conversions (AC/DC)
# excludes rounding errors made worst by the fact that some inverters round all sensors readings to INT
# Occasionally this might be negative probably due to cumulative errors in not so accurate power readings.
- name : APF Inverter Power Consumption
device_class : power
state_class : measurement
unit_of_measurement : W
state : " {{ states('sensor.apf_generation_entity')|int(default=0) - states('sensor.apf_battery_entity')|int(default=0) - states('sensor.apf_house_entity')|int(default=0) - states('sensor.apf_grid_entity')|int(default=0) }} "
# Real House Load Includes Inverter consumption and transfer conversions and losses and rounding errors.
# It never made sense that inbound power sometimes does not equal outbound power. This fixes it!
- name : APF Real House Load
device_class : power
state_class : measurement
unit_of_measurement : W
state : " {{ states('sensor.apf_house_entity')|int(default=0) + states('sensor.apf_inverter_power_consumption')|int(default=0) }} "
icon : mdi:home-lightning-bolt
- name : APF Grid2House
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_grid_import')|int(default=0) > states('sensor.apf_real_house_load')|int(default=0) %}
{{ states('sensor.apf_real_house_load')|int(default=0) }}
{% else %}
{{ states('sensor.apf_grid_import')|int(default=0) }}
{% endif %}
- name : APF Grid2Batt
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_grid_import')|int(default=0) > states('sensor.apf_real_house_load')|int(default=0) %}
{{ states('sensor.apf_grid_import')|int(default=0) - states('sensor.apf_real_house_load')|int(default=0) }}
{% else %}
0
{% endif %}
- name : APF Batt2House
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_battery_entity')|int(default=0) < 0 %}
{% if states('sensor.apf_battery_entity')|int(default=0)|abs > states('sensor.apf_real_house_load')|int(default=0) %}
{{ states('sensor.apf_real_house_load')|int(default=0) }}
{% else %}
{{ states('sensor.apf_battery_entity')|int(default=0)|abs }}
{% endif %}
{% else %}
0
{% endif %}
# This might be called house to grid, and can happen in rare circumstances,
# like when the inverter is not able to do a precise adjustment of power fast enough
# or when you want to force a discharge of the battery or something...
# But it only happens with battery or other power generator users.
- name : APF Batt2Grid
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_battery_entity')|int(default=0) < 0 %}
{% if states('sensor.apf_battery_entity')|int(default=0)|abs > states('sensor.apf_real_house_load')|int(default=0) %}
{{ states('sensor.apf_battery_entity')|int(default=0)|abs - states('sensor.apf_real_house_load')|int(default=0) }}
{% else %}
0
{% endif %}
{% else %}
0
{% endif %}
- name : APF Solar2Grid
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_grid_entity')|int(default=0) > states('sensor.apf_batt2grid')|int(default=0) %}
{{ states('sensor.apf_grid_entity')|int(default=0) - states('sensor.apf_batt2grid')|int(default=0) }}
{% else %}
0
{% endif %}
- name : APF Solar2House
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_generation_entity')|int(default=0) > 0 and states('sensor.apf_real_house_load')|int(default=0) > states('sensor.apf_batt2house')|int(default=0) + states('sensor.apf_grid_import')|int(default=0) %}
{% if states('sensor.apf_generation_entity')|int(default=0) > states('sensor.apf_real_house_load')|int(default=0) - states('sensor.apf_batt2house')|int(default=0) - states('sensor.apf_grid2house')|int(default=0) %}
{{ states('sensor.apf_real_house_load')|int(default=0) - states('sensor.apf_batt2house')|int(default=0) - states('sensor.apf_grid2house')|int(default=0) }}
{% else %}
{{ states('sensor.apf_generation_entity')|int(default=0) }}
{% endif %}
{% else %}
0
{% endif %}
- name : APF Solar2Batt
device_class : power
state_class : measurement
unit_of_measurement : W
state : >
{% if states('sensor.apf_generation_entity')|int(default=0) > 0 and states('sensor.apf_battery_entity')|int(default=0) > 0 %}
{% if states('sensor.apf_battery_entity')|int(default=0) > states('sensor.apf_grid2batt')|int(default=0) %}
{% if states('sensor.apf_generation_entity')|int(default=0) - states('sensor.apf_solar2house')|int(default=0) > states('sensor.apf_battery_entity')|int(default=0) - states('sensor.apf_grid2batt')|int(default=0) %}
{{ states('sensor.apf_battery_entity')|int(default=0) - states('sensor.apf_grid2batt')|int(default=0) }}
{% else %}
{{ states('sensor.apf_generation_entity')|int(default=0) - states('sensor.apf_solar2house')|int(default=0) - states('sensor.apf_solar2grid')|int(default=0) }}
{% endif %}
{% else %}
0
{% endif %}
{% else %}
0
{% endif %}Après avoir inclus ces capteurs, vous pouvez configurer la carte comme ceci:
type : ' custom:tesla-style-solar-power-card '
grid_entity : sensor.apf_grid_entity
house_entity : sensor.apf_real_house_load
generation_entity : sensor.apf_generation_entity
battery_entity : sensor.apf_battery_entity
grid_to_house_entity : sensor.apf_grid2house
grid_to_battery_entity : sensor.apf_grid2batt
generation_to_grid_entity : sensor.apf_solar2grid
generation_to_battery_entity : sensor.apf_solar2batt
generation_to_house_entity : sensor.apf_solar2house
battery_to_house_entity : sensor.apf_batt2house
battery_to_grid_entity : sensor.apf_batt2grid
battery_extra_entity : sensor.powerwall_charge V0.9 V0.92 VBETA1.1.
Les demandes de traction sont les bienvenues. Pour les changements majeurs, veuillez d'abord ouvrir un problème pour discuter de ce que vous souhaitez changer.
Licence Apache V 2.0