Compare commits
No commits in common. "main" and "v_2.4" have entirely different histories.
5 changed files with 25 additions and 14 deletions
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
|
|
@ -1,3 +1,2 @@
|
|||
---
|
||||
ko_fi: jayjojayson
|
||||
custom: ["https://www.paypal.me/quadFlyerFW"]
|
||||
|
|
|
|||
12
README.md
12
README.md
|
|
@ -7,7 +7,7 @@
|
|||
[](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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% if states('sensor.solar_power') | float == 0 %}
|
||||
--icon-solar-color: #555555;
|
||||
--text-solar-color: #777777;
|
||||
|
|
|
|||
8
dist/power-flux-card.js
vendored
8
dist/power-flux-card.js
vendored
|
|
@ -1820,7 +1820,13 @@ 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') { 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 : '');
|
||||
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 : '');
|
||||
};
|
||||
|
||||
// Determine existence of main entities
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ entities:
|
|||
battery_soc: sensor.battery_soc
|
||||
card_mod:
|
||||
style: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% 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: |
|
||||
:host {
|
||||
power-flux-card {
|
||||
{% if states('sensor.solar_power') | float == 0 %}
|
||||
--icon-solar-color: #555555;
|
||||
--text-solar-color: #777777;
|
||||
|
|
|
|||
|
|
@ -820,7 +820,13 @@ 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') { 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 : '');
|
||||
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 : '');
|
||||
};
|
||||
|
||||
// Determine existence of main entities
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue