August 29, 20232 yr 19 hours ago, iiznh said: Just setup the standard energy dashboard. It will give you breakdown per hour. Getting rid of Eskom is not a financially sound decision as you will never recoup the cost from your batteries(at current prices). You can still inflict a lot of hurt by just using as much solar as possible and giving them the few remaining kWh. Thanks for this - didn't think to check the energy dashboard 🤓 Don't want to get rid of them, just want to get sufficient battery capacity to see us through the evenings so trying to get an average load.
August 31, 20232 yr is my modbus working ? [10:15:01] INFO: Starting mbusd -d -L - -v 2 -p /dev/ttyUSB0 -s 9600 -m 8N1 -P 502 31 Aug 2023 10:15:01 mbusd-0.5.1 started... 31 Aug 2023 10:15:01 tty: trying to open /dev/ttyUSB0 (speed 9600 mode 8N1) 31 Aug 2023 10:15:25 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:15:34 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:20:05 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:20:15 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:20:27 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:20:38 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:20:51 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:21:01 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:21:13 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:21:24 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:21:36 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:21:47 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:22:00 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:22:10 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:22:24 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:22:35 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:22:48 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:22:58 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:23:11 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:23:21 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:23:34 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:23:45 conn_close(): closing connection from 172.30.33.0 31 Aug 2023 10:23:57 conn_open(): accepting connection from 172.30.33.0 31 Aug 2023 10:24:08 conn_close(): closing connection from 172.30.33.0 because SS add on log stops ? s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun sunsynk (no readiness notification) s6-rc: info: service legacy-services successfully started 09:23:56 INFO Loading HASS OS configuration 09:23:57 INFO Schedules: +-----------+-----+------+--------+-----------+----------+------------+ | Key | src | Read | Report | Change by | Change % | Change any | +-----------+-----+------+--------+-----------+----------+------------+ | date_time | | 60 | 60 | | | True | | rw | | 5 | 300 | | | True | | w | * | 5 | 60 | 80 | | | | kwh | | 300 | 300 | | | | | any_unit | | 15 | 300 | | | | | no_unit | | 15 | 300 | | | True | +-----------+-----+------+--------+-----------+----------+------------+ 09:23:57 INFO Using Single phase sensor definitions. 09:23:57 INFO Added hidden sensors as other sensors depend on it: Rated power, Serial 09:23:57 INFO Connecting to tcp://homeassistant.local:502 09:23:57 INFO PyModbus 3.4.1 tcp: homeassistant.local:502 09:23:57 INFO Reading startup sensors Battery Low Capacity, Prog3 Time, Prog1 Time, Serial, Rated power, Prog6 Time, Prog4 Time, Prog5 Time, Prog2 Time Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/local/lib/python3.11/site-packages/ha_addon_sunsynk_multi/__main__.py", line 72, in <module> main() File "/usr/local/lib/python3.11/site-packages/ha_addon_sunsynk_multi/__main__.py", line 67, in main loop.run_until_complete(main_loop(loop)) File "/usr/local/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/ha_addon_sunsynk_multi/__main__.py", line 37, in main_loop await ist.connect() File "/usr/local/lib/python3.11/site-packages/ha_addon_sunsynk_multi/a_inverter.py", line 103, in connect if not await self.read_sensors(sensors=SOPT.startup): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/ha_addon_sunsynk_multi/a_inverter.py", line 59, in read_sensors await self.inv.read_sensors(sensors) File "/usr/local/lib/python3.11/site-packages/sunsynk/sunsynk.py", line 134, in read_sensors raise IOError("; ".join(errs)) OSError: OSError reading 5 registers from 3: failed to read register 3 - function code: 131; OSError reading 2 registers from 16: failed to read register 16 - function code: 131; OSError reading 1 registers from 219: failed to read register 219 - function code: 131; OSError reading 5 registers from 250: failed to read register 250 - function code: 131; OSError reading 1 registers from 255: failed to read register 255 - function code: 131 [09:24:08] WARNING: Halt add-on with exit code 1 s6-rc: info: service legacy-services: stopping s6-rc: info: service legacy-services successfully stopped s6-rc: info: service legacy-cont-init: stopping s6-rc: info: service legacy-cont-init successfully stopped s6-rc: info: service fix-attrs: stopping s6-rc: info: service fix-attrs successfully stopped s6-rc: info: service s6rc-oneshot-runner: stopping s6-rc: info: service s6rc-oneshot-runner successfully stopped Edited August 31, 20232 yr by leecavturbo
September 4, 20232 yr @slipx Hi, hope you doing well. Is there any chance you can help and add forecasts days ( Solcast ) D4, D5,D6, and D7 to the forecast card , would really appreciate it. Solcast has added 7 days to their forecasts. Thanks Vaughan
September 6, 20232 yr I’m all up and running with kellerz add on now and have data on dashboard. the only thing I'm missing is Pv2 power and Pv1+Pv2 power. then looking for an automation to turn off solar export while battery charging
September 6, 20232 yr Author On 2023/09/04 at 8:31 PM, Vaughanza said: @slipx Hi, hope you doing well. Is there any chance you can help and add forecasts days ( Solcast ) D4, D5,D6, and D7 to the forecast card , would really appreciate it. Solcast has added 7 days to their forecasts. Thanks Vaughan Here you go type: custom:apexcharts-card view_layout: grid-area: solar header: show: true standard_format: true show_states: true colorize_states: true apex_config: chart: height: 350px tooltip: enabled: true shared: true followCursor: true graph_span: 8d now: show: true label: Now span: start: day offset: '-1day' all_series_config: type: area opacity: 0.3 stroke_width: 1 series: - entity: sensor.sunsynk_battery_soc name: Battery float_precision: 0 type: line color: '#f06292' opacity: 0.6 yaxis_id: capacity extend_to: now show: legend_value: true in_header: false group_by: func: last duration: 5m - entity: sensor.sunsynk_solar_power name: Solar Power float_precision: 3 color: '#ff9800' yaxis_id: kWh unit: kW transform: return x/1000; extend_to: now show: legend_value: true in_header: false group_by: func: avg duration: 5m - entity: sensor.solcast_pv_forecast_forecast_today name: Solar Forecast (D1) extend_to: false color: grey opacity: 0.3 stroke_width: 0 yaxis_id: kWh show: legend_value: false in_header: false data_generator: | return entity.attributes.detailedForecast.map((entry) => { return [new Date(entry.period_start), entry.pv_estimate]; }); - entity: sensor.solcast_pv_forecast_forecast_tomorrow name: Solar Forecast (D2) float_precision: 3 extend_to: false color: grey opacity: 0.3 stroke_width: 0 yaxis_id: kWh show: legend_value: false in_header: false data_generator: | return entity.attributes.detailedForecast.map((entry) => { return [new Date(entry.period_start), entry.pv_estimate]; }); - entity: sensor.solcast_pv_forecast_forecast_day_3 name: Solar Forecast (D3) float_precision: 3 extend_to: false color: grey opacity: 0.3 stroke_width: 0 yaxis_id: kWh show: legend_value: false in_header: false data_generator: | return entity.attributes.detailedForecast.map((entry) => { return [new Date(entry.period_start), entry.pv_estimate]; }); - entity: sensor.solcast_pv_forecast_forecast_day_4 name: Solar Forecast (D4) float_precision: 3 extend_to: false color: grey opacity: 0.3 stroke_width: 0 yaxis_id: kWh show: legend_value: false in_header: false data_generator: | return entity.attributes.detailedForecast.map((entry) => { return [new Date(entry.period_start), entry.pv_estimate]; }); - entity: sensor.solcast_pv_forecast_forecast_day_5 name: Solar Forecast (D5) float_precision: 3 extend_to: false color: grey opacity: 0.3 stroke_width: 0 yaxis_id: kWh show: legend_value: false in_header: false data_generator: | return entity.attributes.detailedForecast.map((entry) => { return [new Date(entry.period_start), entry.pv_estimate]; }); - entity: sensor.solcast_pv_forecast_forecast_day_6 name: Solar Forecast (D6) float_precision: 3 extend_to: false color: grey opacity: 0.3 stroke_width: 0 yaxis_id: kWh show: legend_value: false in_header: false data_generator: | return entity.attributes.detailedForecast.map((entry) => { return [new Date(entry.period_start), entry.pv_estimate]; }); - entity: sensor.solcast_pv_forecast_forecast_day_7 name: Solar Forecast (D7) float_precision: 3 extend_to: false color: grey opacity: 0.3 stroke_width: 0 yaxis_id: kWh show: legend_value: false in_header: false data_generator: | return entity.attributes.detailedForecast.map((entry) => { return [new Date(entry.period_start), entry.pv_estimate]; }); - entity: sensor.solcast_pv_forecast_forecast_today yaxis_id: header_only name: Solar Forecast (D1) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_forecast_remaining_today yaxis_id: header_only name: Forecast (D1 Remaining) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_forecast_tomorrow yaxis_id: header_only name: Forecast (D2) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_forecast_day_3 yaxis_id: header_only name: Solar Forecast (D3) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_forecast_day_4 yaxis_id: header_only name: Solar Forecast (D4) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_forecast_day_5 yaxis_id: header_only name: Solar Forecast (D5) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_forecast_day_6 yaxis_id: header_only name: Solar Forecast (D6) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_forecast_day_7 yaxis_id: header_only name: Solar Forecast (D7) color: grey show: legend_value: true in_header: true in_chart: false - entity: sensor.solcast_pv_forecast_api_last_polled yaxis_id: header_only name: Forecast (Last Update) color: grey unit: ' min.' transform: return ((Date.now()) - (new Date(x).getTime())) / 60 / 60 / 24 show: legend_value: true in_header: true in_chart: false yaxis: - id: capacity show: true opposite: true decimals: 0 max: 100 min: 0 apex_config: tickAmount: 5 - id: kWh show: true min: 0 apex_config: tickAmount: 5 - id: header_only show: false
September 11, 20232 yr Author Hi All 2.5.1 has been released. The card can now be configured to hide all battery information if you don't have any energy storage. I've also fixed the display of additional essential loads when show_solar and/or show_battery attributes are set to false. The can be configured for both the lite and full version of the card. Some pics below.
September 12, 20232 yr The card can now be configured to hide all battery information if you don't have any energy storage. I've also fixed the display of additional essential loads when show_solar and/or show_battery attributes are set to false. Very Nice! This will work well with a SolisSmartDongle that I recently built for a friend in the UK. The inverter is purely grid-tied What would be your recommendation for people that have 3Phase systems? Currently I am thinking of just adding the 3Phases together? Are you planning on adding options to display the different Phases (would also work well for american bi-phase/split phase systems)
September 12, 20232 yr Author Thanks. I would recommend you add the phases together for now using template sensors. The current card size limits how much data can be displayed (specifically in the full mode). Adding individual phases would require a larger canvas and redesign.
September 12, 20232 yr Author 2.6.0 lets you add an optional card title and set the font colour and size title: Sunsynk Inverter title_colour: Grey title_size: 32px
September 13, 20232 yr Slipx thank you for the nice card is it possoble for you to make the power and current on the battery show minus when the battery is charging ?
September 13, 20232 yr Author Slipx thank you for the nice card is it possoble for you to make the power and current on the battery show minus when the battery is charging ? Hi. They only show absolute values on the card. The animated dot shows the state of charge or discharge. On second thought maybe I should make that an option.... Edited September 13, 20232 yr by slipx
September 14, 20232 yr Author @Yuri I've released 2.6.1. Battery power and current are now displayed as reported by the sensor. If you prefer the absolute values you can use the `show_absolute: true` battery setting
September 14, 20232 yr @Yuri I've released 2.6.1. Battery power and current are now displayed as reported by the sensor. If you prefer the absolute values you can use the `show_absolute: true` battery setting Thanks!
September 23, 20232 yr Author v2.7.0 🚀 Exciting New Features feat: adds optional auto scaling of power values for each of the card sections i.e. battery, solar, grid , load and inverter. When auto_scale: true power values greater than 999W will be displayed as kW i.e. 4,32kW. The number of decimal places is set to 2 by default but can be adjusted globally using the card decimal_places: attribute Full Changelog: Comparing v2.6.1...v2.7.0
October 5, 20232 yr Author v2.8.0 🚀 Exciting New Features feat: you can now display extra sensor data for your additional essential loads e.g. daily energy or temperature etc. The following optional entities can be used: essential_load1_extra and essential_load2_extra. This data is not displayed on the full card if show_aux: true due to insufficient space. Full Changelog: Comparing v2.7.2...v2.8.0 Edited October 5, 20232 yr by slipx
October 7, 20232 yr Author v2.9.0 🚀 Exciting New Features doc: add support for CZ language. Thanks @Legnava89. Closes #84 feat: Battery shutdown (`shutdown_soc:`) accepts either a numeric value or sensor e,g, `sensor.sunsynk_battery_capacity_shutdown` Closes #85
October 14, 20232 yr Author v2.11.0 🚀 Exciting New Features feat: adds support for 3 phase inverter data. Setting the three_phase: true attribute will display additional 3 phase sensors. Requires entity attributes to be defined i.e. inverter_current_L2, inverter_current_L3, inverter_voltage_L2, inverter_voltage_L3 , grid_ct_power_L2, grid_ct_power_L3, load_power_L1, load_power_L2, load_power_L3 docs: updates French Translation. Thanks @adnovea
October 20, 20232 yr really loving the power flow card now, thanks @slipx, decided to replace my modified version of the early svg... I have a Sunsynk 5kW pulling the data via RS485 into NodeRed and many of my sensor names do not match the defaults the card uses. To help me remap my sensor names I pulled the entity list from here https://github.com/slipx06/sunsynk-power-flow-card/blob/master/docs/configuration.md and put them into a spread sheet to make things easier. Here is my .ods file for those that may be in a similar boat Sunsynk-Power-Flow-Card sensor mappings.ods use column E to enter your relevant HA entity names, enter "none" for those you don't have or don't want to use, just ensure you have values for the "Required" entities. To then get your entity list for your card just use the filter at the top of column F and untick the "(empty)" option on the dialog that pops up, then click OK at the bottom which will hide all the entities that had "none" in column E. You can then select all the cells in column F with values, including row 1 ("entities:") and past them into your card. The only thing I haven't got working on the card is the use timer and priority load but I assume that's because my HA entities for them are a "sensor" and not a "switch", just need to figure out how to get them to be switches.
October 24, 20232 yr hi Great card! Is it possible to hide common PV box when there is only single PV1? Thanks
October 25, 20232 yr good. there is one additional small issue. I tried to connect a few daily energy sensors and found that the card doesn't recognize they are in Wh - displays values as is. so i made workaround with template sensors. but it would be nice if the card will able to recognize and autoscale energy values
October 25, 20232 yr @slipx I am running Luxpower inverters and am using v2.7.2 of your card, if I do an upgrade it seems to break it and I just get NaN displayed. So I have had to restore a backup. Any ideas why this might be the case?
October 25, 20232 yr Author HI Double check that your card configuration is correct, There have been some changes to the attributes. https://slipx06.github.io/sunsynk-power-flow-card/configuration.html If you still cant get it working please open an issue on github and we can troubleshoot.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.