Compare commits

...

4 commits
v_2.4 ... main

Author SHA1 Message Date
f19730ff1d Fix: Secondary sensor display - Wh/EUR precision
- Separate Wh from W in getSecondaryVal: Wh values >= 1000
  now display as kWh (e.g., 794 Wh -> 0.79 kWh)
- EUR/ct/€ units now show 2 decimal places (0.28 EUR/kWh
  instead of 0.3)
- W values continue using _formatPower() as before

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:27:27 +01:00
jayjojayson
1031af5b3d
v_2.4 2026-03-04 13:04:31 +01:00
jayjojayson
97fd58f671
v_2.4 2026-03-04 01:24:16 +01:00
jayjojayson
2dc24eca1b v_2.4 2026-03-04 01:05:14 +01:00
5 changed files with 14 additions and 25 deletions

1
.github/FUNDING.yml vendored
View file

@ -1,2 +1,3 @@
---
ko_fi: jayjojayson
custom: ["https://www.paypal.me/quadFlyerFW"]

View file

@ -7,7 +7,7 @@
[![Stars](https://img.shields.io/github/stars/jayjojayson/power-flux-card)](https://github.com/jayjojayson/power-flux-card/stargazers)
# Power Flux Card
# Power Flux Card
The ⚡ Power Flux Card is an advanced, animated energy flow card for Home Assistant. It visualizes the power distribution between Solar, Grid, Battery, and Consumers with beautiful neon effects and diffrent animations.
@ -133,7 +133,7 @@ entities:
battery_soc: sensor.battery_soc
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.solar_power') | float > 0 %}
--icon-solar-color: #00ff88;
{% else %}
@ -153,7 +153,7 @@ entities:
battery_soc: sensor.battery_soc
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.grid_power_combined') | float < 0 %}
--text-grid-color: #ff3333;
{% else %}
@ -173,7 +173,7 @@ entities:
battery_soc: sensor.battery_soc
card_mod:
style: |
power-flux-card {
:host {
{% set soc = states('sensor.battery_soc') | float %}
{% if soc > 80 %}
--neon-green: #00ff88;
@ -197,7 +197,7 @@ entities:
consumer_1: sensor.wallbox_power
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.wallbox_power') | float > 500 %}
--pipe-consumer-1-color: #a855f7;
--icon-consumer-1-color: #a855f7;
@ -220,7 +220,7 @@ entities:
consumer_1: sensor.wallbox_power
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.solar_power') | float == 0 %}
--icon-solar-color: #555555;
--text-solar-color: #777777;

View file

@ -1820,13 +1820,7 @@ console.log(
const val = parseFloat(state.state);
if (isNaN(val)) return state.state + (state.attributes.unit_of_measurement ? ' ' + state.attributes.unit_of_measurement : '');
const unit = state.attributes.unit_of_measurement || '';
if (unit === 'W' || unit === 'Wh') {
return this._formatPower(val);
}
if (unit === 'kWh' || unit === 'kW') {
return val.toFixed(1) + ' ' + unit;
}
return val.toFixed(1) + (unit ? ' ' + unit : '');
if (unit === 'W') { return this._formatPower(val); } if (unit === 'Wh') { if (Math.abs(val) >= 1000) return (val / 1000).toFixed(2) + ' kWh'; return Math.round(val) + ' Wh'; } if (unit === 'kWh' || unit === 'kW') { return val.toFixed(1) + ' ' + unit; } if (unit.includes('EUR') || unit.includes('ct') || unit.includes('€')) { return val.toFixed(2) + ' ' + unit; } return val.toFixed(1) + (unit ? ' ' + unit : '');
};
// Determine existence of main entities

View file

@ -135,7 +135,7 @@ entities:
battery_soc: sensor.battery_soc
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.solar_power') | float > 0 %}
--icon-solar-color: #00ff88;
{% else %}
@ -155,7 +155,7 @@ entities:
battery_soc: sensor.battery_soc
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.grid_power_combined') | float < 0 %}
--text-grid-color: #ff3333;
{% else %}
@ -175,7 +175,7 @@ entities:
battery_soc: sensor.battery_soc
card_mod:
style: |
power-flux-card {
:host {
{% set soc = states('sensor.battery_soc') | float %}
{% if soc > 80 %}
--neon-green: #00ff88;
@ -199,7 +199,7 @@ entities:
consumer_1: sensor.wallbox_power
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.wallbox_power') | float > 500 %}
--pipe-consumer-1-color: #a855f7;
--icon-consumer-1-color: #a855f7;
@ -222,7 +222,7 @@ entities:
consumer_1: sensor.wallbox_power
card_mod:
style: |
power-flux-card {
:host {
{% if states('sensor.solar_power') | float == 0 %}
--icon-solar-color: #555555;
--text-solar-color: #777777;

View file

@ -820,13 +820,7 @@ console.log(
const val = parseFloat(state.state);
if (isNaN(val)) return state.state + (state.attributes.unit_of_measurement ? ' ' + state.attributes.unit_of_measurement : '');
const unit = state.attributes.unit_of_measurement || '';
if (unit === 'W' || unit === 'Wh') {
return this._formatPower(val);
}
if (unit === 'kWh' || unit === 'kW') {
return val.toFixed(1) + ' ' + unit;
}
return val.toFixed(1) + (unit ? ' ' + unit : '');
if (unit === 'W') { return this._formatPower(val); } if (unit === 'Wh') { if (Math.abs(val) >= 1000) return (val / 1000).toFixed(2) + ' kWh'; return Math.round(val) + ' Wh'; } if (unit === 'kWh' || unit === 'kW') { return val.toFixed(1) + ' ' + unit; } if (unit.includes('EUR') || unit.includes('ct') || unit.includes('€')) { return val.toFixed(2) + ' ' + unit; } return val.toFixed(1) + (unit ? ' ' + unit : '');
};
// Determine existence of main entities