Advertencia: cambio de configuración de ruptura
¡Tienes que definir los flujos de nuevo!
Sin definir cada flujo, no se mostrará ninguna línea, lea la parte de uso con cuidado (las burbujas se pueden hacer clic pero esto es opcional)
Esta es una tarjeta asistente a domicilio para instalaciones solares. Proporciona un gráfico de estilo Tesla para ver los flujos de energía ((k) W).

He tratado de hacerlo lo más genérico posible, por ahora hay 6 burbujas con 4 iconos principales y 2 electrodomésticos adicionales. Los cuatro valores principales de icono están controlados por la suma de los flujos desde y hacia ellos:
Los dos electrodomésticos opcionales pueden ser cualquier consumidor en la casa, están unidos a la casa. Estos dos se controlan directamente por su consumo. Lo que significa que no se hace una suma de flujo.
Las burbujas/iconos se pueden configurar para tener una entidad cuando se hace clic, pero los números se calculan a partir de los flujos. Puede mostrar un texto/valor de entidad adicional en la parte superior de la burbuja.
Hay 7 flujos principales y 2 flujos de electrodomésticos. Los flujos principales son:
Necesita al menos uno, la colocación de las burbujas principales se fija por ahora. Algunos sustarán el valor de una burbuja y agregarán valor a otra burbuja. Por ejemplo:
Battery_To_house sustará de la burbuja/icono de la batería y se agregará a la burbuja/icono de la casa.
Las entidades que se pueden hacer clic se pueden configurar a través de estas entidades, pero son opcionales:
Esta tarjeta comenzó según la tarjeta de la tarjeta de consumo animado de Bessarabov, gracias nuevamente por ese trabajo. Luego se reescribió por completo tomando la tarjeta Boilerplate como punto de partida pero con TypeScript. También tomé prestadas algunas ideas de la tarjeta de ruedas de poder, lamentablemente aún no tantas como me gustaría;)
Además de los flujos y la entidad que se puede hacer clic, cada burbuja puede tener un valor adicional en la parte superior. Para definir aquellos que necesita agregar un sensor a cualquiera de las entidades:
Siempre tengo la carga de corriente de la batería como Battery_Extra_Entity. En este caso, el icono de la batería también cambiará con la carga.
Actualmente no tengo una configuración mínima, pero algunas combinaciones pueden no tener sentido. Aconsejaría usar las burbujas que desee y los flujos vinculados al uno que está utilizando. La parte izquierda de estos ejemplos es fija, cambie la parte derecha con sus propios sensores. No hay entidades requeridas, aunque su configuración puede mostrar resultados extraños si deja algunas combinaciones. El sensor se puede llamar lo que desee, son sensores de powermeter en Watt o Kilowatt (elija lo mismo para todos, creará KW a partir de él). Todos los sensores deben ser valores positivos
Un simple ejemplo de combinación:
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_consumptionEsto le permitirá tener dos burbujas que se pueden hacer clic y el flujo de una red en casa, lo que determinará los valores debajo de los iconos.
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 define una entidad adicional para la burbuja de la batería con el estado de carga, el icono se reemplazará dinámicamente con el valor de esa entidad y anulará la definición del icono anterior.
Hay algunas variables de configuración que cambian el comportamiento: encabezado:
name : ' My Tesla Power Card! 'Uno para forzar w (vatt) en lugar de kw, configúrelo en 1 para usarlo:
show_w_not_kw : 1Uno para establecer una velocidad diferente para los puntos móviles, el factor de velocidad normal es 0.04, así que manténgase cerca de ese número al principio, 0.2 es realmente rápido:
speed_factor : 0.03Uno para el umbral del que W se convierte en KW (el ejemplo a continuación cambiará W a Kilowatt a partir de 5000 W en adelante):
threshold_in_k : 5Umshold_in_k no es compatible con show_w_not_kw, este último anulará el umbral_in_k
Uno para ocultar las líneas que no están activas para usarlo, asegúrese de que todo funcione antes de ocultar las líneas:
hide_inactive_lines : 1Uno para agregar espacios para las líneas eléctricas de la forma en que lo hace el panel de energía de HA:
show_gap : trueUno para colorear la burbuja de la casa dependiendo del flujo más alto:
change_house_bubble_color_with_flow : 1Uno para no mostrar círculos en movimiento sino un diagrama de flujo de energía (líneas más gruesas cuando el flujo es más alto):
energy_flow_diagramm : 1Hay un factor para hacer que las líneas sean más gruesas dependiendo de su flujo normalmente es 2:
energy_flow_diagramm_line_factor : 2Puede restar los valores del dispositivo del valor de la casa sin afectar el flujo de línea:
house_without_appliances_values : 1Luego hay 6 variables de configuración de iconos:
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 'Recuerde que puede crear sensores de plantilla si le falta uno como el rendimiento solar de Solar_Consuming y Grid_Feed_in o si le falta otro como Home_Consuming. Algunos inversores tienen valores positivos y negativos, aquí todos los sensores deben ser valores positivos, así que cree sensores de plantilla como:
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 : WPara usar esta tarjeta con la integración Tesla PowerWall, primero deberá crear algunos sensores adicionales. Esta tarjeta espera una entidad con un valor numérico positivo por línea que se muestra en la pantalla. Sin embargo, la integración de Tesla Powerwall crea sensores que se vuelven negativos o positivos dependiendo de si la energía se consume o alimenta a ese medidor en particular.
Afortunadamente, esto se puede solucionar fácilmente con la adición de unos pocos sensores de plantilla, los que necesitaría agregar se muestran a continuación. Tenga en cuenta que estos sensores asumen los nombres predeterminados para cada entidad creada por la integración Tesla PowerWall, si ha cambiado los nombres de sus entidades, entonces deberá ajustar la configuración en consecuencia:
# 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 %}Después de haber incluido estos sensores, puede configurar la tarjeta de esta manera:
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.
Las solicitudes de extracción son bienvenidas. Para cambios importantes, abra primero un problema para discutir lo que le gustaría cambiar.
Licencia de Apache v 2.0