Last active
April 21, 2026 10:02
-
-
Save fbradyirl/08fef90bd11d7bdddf588a56e668d879 to your computer and use it in GitHub Desktop.
Recreate Sigenergy UI (using modbus sensors) as Home Assistant Card
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| type: custom:button-card | |
| show_state: true | |
| tap_action: none | |
| custom_fields: | |
| home_image: | |
| card: | |
| type: picture | |
| image: local/Sigenergy/home_has_solar_has_car.png | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| sigenstor_home_image: | |
| card: | |
| type: picture | |
| image: local/Sigenergy/sigenstor_home.png | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| ammeter_home_image: | |
| card: | |
| type: picture | |
| image: local/Sigenergy/ammeter_home.png | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| ac_charger_bg_image: | |
| card: | |
| type: picture | |
| image: local/Sigenergy/ac_charger_bg.png | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| pv_power: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: "{{states('sensor.sigen_inverter_pv_power') | round(1) }}kW" | |
| secondary: SOLAR | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 14px !important; | |
| font-weight: bold !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .secondary { | |
| font-size: 12px !important; | |
| color: gray !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| load_power: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: "{{states('sensor.sigen_plant_consumed_power') | round(1) }}kW" | |
| secondary: HOME | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 14px !important; | |
| font-weight: bold !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .secondary { | |
| font-size: 12px !important; | |
| color: gray !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| position: relative; | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| grid_power: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set import = states('sensor.sigen_plant_grid_import_power') | | |
| round(1) %} {% set export = | |
| states('sensor.sigen_plant_grid_export_power') | round(1) %} {% if | |
| import > 0 %} | |
| {{ import }}kW | |
| {% elif export > 0 %} | |
| {{ -export }}kW | |
| {% else %} | |
| 0 | |
| {% endif %} | |
| secondary: | | |
| GRID | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 14px !important; | |
| font-weight: bold !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .secondary { | |
| font-size: 12px !important; | |
| color: gray !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| position: relative; | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| grid_flow_label: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set import = states('sensor.sigen_plant_grid_import_power') | | |
| round(1) %} {% set export = | |
| states('sensor.sigen_plant_grid_export_power') | round(1) | |
| %} {% if import > 0 %} | |
| Importing | |
| {% elif export > 0 %} | |
| Exporting | |
| {% else %} {% endif %} | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 12px !important; | |
| font-weight: bold !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| color: lightgray !important; | |
| position: relative; | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| battery_soc: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set soc = states('sensor.sigen_plant_battery_state_of_charge') %} {% | |
| set soc_power = states('sensor.sigen_plant_battery_power') | round(1) | |
| %} | |
| {% if soc_power != 0 %} | |
| {{ soc_power | abs }}kW · {{ soc }}% | |
| {% else %} | |
| {{ soc }}% | |
| {% endif %} | |
| secondary: SigenStor | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 14px !important; | |
| font-weight: bold !important; | |
| position: relative; | |
| overflow: visible !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| text-align: left; | |
| } | |
| .secondary { | |
| font-size: 12px !important; | |
| color: gray !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| battery_discharge_label: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set soc = states('sensor.sigen_plant_battery_state_of_charge') %} {% | |
| set soc_power = states('sensor.sigen_plant_battery_power') | round(1) | |
| %} | |
| {% if soc_power < 0 %} | |
| Discharging | |
| {% else %} | |
| {% endif %} | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 12px !important; | |
| font-weight: bold !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| color: lightgreen !important; | |
| position: relative; | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| battery_charge_label: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set soc = states('sensor.sigen_plant_battery_state_of_charge') %} {% | |
| set soc_power = states('sensor.sigen_plant_battery_power') | round(1) | |
| %} | |
| {% if soc_power == 0 %} | |
| {% else %} | |
| {% if soc_power > 0 %} | |
| Charging | |
| {% endif %} | |
| {% endif %} | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 12px !important; | |
| font-weight: bold !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| color: red !important; | |
| position: relative; | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| ev_soc: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set power = states('sensor.buzz_lightgear_charger_power') | float %} | |
| {% set soc = states('sensor.buzz_lightgear_battery') %} {% set range = | |
| states('sensor.buzz_lightgear_range') | round(0) %} {% if power > 0 %} | |
| {{ power }}kW - {{ soc }}% ({{ range }}km) | |
| {% else %} | |
| {{ soc }}% ({{ range }}km) | |
| {% endif %} | |
| secondary: > | |
| {% set soc = states('sensor.buzz_lightgear_battery') %} {% if soc == | |
| 'unknown' %} | |
| Car Asleep | |
| {% else %} | |
| Buzz Lightgear | |
| {% endif %} | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 14px !important; | |
| font-weight: bold !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .secondary { | |
| font-size: 12px !important; | |
| color: gray !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| water_diverter_power: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set power = states('sensor.sigen_2024052302935_smart_home_1_power') | | |
| float %} {% if power > 0 %} | |
| {{ power | round(2) }}kW | |
| {% else %} | |
| {% endif %} | |
| secondary: > | |
| {% set power = states('sensor.sigen_2024052302935_smart_home_1_power') | | |
| float %} {% if power > 0 %} | |
| 🛁 Heating | |
| {% else %} | |
| {% endif %} | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 14px !important; | |
| font-weight: bold !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .secondary { | |
| font-size: 12px !important; | |
| color: gray !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| ev_ac_power: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set acrunstatus = | |
| states('sensor.sigen_ac_charger_system_state').split('-')[0] %} {% set | |
| amps = states('number.sigen_ac_charger_charger_output_current') %} | |
| {% if acrunstatus == 'Charging' %} | |
| {{ states('sensor.sigen_ac_charger_charging_power') }} kW ({{ amps | float | round(0) | int }}A) | |
| {% else %} | |
| {{ acrunstatus }} | |
| {% endif %} | |
| secondary: | | |
| AC CHARGER | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 14px !important; | |
| font-weight: bold !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .secondary { | |
| font-size: 12px !important; | |
| color: gray !important; | |
| position: relative; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| ev_charging_label: | |
| card: | |
| type: custom:mushroom-template-card | |
| primary: > | |
| {% set soc_power = states('sensor.buzz_lightgear_charger_power') | float | |
| %} | |
| {% if soc_power > 0 %} | |
| Charging | |
| {% else %} | |
| {% endif %} | |
| multiline_secondary: false | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 12px !important; | |
| font-weight: bold !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| color: red !important; | |
| position: relative; | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| ev_charging_icon: | |
| card: | |
| type: custom:mushroom-template-card | |
| icon: >- | |
| {% set soc_power = states('sensor.buzz_lightgear_charger_power') | float | |
| %} | |
| {% if soc_power > 0 %} | |
| mdi:lightning-bolt | |
| {% endif %} | |
| icon_color: >- | |
| {% set soc_power = states('sensor.buzz_lightgear_charger_power') | float | |
| %} | |
| {% if soc_power > 0 %} | |
| red | |
| {% endif %} | |
| fill_container: false | |
| card_mod: | |
| style: | |
| mushroom-state-info$: | | |
| .primary { | |
| font-size: 12px !important; | |
| font-weight: bold !important; | |
| letter-spacing: -0.1px !important; /* Reduce letter spacing */ | |
| color: lightgreen !important; | |
| position: relative; | |
| overflow: visible !important; | |
| text-align: left; | |
| } | |
| .: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| } | |
| vertical_line: | |
| card: | |
| type: custom:button-card | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background-color: transparent; | |
| border: none; | |
| position: relative; | |
| width: 1px; | |
| height: 110px; /* Adjust height as needed */ | |
| background-color: gray; /* Light gray background */ | |
| overflow: hidden; | |
| animation: rotation 2s linear infinite; | |
| } | |
| .line { | |
| position: absolute; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(0deg, green 50%, transparent 50%); | |
| background-size: 100% 200%; | |
| } | |
| @keyframes rotation { | |
| 0% { | |
| transform: rotate(0deg); | |
| } | |
| 100% { | |
| transform: rotate(00deg); | |
| } | |
| } | |
| styles: | |
| card: | |
| - align-self: start | |
| - height: > | |
| [[[ return states['input_number.sigen_home_card_height'].state + 'px'; | |
| ]]] | |
| - opacity: 1 | |
| - background-color: transparent | |
| - border: none | |
| custom_fields: | |
| home_image: | |
| - position: absolute | |
| - top: 5px | |
| - left: 10px | |
| - width: 395px | |
| sigenstor_home_image: | |
| - position: absolute | |
| - top: 5px | |
| - left: 10px | |
| - width: 395px | |
| ammeter_home_image: | |
| - position: absolute | |
| - top: 5px | |
| - left: 10px | |
| - width: 395px | |
| ac_charger_bg_image: | |
| - position: absolute | |
| - top: 5px | |
| - left: 10px | |
| - width: 395px | |
| pv_power: | |
| - position: absolute | |
| - top: 15px | |
| - left: 210px | |
| - width: 100px | |
| load_power: | |
| - position: absolute | |
| - top: 15px | |
| - left: 300px | |
| - width: 100px | |
| water_diverter_power: | |
| - position: absolute | |
| - top: 110px | |
| - left: 130px | |
| - width: 100px | |
| grid_power: | |
| - position: absolute | |
| - top: 300px | |
| - left: 300px | |
| - width: 100px | |
| grid_flow_label: | |
| - position: absolute | |
| - top: 335px | |
| - left: 300px | |
| - width: 100px | |
| battery_soc: | |
| - position: absolute | |
| - top: 300px | |
| - left: 175px | |
| - width: 100px | |
| battery_discharge_label: | |
| - position: absolute | |
| - top: 335px | |
| - left: 175px | |
| - width: 100px | |
| battery_charge_label: | |
| - position: absolute | |
| - top: 335px | |
| - left: 175px | |
| - width: 100px | |
| ev_soc: | |
| - position: absolute | |
| - top: 300px | |
| - left: 20px | |
| - width: 100px | |
| ev_ac_power: | |
| - position: absolute | |
| - top: 15px | |
| - left: 20px | |
| - width: 100px | |
| ev_charging_label: | |
| - position: absolute | |
| - top: 335px | |
| - left: 20px | |
| - width: 100px | |
| ev_charging_icon: | |
| - position: absolute | |
| - top: 245px | |
| - left: 10px | |
| - width: 100px | |
| vertical_line: | |
| - position: absolute | |
| - top: 47px | |
| - left: 305px | |
| - width: 1px | |
| - height: 100px |
Please update to Version 2.5.0 and restart HA.
Most of your issues should be fixed.
You may want to remove Genergy completely, re-add to HACS and fresh install.
https://github.com/SpengeSec/Genergy-Dashboard?tab=readme-ov-file#changelog
Moved to: SpengeSec/Genergy-Dashboard#1
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm going to push an update soon.
You should use this integration for sigenergy modbus integration: https://my.home-assistant.io/redirect/hacs_repository/?owner=TypQxQ&repository=Sigenergy-Local-Modbus&category=Integration
Furthermore, you can change entitites and additioanl functions in the Settings view (the wheel button top left, second button).
Why is your House image card white? The integration uses the black one as far as I know.