November 26, 20241 yr 3 hours ago, slipx said: I have 3x5.32kWh batteries but the inverter sees this as 1 virtual battery. I assume the guys who want multiple batteries are running the bigger inverters that have two physical battery inputs or maybe reading data from the BMS directly? Yeah... I'm totally happy with 1 battery icon that represents all 5 as it gives me visibility of total battery storage available. I think your assumption is correct
November 27, 20241 yr I can dream, can't I?🤪 Basically, the big green block represents the pack info, as generated by the inverter (holistic view), with a Nav. path the graphs. The SOC%, time to full etc, stays below that. Data for each battery displayed inside the battery. Then instead of the 44% info to the right, display each bank's cell delta voltage difference. (I ran out of drawing skills) - not a biggy, as each batteries' navigation path can take one to a more detail summary/graph/info page. BTW, I have a USB/RS232 cable direct from the master battery to my HA server to collect all the batteries entities, so I have them all available. Fortunately, my batteries have Pace BMS, which does make life a little bit easier to get the info into HA.
November 27, 20241 yr 3 hours ago, Sidewinder said: I can dream, can't I?🤪 Basically, the big green block represents the pack info, as generated by the inverter (holistic view), with a Nav. path the graphs. The SOC%, time to full etc, stays below that. Data for each battery displayed inside the battery. Then instead of the 44% info to the right, display each bank's cell delta voltage difference. (I ran out of drawing skills) - not a biggy, as each batteries' navigation path can take one to a more detail summary/graph/info page. BTW, I have a USB/RS232 cable direct from the master battery to my HA server to collect all the batteries entities, so I have them all available. Fortunately, my batteries have Pace BMS, which does make life a little bit easier to get the info into HA. Sorry to hijack your request but I've also got such a cable so would love to pull the info from my Greenrich batts. Any input would greatly be appreciated
November 28, 20241 yr Author 18 hours ago, Sidewinder said: I can dream, can't I?🤪 Basically, the big green block represents the pack info, as generated by the inverter (holistic view), with a Nav. path the graphs. The SOC%, time to full etc, stays below that. Data for each battery displayed inside the battery. Then instead of the 44% info to the right, display each bank's cell delta voltage difference. (I ran out of drawing skills) - not a biggy, as each batteries' navigation path can take one to a more detail summary/graph/info page. BTW, I have a USB/RS232 cable direct from the master battery to my HA server to collect all the batteries entities, so I have them all available. Fortunately, my batteries have Pace BMS, which does make life a little bit easier to get the info into HA. OK so the runtime and charge text would only be for the "virtual" battery which is reported by the inverter. Then each individual battery voltage, current and power you read directly from the BMS? Maybe there should be an option for different battery displays i.e. Option 1 - 1 virtual battery (default) Option 2- 2 virtual batteries (for larger inverters that support multiple inputs) Option 3 - 1 virtual battery, but display individual battery stats from BMS ( as per your example above) Edited November 28, 20241 yr by slipx
December 1, 20241 yr @slipx I think those options should cover most use cases, with option 1 being in the majority, with a few takers for option 3, like me. Not a lot of people can/know how to read the data directly from each battery. I was just lucky, but will be testing battery stats collection on a system with 4 Waco batteries. Not a lot of info available, still looking...but difficult to test, as I don't know someone in Gauteng with Waco's.
December 5, 20241 yr Hi @slipx, Been playing around with your latest version ( Here is what I have tried sofar: Using my BMS's own references in the Entities for Battery 1 & 2, battery 1 goes "offline" - or red in my case, whereas Battery 2 is ok. (apart from the power value, but that is a HA template issue) If I look at the entities tab, I see that Battery 1's references refers to the Virtual Battery bank entities, instead of "Battery 1" whereas Battery 2's references all include a "2" reference. Is this understanding c correct. My BMS entities looks like this "Generic Lithium Pack X parameter" , where X is the pack number, and parameter is all the normal battery related stuff, like Current, Voltage, State of Charge, Cell y voltage etc. Weird though, that Bank 1's capacity now reports in kWh, while the right on reports Wh. When I revert back to virtual battery settings, this is the result: Looks better, but the values info of the battery 1 is the virtual info. I sure that was not your original intension.
December 5, 20241 yr Author At the moment the card treats the two batteries independent of each other. (You can use virtual or individual battery data) Obviously you will only be able to monitor two batteries when using individual battery data. You can ignore the entity labels. if you provide power, voltage, current, shutdown soc, and total battery energy it should display and calculate the correct charge and runtime per battery (virtual or physical). I cant see why inputting the individual BMS readings would not work. The sensors would need to provide HA with the correct state information i.e. unit of measurement, entity type etc. You can check that in the developer tools. When I was testing this I used two virtual batteries from two separate inverters and it was displayed correctly. The card does not know that the sensor is from the actual battery or the virtual battery provided by the inverter. It just needs to be in the expected format.
December 5, 20241 yr @Sidewinder out of curiosity are you using this https://github.com/Tertiush/bmspace to get the Pace BMS data? Been looking into this to perhaps get more data regarding the batteries into HA vs just the normal combined info pulled from the Inverter. If so does it also give the battery cycle data as well? (Tracking mine with some math calculations based on consumption etc, but if the data can be pulled in this will make life much easier) The deployment of this for me is not mission critical at the moment but if this can give me more info regarding each battery state individually that I'm running this might be worth the rabbit hole to get this up and running.
December 5, 20241 yr @slipx, Thanks for the quick reply. I tested my calcs, as my BMS does not have a power entity, and it seems to calculate correctly. I will needs to dig a bit deeper into HA. The example below was with battery max charge current = 35A
December 5, 20241 yr @-cK-, Yes, I'm using terthius' add-on, but the development version. Gives one access to the following:
December 5, 20241 yr Excellent Thanks @Sidewinder Might just be worth the effort then just need to figure out how to get a RS232 connected between the battery pack and Server over a 30meter cat 5e. I'm using that for the RS485 to the inverter and can pair off a twisted pair to a RS232 but I don't think the RS232 can carry signal that far (well according to chatGPT that is) so might need to go with a EPS32 bridge setup/RS232 to RS485 adapters on both ends or something. Time to go some more research and digging down this rabbit hole 😄
December 12, 20241 yr I'm now part of the I'd like more batteries as an option club... Digging the concept from Sidewinder as I'm runng two instances of the card. One on my main dashboard in lite mode so the single virtual battery here is fine and then a panel card dedicated to just my solar setup and there I run the full card so thinking I could set the virtual battery as the default on the lite and then the 4 indipendant batteries as on the full card if this happens down the road. In the mean time I've dumped the BMS data to a dedicated page for just the batteries. Edited December 12, 20241 yr by -cK-
January 11, 20251 yr Author V6.3.0 What's Changed - feat: display up to 6 MPPT's on the lite or compact card when `wide` view is enabled closes #586 **Full Changelog**: https://github.com/slipx06/sunsynk-power-flow-card/compare/v6.2.2...v6.3.0 V6.4.0 What's Changed - feat: you can now assign entities to your essential loads that make the icons clickable. Useful if you want to turn a load on or off from the card. Set the entities using the load1_switch, load2_switch, load3_switch etc. attributes. **Full Changelog**: https://github.com/slipx06/sunsynk-power-flow-card/compare/v6.3.0...v6.4.0
January 12, 20251 yr 15 hours ago, slipx said: V6.3.0 What's Changed - feat: display up to 6 MPPT's on the lite or compact card when `wide` view is enabled closes #586 **Full Changelog**: https://github.com/slipx06/sunsynk-power-flow-card/compare/v6.2.2...v6.3.0 V6.4.0 What's Changed - feat: you can now assign entities to your essential loads that make the icons clickable. Useful if you want to turn a load on or off from the card. Set the entities using the load1_switch, load2_switch, load3_switch etc. attributes. **Full Changelog**: https://github.com/slipx06/sunsynk-power-flow-card/compare/v6.3.0...v6.4.0 Hey @slipx Compliments of the New Year, I hope you're well! I've tried using the icon switch functionality mentioned above but it doesn't do anything. The icons remain un-clickable. Running the latest version of HA and all other frontend cards etc are up to date. I've also tried different browsers and clearning cache etc but still the same result. Here's the list of entities added under the entities section: load1_switch: switch.pool_pump load2_switch: switch.main_geyser load3_switch: switch.mns_geyser load4_switch: switch.kitchen_geyser Any help would greatly be appreciated
January 12, 20251 yr On 2024/12/12 at 11:56 PM, -cK- said: I'm now part of the I'd like more batteries as an option club... Digging the concept from Sidewinder as I'm runng two instances of the card. One on my main dashboard in lite mode so the single virtual battery here is fine and then a panel card dedicated to just my solar setup and there I run the full card so thinking I could set the virtual battery as the default on the lite and then the 4 indipendant batteries as on the full card if this happens down the road. In the mean time I've dumped the BMS data to a dedicated page for just the batteries. This is awesome.. Would you mind sharing the hardware used to pull this info from the batteries? I have a single RS232 cable plus converter to USB and can access each battery's data via the Greenrich app on my Windows PC but if you could share how you managed to connect them all so that they push the data in HA, that would be awesome. Assuming it's all connected to an ESP32 or something but a wiring diagrim plus your config would be awesome
January 12, 20251 yr @Muttley what BMs system does your battery use? My batteries uses the Pace BMS system so I'm using this integration to pull it to HA: https://github.com/Tertiush/bmspace If it uses something else you might need to look if it isn't perhaps on this list of other integrations: https://powerforum.co.za/topic/27424-reading-battery-data-into-esphome/ My connectioin setup is using a EPS32 but that is just as a WiFi link from the RS232 to the server as the server is to far from the Batteries so the integration I use have the option of direct serial(usb) or IP address. With the Pace BMS you just hook it to the master battery setup the integration and it pulls all the battery entities into MQTT for all the batteries connected to the master. My wiring setup you can see over here: https://powerforum.co.za/topic/16639-revov-r100-rj232-pin-diagram/#findComment-213257 As for the card config this is the config for one of the batteries, you will just need to adjust accoding to your sensor naming. type: vertical-stack cards: - type: custom:stack-in-card keep: margin: false box_shadow: false background: false cards: - type: grid square: false columns: 1 cards: - type: markdown content: >- <center><font size=4><b>Battery 1: {% if states('sensor.generic_lithium_pack_1_current') | float < 0 %} <font color="orange">Discharging</font> {% elif states('sensor.generic_lithium_pack_1_current') | float > 0 %} <font color="#3090C7">Charging</font> {% else %} <font color="#18f50c">Floating</font> {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: vertical-stack cards: - type: horizontal-stack cards: - type: vertical-stack cards: - type: vertical-stack cards: - type: entity card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } entity: sensor.generic_lithium_pack_1_voltage name: Total voltage icon: none - type: entities card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } entities: - entity: sensor.generic_lithium_pack_1_full_capacity name: Capacity card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_remaining_capacity name: Remaining card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_cell_max_volt_diff name: Max Volt Diff card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_balancing1 name: Balancing card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - type: vertical-stack cards: - type: vertical-stack cards: - type: entity entity: sensor.generic_lithium_pack_1_current name: Total Current icon: none card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: entities card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } entities: - entity: sensor.generic_lithium_pack_1_state_of_health name: SOH card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_state_of_charge name: SOC card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_cycles name: Cycles card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_balancing2 name: Balancing card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - square: false type: grid cards: - square: false type: grid cards: - type: markdown content: |2- <center><font color="#18f50c"><font size=3>Cell 01-04 {% if states('sensor.generic_lithium_pack_1_temperature_1') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_1') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_1') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_1') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_1') }} °C {% endif %} <br> Cell 05-08 {% if states('sensor.generic_lithium_pack_1_temperature_2') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_2') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C {% endif %} <br> NOS Temp {% if states('sensor.generic_lithium_pack_1_temperature_5') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_5') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_5') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_5') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_5') }} °C {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>Cell 09-12 {% if states('sensor.generic_lithium_pack_1_temperature_3') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_3') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_3') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_3') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_3') }} °C {% endif %} <br> Cell 13-16 {% if states('sensor.generic_lithium_pack_1_temperature_4') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_4') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_4') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_4') }} °C {% endif %} <br> ENV Temp {% if states('sensor.generic_lithium_pack_1_temperature_6') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_6') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_6') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_6') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_6') }} °C {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } columns: 2 - square: false type: grid cards: - type: markdown content: |2- <center><font color="#18f50c"><font size=3>01. {% if states('sensor.generic_lithium_pack_1_cell_1_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_1_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_1_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_1_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_1_voltage') }} mV {% endif %} <br> 02. {% if states('sensor.generic_lithium_pack_1_cell_2_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_2_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_2_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_2_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_2_voltage') }} mV {% endif %} <br> 03. {% if states('sensor.generic_lithium_pack_1_cell_3_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_3_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_3_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_3_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_3_voltage') }} mV {% endif %} <br> 04. {% if states('sensor.generic_lithium_pack_1_cell_4_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_4_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_4_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_4_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_4_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>09. {% if states('sensor.generic_lithium_pack_1_cell_9_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_9_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_9_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_9_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_9_voltage') }} mV {% endif %} <br> 10. {% if states('sensor.generic_lithium_pack_1_cell_10_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_10_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_10_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_10_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_10_voltage') }} mV {% endif %} <br> 11. {% if states('sensor.generic_lithium_pack_1_cell_11_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_11_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_11_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_11_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_11_voltage') }} mV {% endif %} <br> 12. {% if states('sensor.generic_lithium_pack_1_cell_12_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_12_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_12_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_12_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_12_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>05. {% if states('sensor.generic_lithium_pack_1_cell_5_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_5_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_5_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_5_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_5_voltage') }} mV {% endif %} <br> 06. {% if states('sensor.generic_lithium_pack_1_cell_6_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_6_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_6_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_6_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_6_voltage') }} mV {% endif %} <br> 07. {% if states('sensor.generic_lithium_pack_1_cell_7_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_7_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_7_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_7_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_7_voltage') }} mV {% endif %} <br> 08. {% if states('sensor.generic_lithium_pack_1_cell_8_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_8_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_8_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_8_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_8_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>13. {% if states('sensor.generic_lithium_pack_1_cell_13_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_13_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_13_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_13_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_13_voltage') }} mV {% endif %} <br> 14. {% if states('sensor.generic_lithium_pack_1_cell_14_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_14_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_14_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_14_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_14_voltage') }} mV {% endif %} <br> 15. {% if states('sensor.generic_lithium_pack_1_cell_15_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_15_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_15_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_15_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_15_voltage') }} mV {% endif %} <br> 16. {% if states('sensor.generic_lithium_pack_1_cell_16_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_16_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_16_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_16_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_16_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } columns: 2 columns: 1 - type: custom:stack-in-card keep: margin: false box_shadow: false background: false cards: - type: grid square: false columns: 1 cards: - type: markdown content: >- <center><font size=4><b>Warning:<br> <font color="orange">{{states('sensor.generic_lithium_pack_1_warnings')}} card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } grid_options: columns: full view_layout: column: 1 Just want to credit Dimumal for this card as I found this over on the HA community and tweaked it to my liking: https://community.home-assistant.io/t/jk-bms-integration/604035/8 Edited January 12, 20251 yr by -cK-
January 12, 20251 yr Author 1 hour ago, Muttley said: Hey @slipx Compliments of the New Year, I hope you're well! I've tried using the icon switch functionality mentioned above but it doesn't do anything. The icons remain un-clickable. Running the latest version of HA and all other frontend cards etc are up to date. I've also tried different browsers and clearning cache etc but still the same result. Here's the list of entities added under the entities section: load1_switch: switch.pool_pump load2_switch: switch.main_geyser load3_switch: switch.mns_geyser load4_switch: switch.kitchen_geyser Any help would greatly be appreciated Hi. Those should be added to the load section load: show_aux: false off_colour: grey show_daily: true animation_speed: 8 max_power: 8000 load1_name: Geyser load1_switch: switch.geyser load1_icon: sensor.template_mdi auto_scale: true path_threshold: 90 etc
January 12, 20251 yr 5 hours ago, -cK- said: @Muttley what BMs system does your battery use? My batteries uses the Pace BMS system so I'm using this integration to pull it to HA: https://github.com/Tertiush/bmspace If it uses something else you might need to look if it isn't perhaps on this list of other integrations: https://powerforum.co.za/topic/27424-reading-battery-data-into-esphome/ My connectioin setup is using a EPS32 but that is just as a WiFi link from the RS232 to the server as the server is to far from the Batteries so the integration I use have the option of direct serial(usb) or IP address. With the Pace BMS you just hook it to the master battery setup the integration and it pulls all the battery entities into MQTT for all the batteries connected to the master. My wiring setup you can see over here: https://powerforum.co.za/topic/16639-revov-r100-rj232-pin-diagram/#findComment-213257 As for the card config this is the config for one of the batteries, you will just need to adjust accoding to your sensor naming. type: vertical-stack cards: - type: custom:stack-in-card keep: margin: false box_shadow: false background: false cards: - type: grid square: false columns: 1 cards: - type: markdown content: >- <center><font size=4><b>Battery 1: {% if states('sensor.generic_lithium_pack_1_current') | float < 0 %} <font color="orange">Discharging</font> {% elif states('sensor.generic_lithium_pack_1_current') | float > 0 %} <font color="#3090C7">Charging</font> {% else %} <font color="#18f50c">Floating</font> {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: vertical-stack cards: - type: horizontal-stack cards: - type: vertical-stack cards: - type: vertical-stack cards: - type: entity card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } entity: sensor.generic_lithium_pack_1_voltage name: Total voltage icon: none - type: entities card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } entities: - entity: sensor.generic_lithium_pack_1_full_capacity name: Capacity card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_remaining_capacity name: Remaining card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_cell_max_volt_diff name: Max Volt Diff card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_balancing1 name: Balancing card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - type: vertical-stack cards: - type: vertical-stack cards: - type: entity entity: sensor.generic_lithium_pack_1_current name: Total Current icon: none card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: entities card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } entities: - entity: sensor.generic_lithium_pack_1_state_of_health name: SOH card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_state_of_charge name: SOC card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_cycles name: Cycles card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - entity: sensor.generic_lithium_pack_1_balancing2 name: Balancing card_mod: style: hui-generic-entity-row: $: | state-badge { display: none; } .info { margin-left:0 !important; Color: white; } - square: false type: grid cards: - square: false type: grid cards: - type: markdown content: |2- <center><font color="#18f50c"><font size=3>Cell 01-04 {% if states('sensor.generic_lithium_pack_1_temperature_1') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_1') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_1') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_1') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_1') }} °C {% endif %} <br> Cell 05-08 {% if states('sensor.generic_lithium_pack_1_temperature_2') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_2') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C {% endif %} <br> NOS Temp {% if states('sensor.generic_lithium_pack_1_temperature_5') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_5') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_5') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_5') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_5') }} °C {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>Cell 09-12 {% if states('sensor.generic_lithium_pack_1_temperature_3') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_3') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_3') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_3') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_3') }} °C {% endif %} <br> Cell 13-16 {% if states('sensor.generic_lithium_pack_1_temperature_4') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_4') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_4') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_2') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_4') }} °C {% endif %} <br> ENV Temp {% if states('sensor.generic_lithium_pack_1_temperature_6') > states('input_number.bms_max_batt_temp') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_temperature_6') }} °C</font> {% elif states('sensor.generic_lithium_pack_1_temperature_6') < states('input_number.bms_min_batt_temp') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_temperature_6') }} °C</font> {% else %} {{ states('sensor.generic_lithium_pack_1_temperature_6') }} °C {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } columns: 2 - square: false type: grid cards: - type: markdown content: |2- <center><font color="#18f50c"><font size=3>01. {% if states('sensor.generic_lithium_pack_1_cell_1_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_1_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_1_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_1_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_1_voltage') }} mV {% endif %} <br> 02. {% if states('sensor.generic_lithium_pack_1_cell_2_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_2_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_2_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_2_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_2_voltage') }} mV {% endif %} <br> 03. {% if states('sensor.generic_lithium_pack_1_cell_3_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_3_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_3_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_3_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_3_voltage') }} mV {% endif %} <br> 04. {% if states('sensor.generic_lithium_pack_1_cell_4_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_4_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_4_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_4_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_4_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>09. {% if states('sensor.generic_lithium_pack_1_cell_9_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_9_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_9_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_9_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_9_voltage') }} mV {% endif %} <br> 10. {% if states('sensor.generic_lithium_pack_1_cell_10_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_10_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_10_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_10_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_10_voltage') }} mV {% endif %} <br> 11. {% if states('sensor.generic_lithium_pack_1_cell_11_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_11_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_11_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_11_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_11_voltage') }} mV {% endif %} <br> 12. {% if states('sensor.generic_lithium_pack_1_cell_12_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_12_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_12_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_12_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_12_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>05. {% if states('sensor.generic_lithium_pack_1_cell_5_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_5_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_5_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_5_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_5_voltage') }} mV {% endif %} <br> 06. {% if states('sensor.generic_lithium_pack_1_cell_6_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_6_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_6_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_6_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_6_voltage') }} mV {% endif %} <br> 07. {% if states('sensor.generic_lithium_pack_1_cell_7_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_7_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_7_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_7_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_7_voltage') }} mV {% endif %} <br> 08. {% if states('sensor.generic_lithium_pack_1_cell_8_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_8_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_8_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_8_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_8_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } - type: markdown content: |2- <center><font color="#18f50c"><font size=3>13. {% if states('sensor.generic_lithium_pack_1_cell_13_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_13_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_13_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_13_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_13_voltage') }} mV {% endif %} <br> 14. {% if states('sensor.generic_lithium_pack_1_cell_14_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_14_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_14_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_14_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_14_voltage') }} mV {% endif %} <br> 15. {% if states('sensor.generic_lithium_pack_1_cell_15_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_15_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_15_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_15_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_15_voltage') }} mV {% endif %} <br> 16. {% if states('sensor.generic_lithium_pack_1_cell_16_voltage') > states('input_number.bms_max_voltage_cell') %} <font color="#3090C7">{{ states('sensor.generic_lithium_pack_1_cell_16_voltage') }} mV</font> {% elif states('sensor.generic_lithium_pack_1_cell_16_voltage') < states('input_number.bms_min_voltage_cell') %} <font color="orange">{{ states('sensor.generic_lithium_pack_1_cell_16_voltage') }} mV</font> {% else %} {{ states('sensor.generic_lithium_pack_1_cell_16_voltage') }} mV {% endif %} <br> card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } columns: 2 columns: 1 - type: custom:stack-in-card keep: margin: false box_shadow: false background: false cards: - type: grid square: false columns: 1 cards: - type: markdown content: >- <center><font size=4><b>Warning:<br> <font color="orange">{{states('sensor.generic_lithium_pack_1_warnings')}} card_mod: style: | ha-card { box-shadow: none; background: rgba(0,0,0,0); border: white solid 1px !important; } grid_options: columns: full view_layout: column: 1 Just want to credit Dimumal for this card as I found this over on the HA community and tweaked it to my liking: https://community.home-assistant.io/t/jk-bms-integration/604035/8 Wowzers - thanks for all the info. I've got Greenrich batteries and not sure of the BMS software but I see that the BMSPace addon supports another model of Greenrich batts so hopefully I'll be ok. Weekend project loading 😍 Thanks once again!
January 12, 20251 yr 5 hours ago, slipx said: Hi. Those should be added to the load section load: show_aux: false off_colour: grey show_daily: true animation_speed: 8 max_power: 8000 load1_name: Geyser load1_switch: switch.geyser load1_icon: sensor.template_mdi auto_scale: true path_threshold: 90 etc Thanks o grand master
January 15, 20251 yr @slipx I was wondering could an upper/max threshold be added to the load side of things? I know there is the option to grey it out or hide it but it might be nice to get a bit of a visual representation when hitting your limits on devices or overall load. E.G. in my case something like this: Daily load below 5000 cyan, above 5000 red Individual loads below 20 grey above 20 & below 2000 cyan above 2000 red (not sure if this would be possible as a per load option or just as global for all addition loads setting 🤔) So in effect: Grey = Off Cyan = In use Red = Loads to high/something is wrong Not sure if this is something that would be possible or in the scope of the card just throwing it out there as a suggestion. Ignore the 💩 paint skills but something like this. Thanks Edited January 15, 20251 yr by -cK-
January 16, 20251 yr @slipx and @kellerza Great work on this, I have previously only used thingsboard and nodered but now I am almost convinced HA is easier after all the new HA updates. I have one small query/issue about the readings from the inverter that are used on the flows. It looks like you have deprecated the dc and ac temperature readings? Am I correct with that statement or am I maybe doing something wrong my side? Sunsynk/Deye Inverter Add-on (multi) - Current version: 0.8.2 and these are the measurements I am getting (Missing The Temperatures) 07:09:07 INFO Read every (inverter 1) +-----+----------------------------------------------------------------------------------+ | s | Sensors | +-----+----------------------------------------------------------------------------------+ | 3 | essential_power, grid_l2_power, grid_power, load_l1_power, pv2_power, | | | load_l2_power, pv1_power, rated_power, load_power, grid_ct_power, | | | inverter_power, non_essential_power, aux_power, battery_power | | 5 | prog6_capacity, grid_charge_battery_current, prog3_capacity, prog6_power, | | | prog5_capacity, load_limit, prog1_power, prog4_power, prog4_capacity, | | | prog1_capacity, prog4_charge, prog2_power, prog1_time, solar_export, prog5_time, | | | grid_charge_enabled, prog3_charge, battery_max_charge_current, priority_load, | | | prog2_time, battery_low_capacity, prog6_charge, prog3_time, | | | battery_restart_capacity, prog2_capacity, use_timer, device_type, prog2_charge, | | | prog5_power, prog3_power, prog4_time, prog5_charge, | | | battery_max_discharge_current, prog1_charge, battery_shutdown_capacity, | | | prog6_time | | 15 | grid_voltage, battery_current, pv1_voltage, serial, grid_frequency, | | | battery_voltage, protocol, overall_state, grid_connected, pv2_voltage, | | | battery_soc, pv1_current, pv2_current, inverter_current, load_frequency | | 60 | date_time | | 300 | total_battery_charge, total_battery_discharge, day_load_energy, total_pv_energy, | | | day_battery_charge, total_grid_import, day_grid_export, day_grid_import, | | | day_pv_energy, total_grid_export, day_battery_discharge | +-----+----------------------------------------------------------------------------------+ 07:09:07 INFO Report every (inverter 1) +-----+----------------------------------------------------------------------------------+ | s | Sensors | +-----+----------------------------------------------------------------------------------+ | 60 | essential_power, grid_l2_power, grid_power, load_l1_power, pv2_power, | | | load_l2_power, pv1_power, load_power, grid_ct_power, inverter_power, | | | non_essential_power, date_time, aux_power, battery_power | | 300 | grid_voltage, prog6_capacity, grid_charge_battery_current, day_load_energy, | | | prog3_capacity, prog6_power, total_grid_import, prog5_capacity, load_limit, | | | prog1_power, prog4_power, battery_current, total_battery_discharge, pv1_voltage, | | | prog4_capacity, total_pv_energy, day_grid_export, prog1_capacity, | | | day_grid_import, prog4_charge, battery_soc, day_pv_energy, prog2_power, | | | prog1_time, solar_export, prog5_time, grid_charge_enabled, prog3_charge, | | | battery_max_charge_current, battery_voltage, priority_load, prog2_time, | | | pv2_voltage, pv1_current, prog6_charge, total_grid_export, | | | day_battery_discharge, pv2_current, battery_low_capacity, prog3_time, | | | load_frequency, battery_restart_capacity, prog2_capacity, total_battery_charge, | | | use_timer, prog2_charge, prog5_power, grid_frequency, day_battery_charge, | | | prog3_power, prog4_time, overall_state, grid_connected, prog5_charge, | | | battery_max_discharge_current, prog1_charge, battery_shutdown_capacity, | | | inverter_current, prog6_time | +-----+----------------------------------------------------------------------------------+
January 16, 20251 yr @WannabeSolarSparky Have you added them in the sensors section of the configuration? This is where I added if to mine to get that additional sensor data. Edited January 16, 20251 yr by -cK-
January 16, 20251 yr 7 minutes ago, -cK- said: Have you added them in the sensors section of the configuration? This is where I added if to mine to get that additional sensor data. 🙃 I am new to HA so have no idea where that is inside HA... Maybe give me a hint in the right direction Nevermind I found it Thanks for pointing me in the right direction, gonna test quick and see if those readings are coming in Edited January 16, 20251 yr by WannabeSolarSparky
January 16, 20251 yr 14 minutes ago, -cK- said: Have you added them in the sensors section of the configuration? This is where I added if to mine to get that additional sensor data. Perfecto That did the trick Thanks @-cK- now I need to go fix the fan controller
January 16, 20251 yr Author On 2025/01/15 at 10:16 AM, -cK- said: @slipx I was wondering could an upper/max threshold be added to the load side of things? I know there is the option to grey it out or hide it but it might be nice to get a bit of a visual representation when hitting your limits on devices or overall load. E.G. in my case something like this: Daily load below 5000 cyan, above 5000 red Individual loads below 20 grey above 20 & below 2000 cyan above 2000 red (not sure if this would be possible as a per load option or just as global for all addition loads setting 🤔) So in effect: Grey = Off Cyan = In use Red = Loads to high/something is wrong Not sure if this is something that would be possible or in the scope of the card just throwing it out there as a suggestion. Ignore the 💩 paint skills but something like this. Thanks Hi. Its a good idea but setting this as a global variable (the easiest option) may not be that useful as I assume you would want to set this per load. I'll add it to the ideas list 😃 OK not so hard to implement Edited January 16, 20251 yr by slipx
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.