Skip to content
View in the app

A better way to browse. Learn more.

Power Forum - Renewable Energy Discussion

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Vaughanza

Members
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Vaughanza got a reaction from Sc00bs in My Sunsynk 8Kw & data collection setup   
    Guys solved my problem. I forgot to remove R7 resister on the RS485 board and now all my Data looks good. No night solar power etc. I thought I had bought really good solar panels with nighttime solar power. 
    So you must remove the R7 Resistor for Sunsynk 8k Invertor.
    @slipx @Sc00bs
  2. Like
    Vaughanza got a reaction from McGuywer in My Sunsynk 8Kw & data collection setup   
    Guys solved my problem. I forgot to remove R7 resister on the RS485 board and now all my Data looks good. No night solar power etc. I thought I had bought really good solar panels with nighttime solar power. 
    So you must remove the R7 Resistor for Sunsynk 8k Invertor.
    @slipx @Sc00bs
  3. Thanks
    Vaughanza reacted to Sc00bs in My Sunsynk 8Kw & data collection setup   
    He was also talking about selling the shields separately with an ESP32 if you still want to do the DIY ESPHome thing. 
  4. Thanks
    Vaughanza reacted to Sc00bs in My Sunsynk 8Kw & data collection setup   
    Hi @Vaughanza
    Heinz from Smarthomeintegrations imports a very nice ESP32Shield that includes a power supply and 3.3V RS485/Canbus interface that he uses in his SmartHomeDongle. If you have an 8, 12 or 16kw Sunsynk/Deye inverter (not sure about the 5kw) you can then power the unit from the 12V power supply inside the inverter which is very neat. 

    I did a review of the whole package on my Youtube channel and he did say that he would sell them without his firmware for the DIYers if someone wants. Is a very neat solution and gets rid of all of the soldering and most of the wiring issues that seem to plague people's ESP32 installs. 
     
  5. Thanks
    Vaughanza reacted to slipx in My Sunsynk 8Kw & data collection setup   
    The ESP32 board runs off 3.3v but the simplest way is to power it using the usb port. It has an internal voltage regulator so you will be fine. 
  6. Like
    Vaughanza got a reaction from McGuywer in My Sunsynk 8Kw & data collection setup   
    Guys eventually got my Esp32 & RS485 working again. The problem was the RS485 board not sure what happened to it.  Added a new board and all data started coming through.
    Something things I learned.
    1. Don't need two pairs of wires coming from the your RS45. Only need the orange ( goes to A on RS485 ) and the orange/white (goes to B on the RS485)
    2. If you get this error  " 21:51:58][W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=150 count=1  "    I was told to increase your Modbus_controller update_interval. When I increased this the error went away.
    3. I read that don't add power to the RS485 from the ESP32 only connect the ground and not the 5v.
    Hope this all correct but it seems to be working fine now.
    What I am concerned about is that I read that you should power the ESP32 Dev board with 3v and not 5v ?
    I am using a phone charger and usb cable to power the ESp32 dev board, is this going to cause a problem ?
    Thanks  
  7. Thanks
    Vaughanza reacted to McGuywer in My Sunsynk 8Kw & data collection setup   
    I got mine sorted.
    I updated ESPHome and HomeAssistant, then played around with the config for ESPHome:
     
    substitutions: settings_skipped_updates: "30" devicename: sunsynk device_description: "Sunsynk RS485 Logger" friendly_name: "SunSynk" esphome: name: $devicename comment: '${device_description}' esp32: board: esp32dev framework: type: arduino # Enable logging logger: baud_rate: 0 # Enable Home Assistant API api: encryption: key: !secret api_encryption_key ota: password: !secret ota_password_sunsynk wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: '${devicename}' password: !secret fallback_password fast_connect: true power_save_mode: none captive_portal: # Enable time component to reset energy at midnight # https://esphome.io/components/time.html#home-assistant-time-source time: - platform: sntp id: sntp_time timezone: Africa/Johannesburg servers: - pool.ntp.org uart: id: mod_bus tx_pin: 17 rx_pin: 16 baud_rate: 9600 stop_bits: 1 modbus: id: sunsynk_modbus flow_control_pin: 4 modbus_controller: - id: sunsynk address: 0x01 modbus_id: sunsynk_modbus setup_priority: -10 update_interval: "5s" command_throttle: "50ms" ############################################### BINARY SENSORS ######################################## binary_sensor: - platform: modbus_controller # 194 Grid Connected Status modbus_controller_id: sunsynk name: "${friendly_name} Grid Connected Status" id: sunsynk_esphome_grid_connected_status register_type: holding address: 194 - platform: modbus_controller # 280 Gen Peak Shaving Status modbus_controller_id: sunsynk name: "${friendly_name} Gen Peak Shaving Status" id: sunsynk_esphome_gen_peak_shaving_status register_type: holding address: 280 bitmask: 0x10 - platform: modbus_controller # 280 Grid Peak Shaving Status modbus_controller_id: sunsynk name: "${friendly_name} Grid Peak Shaving Status" id: sunsynk_esphome_grid_peak_shaving_status register_type: holding address: 280 bitmask: 0x100 # SENSORS # ####################################################################################################### ############################################### BATTERY ############################################### sensor: - platform: modbus_controller # 182 Battery Temperature modbus_controller_id: sunsynk name: "${friendly_name} Battery Temperature" id: sunsynk_esphome_battery_temperature register_type: holding address: 182 unit_of_measurement: "°C" accuracy_decimals: 1 device_class: temperature state_class: measurement value_type: U_WORD filters: - offset: -1000 - multiply: 0.1 - platform: modbus_controller # 183 Battery Voltage modbus_controller_id: sunsynk name: "${friendly_name} Battery Voltage" id: sunsynk_esphome_battery_voltage register_type: holding address: 183 unit_of_measurement: "V" accuracy_decimals: 1 device_class: voltage state_class: measurement filters: - multiply: 0.01 value_type: U_WORD - platform: modbus_controller # 184 Battery SOC modbus_controller_id: sunsynk name: "${friendly_name} Battery SOC" id: sunsynk_esphome_battery_soc register_type: holding address: 184 unit_of_measurement: "%" accuracy_decimals: 0 device_class: battery value_type: U_WORD - platform: modbus_controller # 190 Battery Power modbus_controller_id: sunsynk name: "${friendly_name} Battery Power" id: sunsynk_esphome_battery_power register_type: holding address: 190 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power value_type: S_WORD - platform: modbus_controller # 191 Battery Current modbus_controller_id: sunsynk name: "${friendly_name} Battery Current" id: sunsynk_esphome_battery_current register_type: holding address: 191 unit_of_measurement: "A" accuracy_decimals: 1 device_class: current state_class: measurement value_type: S_WORD filters: - multiply: 0.01 - platform: modbus_controller # 217 Battery Capacity Shutdown modbus_controller_id: sunsynk name: "${friendly_name} Battery Capacity Shutdown" id: sunsynk_esphome_battery_capacity_shutdown register_type: holding address: 217 unit_of_measurement: "%" accuracy_decimals: 0 device_class: battery ############################################### INVERTER ############################################## - platform: modbus_controller # 175 Inverter Power modbus_controller_id: sunsynk name: "${friendly_name} Inverter Power" id: sunsynk_esphome_inverter_power register_type: holding address: 175 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power value_type: S_WORD - platform: modbus_controller # 154 Inverter Voltage modbus_controller_id: sunsynk name: "${friendly_name} Inverter Voltage" id: sunsynk_esphome_inverter_voltage register_type: holding address: 154 unit_of_measurement: "V" accuracy_decimals: 1 device_class: voltage state_class: measurement filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller # 164 Inverter Current modbus_controller_id: sunsynk name: "${friendly_name} Inverter Current" id: sunsynk_esphome_inverter_current register_type: holding address: 164 unit_of_measurement: "A" accuracy_decimals: 1 device_class: current state_class: measurement value_type: S_WORD filters: - multiply: 0.01 - platform: modbus_controller # 193 Inverter Frequency modbus_controller_id: sunsynk name: "${friendly_name} Inverter Frequency" id: sunsynk_esphome_inverter_frequency register_type: holding address: 193 unit_of_measurement: "Hz" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD state_class: measurement ############################################### GRID ################################################## - platform: modbus_controller # 079 Grid Frequency modbus_controller_id: sunsynk name: "${friendly_name} Grid Frequency" id: sunsynk_esphome_grid_frequency register_type: holding address: 79 unit_of_measurement: "Hz" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD state_class: measurement - platform: modbus_controller # 169 Grid Power modbus_controller_id: sunsynk name: "${friendly_name} Grid Power" id: sunsynk_esphome_grid_power_169 register_type: holding address: 169 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD - platform: modbus_controller # 167 Grid LD Power modbus_controller_id: sunsynk name: "${friendly_name} Grid LD Power 167" id: sunsynk_esphome_grid_power_167 register_type: holding address: 167 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD - platform: modbus_controller # 168 Grid L2 Power modbus_controller_id: sunsynk name: "${friendly_name} Grid L2 Power 168" id: sunsynk_esphome_grid_power_168 register_type: holding address: 168 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD - platform: modbus_controller # 150 Grid Voltage modbus_controller_id: sunsynk name: "${friendly_name} Grid Voltage" id: sunsynk_esphome_grid_voltage register_type: holding address: 150 unit_of_measurement: "V" accuracy_decimals: 1 device_class: voltage state_class: measurement filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller # 160 Grid Current modbus_controller_id: sunsynk name: "${friendly_name} Grid Current" id: sunsynk_esphome_grid_current register_type: holding address: 160 unit_of_measurement: "A" accuracy_decimals: 1 device_class: current state_class: measurement value_type: S_WORD filters: - multiply: 0.01 - platform: modbus_controller # 172 Grid CT Power modbus_controller_id: sunsynk name: "${friendly_name} Grid CT Power" id: sunsynk_esphome_grid_ct_power register_type: holding address: 172 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD ############################################### LOAD ################################################ - platform: modbus_controller # 178 Load Power modbus_controller_id: sunsynk name: "${friendly_name} Load Power" id: sunsynk_esphome_load_power register_type: holding address: 178 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD - platform: modbus_controller # 176 Load L1 Power modbus_controller_id: sunsynk name: "${friendly_name} Load L1 Power" id: sunsynk_esphome_load_l1_power register_type: holding address: 176 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD - platform: modbus_controller # 177 Load L2 Power modbus_controller_id: sunsynk name: "${friendly_name} Load L2 Power" id: sunsynk_esphome_load_l2_power register_type: holding address: 177 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD - platform: modbus_controller # 192 Load Frequency modbus_controller_id: sunsynk name: "${friendly_name} Load Frequency" id: sunsynk_esphome_load_frequency register_type: holding address: 192 unit_of_measurement: "Hz" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD state_class: measurement ############################################### SOLAR PV1 ############################################# - platform: modbus_controller # 186 PV1 Power modbus_controller_id: sunsynk name: "${friendly_name} PV1 Power" id: sunsynk_esphome_pv1_power register_type: holding address: 186 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: U_WORD - platform: modbus_controller # 109 PV1 Voltage modbus_controller_id: sunsynk name: "${friendly_name} PV1 Voltage" id: sunsynk_esphome_pv1_voltage register_type: holding address: 109 unit_of_measurement: "V" device_class: voltage state_class: measurement accuracy_decimals: 1 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller # 110 PV1 Current modbus_controller_id: sunsynk name: "${friendly_name} PV1 Current" id: sunsynk_esphome_pv1_current register_type: holding address: 110 unit_of_measurement: "A" accuracy_decimals: 1 device_class: current state_class: measurement filters: - multiply: 0.1 value_type: U_WORD ############################################### SOLAR PV2 ############################################# - platform: modbus_controller # 187 PV2 Power modbus_controller_id: sunsynk name: "${friendly_name} PV2 Power" id: sunsynk_esphome_pv2_power register_type: holding address: 187 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: U_WORD - platform: modbus_controller # 111 PV2 Voltage modbus_controller_id: sunsynk name: "${friendly_name} PV2 Voltage" id: sunsynk_esphome_pv2_voltage register_type: holding address: 111 unit_of_measurement: "V" accuracy_decimals: 1 filters: - multiply: 0.1 device_class: voltage state_class: measurement value_type: U_WORD - platform: modbus_controller # 112 PV2 Current modbus_controller_id: sunsynk name: "${friendly_name} PV2 Current" id: sunsynk_esphome_pv2_current register_type: holding address: 112 unit_of_measurement: "A" accuracy_decimals: 1 device_class: current state_class: measurement filters: - multiply: 0.1 value_type: U_WORD ############################################### SOLAR TOTAL ########################################### - platform: template # Sum of PV1 and PV2 to get total PV Power name: "${friendly_name} Solar Power" unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement lambda: |- return (id(sunsynk_esphome_pv1_power).state + id(sunsynk_esphome_pv2_power).state); update_interval: 5s ############################################### OUTPUTS ############################################### - platform: modbus_controller # 166 Aux Power modbus_controller_id: sunsynk name: "${friendly_name} AUX Power" id: sunsynk_esphome_aux_power register_type: holding address: 166 unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement value_type: S_WORD - platform: template # Essential Power based on register 175 + 167 - 166 name: "${friendly_name} Essential Power" unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement lambda: |- return (id(sunsynk_esphome_inverter_power).state + id(sunsynk_esphome_grid_power_167).state - id(sunsynk_esphome_aux_power).state); update_interval: 5s - platform: template # Essential Power1 based on register 175 + 169 - 166 name: "${friendly_name} Essential Power 1" unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement lambda: |- return (id(sunsynk_esphome_inverter_power).state + id(sunsynk_esphome_grid_power_169).state - id(sunsynk_esphome_aux_power).state); update_interval: 5s - platform: template # Nonessential Power 172 - 167 name: "${friendly_name} Nonessential Power" unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement lambda: |- return (id(sunsynk_esphome_grid_ct_power).state - id(sunsynk_esphome_grid_power_167).state); update_interval: 5s - platform: template # Nonessential Power1 172 - 169 name: "${friendly_name} Nonessential Power 1" unit_of_measurement: "W" accuracy_decimals: 0 device_class: power state_class: measurement lambda: |- return (id(sunsynk_esphome_grid_ct_power).state - id(sunsynk_esphome_grid_power_169).state); update_interval: 5s ############################################### ENERGY ################################################ - platform: modbus_controller # 070 Day Battery Charge modbus_controller_id: sunsynk name: "${friendly_name} Day Battery Charge" id: sunsynk_esphome_day_battery_charge register_type: holding address: 70 unit_of_measurement: "kWh" accuracy_decimals: 1 device_class: energy state_class: total_increasing value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller # 071 Day Battery Discharge modbus_controller_id: sunsynk name: "${friendly_name} Day Battery Discharge" id: sunsynk_esphome_day_battery_discharge register_type: holding address: 71 unit_of_measurement: "kWh" accuracy_decimals: 1 device_class: energy state_class: total_increasing value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller # 072 Total Battery Charge modbus_controller_id: sunsynk name: "${friendly_name} Total Battery Charge" id: sunsynk_esphome_total_battery_charge register_type: holding address: 72 unit_of_measurement: "kWh" accuracy_decimals: 1 device_class: energy state_class: total_increasing value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller # 074 Total Battery Discharge modbus_controller_id: sunsynk name: "${friendly_name} Total Battery Discharge" id: sunsynk_esphome_total_battery_discharge register_type: holding address: 74 unit_of_measurement: "kWh" accuracy_decimals: 0 device_class: energy state_class: total_increasing value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller # 076 Day Grid Import modbus_controller_id: sunsynk name: "${friendly_name} Day Grid Import" id: sunsynk_esphome_day_grid_import register_type: holding address: 76 unit_of_measurement: "kWh" accuracy_decimals: 1 device_class: energy state_class: total_increasing value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller # 077 Day Grid Export modbus_controller_id: sunsynk name: "${friendly_name} Day Grid Export" id: sunsynk_esphome_day_grid_export register_type: holding address: 77 unit_of_measurement: "kWh" accuracy_decimals: 1 device_class: energy state_class: total_increasing value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller # 078 Total Grid Import modbus_controller_id: sunsynk name: "${friendly_name} Total Grid Import" id: sunsynk_esphome_total_grid_import register_type: holding address: 78 unit_of_measurement: "kWh" accuracy_decimals: 2 device_class: energy state_class: total_increasing value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller # 081 Total Grid Export modbus_controller_id: sunsynk name: "${friendly_name} Total Grid Export" id: sunsynk_esphome_total_grid_export register_type: holding address: 81 unit_of_measurement: "kWh" accuracy_decimals: 2 device_class: energy state_class: total_increasing value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller # 084 Day Load Energy modbus_controller_id: sunsynk name: "${friendly_name} Day Load Energy" id: sunsynk_esphome_day_load_energy register_type: holding address: 84 unit_of_measurement: "kWh" accuracy_decimals: 2 device_class: energy state_class: total_increasing filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller # 085 Total Load Energy modbus_controller_id: sunsynk name: "${friendly_name} Total Load Energy" id: sunsynk_esphome_total_load_energy register_type: holding address: 85 unit_of_measurement: "kWh" accuracy_decimals: 2 device_class: energy state_class: total_increasing value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller # 096 Total PV Energy modbus_controller_id: sunsynk name: "${friendly_name} Total PV Energy" id: sunsynk_esphome_total_pv_energy register_type: holding address: 96 unit_of_measurement: "kWh" accuracy_decimals: 2 device_class: energy state_class: total_increasing filters: - multiply: 0.1 value_type: U_DWORD_R - platform: modbus_controller # 108 Day PV Energy modbus_controller_id: sunsynk name: "${friendly_name} Day PV Energy" id: sunsynk_esphome_day_pv_energy register_type: holding address: 108 unit_of_measurement: "kWh" accuracy_decimals: 1 device_class: energy state_class: total_increasing filters: - multiply: 0.1 value_type: U_WORD ############################################### TEMPERATURE ################################################ - platform: modbus_controller # 090 DC Transformer Temperature modbus_controller_id: sunsynk name: "${friendly_name} DC Transformer Temperature" id: sunsynk_esphome_dc_transformer_temperature register_type: holding address: 090 unit_of_measurement: "°C" accuracy_decimals: 1 device_class: temperature state_class: measurement value_type: S_WORD filters: - offset: -1000 - multiply: 0.1 - platform: modbus_controller # 091 Radiator Temperature modbus_controller_id: sunsynk name: "${friendly_name} Radiator Temperature" id: sunsynk_esphome_radiator_temperature register_type: holding address: 091 unit_of_measurement: "°C" accuracy_decimals: 1 device_class: temperature state_class: measurement value_type: S_WORD filters: - offset: -1000 - multiply: 0.1 ################################################ READ SETTINGS ############################################# - platform: modbus_controller # 250 System Mode Time 1 modbus_controller_id: sunsynk name: "${friendly_name} System Mode Time1" id: sunsynk_esphome_system_mode_time1 register_type: holding skip_updates: ${settings_skipped_updates} address: 250 icon: "mdi:clock" - platform: modbus_controller # 251 System Mode Time 2 modbus_controller_id: sunsynk name: "${friendly_name} System Mode Time2" id: sunsynk_esphome_system_mode_time2 register_type: holding skip_updates: ${settings_skipped_updates} address: 251 icon: "mdi:clock" - platform: modbus_controller # 252 System Mode Time 3 modbus_controller_id: sunsynk name: "${friendly_name} System Mode Time3" id: sunsynk_esphome_system_mode_time3 register_type: holding skip_updates: ${settings_skipped_updates} address: 252 icon: "mdi:clock" - platform: modbus_controller # 253 System Mode Time 4 modbus_controller_id: sunsynk name: "${friendly_name} System Mode Time4" id: sunsynk_esphome_system_mode_time4 register_type: holding skip_updates: ${settings_skipped_updates} address: 253 icon: "mdi:clock" - platform: modbus_controller # 254 System Mode Time 5 modbus_controller_id: sunsynk name: "${friendly_name} System Mode Time5" id: sunsynk_esphome_system_mode_time5 register_type: holding skip_updates: ${settings_skipped_updates} address: 254 icon: "mdi:clock" - platform: modbus_controller # 255 System Mode Time 6 modbus_controller_id: sunsynk name: "${friendly_name} System Mode Time6" id: sunsynk_esphome_system_mode_time6 register_type: holding skip_updates: ${settings_skipped_updates} address: 255 icon: "mdi:clock" - platform: modbus_controller # 255 Grid Peak Shaving raw register value modbus_controller_id: sunsynk id: grid_peak_shaving_raw register_type: holding address: 280 value_type: U_WORD ################################################ WRITE SETTINGS ############################################ switch: - platform: modbus_controller # 326 Toggle Force Generator use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} Toggle Force Generator" id: sunsynk_esphome_toggle_force_generator register_type: holding address: 326 bitmask: 8192 # 2^13 to target bit 13 icon: "mdi:toggle-switch" - platform: modbus_controller # 247 Toggle Solar Sell use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} Toggle Solar sell" id: sunsynk_esphome_toggle_solar_sell register_type: holding address: 247 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 248 Toggle System Timer use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} Toggle System Timer" id: sunsynk_esphome_toggle_Time_of_Use register_type: holding address: 248 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 243 Priority Load use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} Toggle Priority Load" id: sunsynk_esphome_toggle_priority_load register_type: holding address: 243 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 274 System Mode Grid Charge Time 1 use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} System Mode Grid Charge Time1" id: sunsynk_esphome_toggle_grid_charge_time1 register_type: holding address: 274 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 275 System Mode Grid Charge Time 2 modbus_controller_id: sunsynk use_write_multiple: true name: "${friendly_name} System Mode Grid Charge Time2" id: sunsynk_esphome_toggle_grid_charge_time2 register_type: holding address: 275 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 276 System Mode Grid Charge Time 3 modbus_controller_id: sunsynk use_write_multiple: true name: "${friendly_name} System Mode Grid Charge Time3" id: sunsynk_esphome_toggle_grid_charge_time3 register_type: holding address: 276 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 277 System Mode Grid Charge Time 4 modbus_controller_id: sunsynk use_write_multiple: true name: "${friendly_name} System Mode Grid Charge Time4" id: sunsynk_esphome_toggle_grid_charge_time4 register_type: holding address: 277 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 278 System Mode Grid Charge Time 5 modbus_controller_id: sunsynk use_write_multiple: true name: "${friendly_name} System Mode Grid Charge Time5" id: sunsynk_esphome_toggle_grid_charge_time5 register_type: holding address: 278 bitmask: 1 icon: "mdi:toggle-switch" - platform: modbus_controller # 279 System Mode Grid Charge Time 6 modbus_controller_id: sunsynk use_write_multiple: true name: "${friendly_name} System Mode Grid Charge Time6" id: sunsynk_esphome_toggle_grid_charge_time6 register_type: holding address: 279 bitmask: 1 icon: "mdi:toggle-switch" number: - platform: modbus_controller # 268 System Mode SoC Time 1 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_soc_time1 name: "${friendly_name} System Mode SoC Time1" unit_of_measurement: "%" address: 268 min_value: 0 max_value: 100 step: 5 value_type: U_WORD - platform: modbus_controller # 269 System Mode SoC Time 2 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_soc_time2 name: "${friendly_name} System Mode SoC Time2" unit_of_measurement: "%" address: 269 min_value: 0 max_value: 100 step: 5 value_type: U_WORD - platform: modbus_controller # 270 System Mode SoC Time 3 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_soc_time3 name: "${friendly_name} System Mode SoC Time3" unit_of_measurement: "%" address: 270 min_value: 0 max_value: 100 step: 5 value_type: U_WORD - platform: modbus_controller # 271 System Mode SoC Time 4 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_soc_time4 name: "${friendly_name} System Mode SoC Time4" unit_of_measurement: "%" address: 271 min_value: 0 max_value: 100 step: 5 value_type: U_WORD - platform: modbus_controller # 272 System Mode SoC Time 5 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_soc_time5 name: "${friendly_name} System Mode SoC Time5" unit_of_measurement: "%" address: 272 min_value: 0 max_value: 100 step: 5 value_type: U_WORD - platform: modbus_controller # 273 System Mode SoC Time 6 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_soc_time6 name: "${friendly_name} System Mode SoC Time6" unit_of_measurement: "%" address: 273 min_value: 0 max_value: 100 step: 5 value_type: U_WORD - platform: modbus_controller # 256 System Mode Power Time 1 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_power_time1 name: "${friendly_name} System Mode Power Time1" unit_of_measurement: "W" address: 256 min_value: 0 max_value: 8000 step: 100 value_type: U_WORD - platform: modbus_controller # 257 System Mode Power Time 2 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_power_time2 name: "${friendly_name} System Mode Power Time2" unit_of_measurement: "W" address: 257 min_value: 0 max_value: 8000 step: 100 value_type: U_WORD - platform: modbus_controller # 258 System Mode Power Time 3 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_power_time3 name: "${friendly_name} System Mode Power Time3" unit_of_measurement: "W" address: 258 min_value: 0 max_value: 8000 step: 100 value_type: U_WORD - platform: modbus_controller # 259 System Mode Power Time 4 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_power_time4 name: "${friendly_name} System Mode Power Time4" unit_of_measurement: "W" address: 259 min_value: 0 max_value: 8000 step: 100 value_type: U_WORD - platform: modbus_controller # 260 System Mode Power Time 5 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_power_time5 name: "${friendly_name} System Mode Power Time5" unit_of_measurement: "W" address: 260 min_value: 0 max_value: 8000 step: 100 value_type: U_WORD - platform: modbus_controller # 261 System Mode Power Time 6 use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_set_power_time6 name: "${friendly_name} System Mode Power Time6" unit_of_measurement: "W" address: 261 min_value: 0 max_value: 8000 step: 100 value_type: U_WORD - platform: modbus_controller # 230 Grid Charge Battery current use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_grid_charge_bat_current name: "${friendly_name} Grid Charge Battery current" unit_of_measurement: "A" address: 230 min_value: 0 max_value: 185 step: 5 value_type: U_WORD - platform: modbus_controller # 210 Battery Max Charge current use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_bat_max_charge_current name: "${friendly_name} Battery Max Charge current" unit_of_measurement: "A" address: 210 min_value: 0 max_value: 185 step: 5 value_type: U_WORD - platform: modbus_controller # 211 Battery Max Discharge current use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_bat_max_discharge_current name: "${friendly_name} Battery Max Discharge current" unit_of_measurement: "A" address: 211 min_value: 0 max_value: 185 step: 5 value_type: U_WORD - platform: modbus_controller # 293 Grid Peak Shaving Power use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} Grid Peak shaving power" id: sunsynk_grid_peak_shaving_power address: 293 unit_of_measurement: "W" min_value: 0 max_value: 8000 step: 500 value_type: U_WORD - platform: modbus_controller # 245 Max Sell Power use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} Max Sell power" id: sunsynk_max_sell_power address: 245 unit_of_measurement: "W" min_value: 0 max_value: 8000 step: 500 value_type: U_WORD ################################################ TEXT SENSORS ################################################## text_sensor: - platform: modbus_controller # 059 Overall State modbus_controller_id: sunsynk name: "${friendly_name} Overall State" id: sunsynk_esphome_overall_state register_type: holding skip_updates: ${settings_skipped_updates} raw_encode: HEXBYTES address: 59 lambda: |- uint16_t value = modbus_controller::word_from_hex_str(x, 0); switch (value) { case 0: return std::string("standby"); case 1: return std::string("selftest"); case 2: return std::string("normal"); case 3: return std::string("alarm"); case 4: return std::string("fault"); default: return std::string("unknown"); } - platform: template name: "${friendly_name} Time Slot 1" id: sunsynk_esphome_time_slot_1 icon: "mdi:clock" lambda: |- int minutes, hours; if (id(sunsynk_esphome_system_mode_time1).state) { minutes = static_cast<int>(id(sunsynk_esphome_system_mode_time1).state) % 100; hours = static_cast<int>(id(sunsynk_esphome_system_mode_time1).state) / 100; } else { minutes = 0; hours = 0; } char formatted_time[6]; snprintf(formatted_time, sizeof(formatted_time), "%02d:%02d", hours, minutes); return esphome::optional<std::string>(formatted_time); - platform: template name: "${friendly_name} Time Slot 2" id: sunsynk_esphome_time_slot_2 icon: "mdi:clock" lambda: |- int minutes, hours; if (id(sunsynk_esphome_system_mode_time2).state) { minutes = static_cast<int>(id(sunsynk_esphome_system_mode_time2).state) % 100; hours = static_cast<int>(id(sunsynk_esphome_system_mode_time2).state) / 100; } else { minutes = 0; hours = 0; } char formatted_time[6]; snprintf(formatted_time, sizeof(formatted_time), "%02d:%02d", hours, minutes); return esphome::optional<std::string>(formatted_time); - platform: template name: "${friendly_name} Time Slot 3" id: sunsynk_esphome_time_slot_3 icon: "mdi:clock" lambda: |- int minutes, hours; if (id(sunsynk_esphome_system_mode_time3).state) { minutes = static_cast<int>(id(sunsynk_esphome_system_mode_time3).state) % 100; hours = static_cast<int>(id(sunsynk_esphome_system_mode_time3).state) / 100; } else { minutes = 0; hours = 0; } char formatted_time[6]; snprintf(formatted_time, sizeof(formatted_time), "%02d:%02d", hours, minutes); return esphome::optional<std::string>(formatted_time); - platform: template name: "${friendly_name} Time Slot 4" id: sunsynk_esphome_time_slot_4 icon: "mdi:clock" lambda: |- int minutes, hours; if (id(sunsynk_esphome_system_mode_time4).state) { minutes = static_cast<int>(id(sunsynk_esphome_system_mode_time4).state) % 100; hours = static_cast<int>(id(sunsynk_esphome_system_mode_time4).state) / 100; } else { minutes = 0; hours = 0; } char formatted_time[6]; snprintf(formatted_time, sizeof(formatted_time), "%02d:%02d", hours, minutes); return esphome::optional<std::string>(formatted_time); - platform: template name: "${friendly_name} Time Slot 5" id: sunsynk_esphome_time_slot_5 icon: "mdi:clock" lambda: |- int minutes, hours; if (id(sunsynk_esphome_system_mode_time5).state) { minutes = static_cast<int>(id(sunsynk_esphome_system_mode_time5).state) % 100; hours = static_cast<int>(id(sunsynk_esphome_system_mode_time5).state) / 100; } else { minutes = 0; hours = 0; } char formatted_time[6]; snprintf(formatted_time, sizeof(formatted_time), "%02d:%02d", hours, minutes); return esphome::optional<std::string>(formatted_time); - platform: template name: "${friendly_name} Time Slot 6" id: sunsynk_esphome_time_slot_6 icon: "mdi:clock" lambda: |- int minutes, hours; if (id(sunsynk_esphome_system_mode_time6).state) { minutes = static_cast<int>(id(sunsynk_esphome_system_mode_time6).state) % 100; hours = static_cast<int>(id(sunsynk_esphome_system_mode_time6).state) / 100; } else { minutes = 0; hours = 0; } char formatted_time[6]; snprintf(formatted_time, sizeof(formatted_time), "%02d:%02d", hours, minutes); return esphome::optional<std::string>(formatted_time); ################################################ SELECT SENSORS ################################################ select: - platform: modbus_controller #243 Select Energy Patern use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_select_energy_pattern name: "${friendly_name} Energy Pattern" address: 243 value_type: U_WORD optionsmap: "Battery first": 0 "Load first": 1 - platform: modbus_controller #244 Select Work Mode use_write_multiple: true modbus_controller_id: sunsynk id: sunsynk_esphome_select_work_mode name: "${friendly_name} Work Mode" address: 244 value_type: U_WORD optionsmap: "Selling First": 0 "Zero Export + Limit to Load Only": 1 "Limited to Home": 2 - platform: modbus_controller #280 Select Grid Peak Shaving use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} Grid Peak Shaving" id: sunsynk_esphome_select_grid_peak_shaving address: 280 value_type: U_WORD optionsmap: "Disabled": 0 "Enabled": 256 lambda: |- // we are only interested in the 8th bit binary 0001 0000 0000 need to map the options 0, 256 in select //ESP_LOGE("main","Modbus Number incoming value = %d",x); //ESP_LOGE("main","Modbus eval value = %d",(x & 0x0100)); if ((x & 0x0100) == 0) return std::string("Disabled"); if ((x & 0x0100) == 256) return std::string("Enabled"); return {}; write_lambda: |- //ESP_LOGE("main","Modbus write gets = %d",value); uint16_t unmodified = id(grid_peak_shaving_raw).state; //ESP_LOGE("main","Modbus write unmodified = %d", unmodified); // optionsmap should only return 2 values... 0 , 256 so bitmask with complement 0x0100 to ensure we keep the original values in register. Then appply OR with the value that was chosen uint16_t modified = ((unmodified & ~0x0100) | value); //ESP_LOGE("main","Modbus write to write = %d", modified); return modified;  
  8. Thanks
    I don't know. Never seen that before
  9. Thanks
    If your sensors are unknown then either the name has changed or there is something wrong with your integration. You should check developer tools
  10. Like
    Vaughanza got a reaction from jplab in ESP32 & RS485 connection to Home Assistant   
    Thanks to everyone for the help, eventually found the problem. 
    Had to connect 2 and 7 ( rj45 wires ) to A & 1 and 8 ( RJ 45 ) to B. 
    As soon as I did this, data came through. In the video it does not say anything about connecting 2 pairs .
     
    Thanks again and particular @iiznh , appreciate it.
     
  11. Thanks
    Vaughanza reacted to slipx in Home Assistant Sunsynk Power Flow Card and Dashboard   
    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
  12. Like
    Vaughanza got a reaction from leecavturbo in Home Assistant Sunsynk Power Flow Card and Dashboard   
    Guys can someone explain what is Autarky on the power flow card and how it works please ?
     
  13. Thanks
    Np.
    The 8kw only has 2x MPPTS. You would need to be running dual inverters or a 12kw inverter
  14. Thanks
    Although it can be seen as trivial, please ensure you understand kw and kwh. Your inverter is capable of supplying 8kw of power (minus the h) at any given time to your load. That is what your max load is... 8000
    If you have 10kw worth of panels on your roof, then the max solar load for the card will be 10000. 
  15. Thanks
    Hi. I pushed an updated version to the repo earlier today. The card is working again.
  16. Thanks
    Vaughanza reacted to slipx in My Sunsynk 8kw silence hack   
    @BrettB thanks for the inspiration. Here is my attempt at a 3D printable fan holder. Settled on 4 fans as the vents are not that big. Still need to mount this to my wall. I used the Cooler Master Sickleflow 92 fans.
    https://www.thingiverse.com/thing:5896902



  17. Thanks
    Vaughanza reacted to BrettB in My Sunsynk 8kw silence hack   
    Hi Everyone,
    Thought I'd share this because I have noticed a few people concerned or frustrated with the fan noise from the 8kw Sunsynk inverter. I couldn't install my inverter in the garage because I do a lot of woodwork in there and I know the dust would cause issues in the fans and heatsinks. So its mounted at the end of our passage where it meets with the garage through the door. The noise at night was really an issue for me. During load shedding the fans would usually kick in. Specially when the aircons where running. This is obviously when the inverter was doing a lot of work and required cooling. Then also after load shedding when the batteries were charging the fans would come on intermittently. Bloody irritating when trying to sleep.
    The following pics is what I came up with. 5 decent quality 92mm PC fans on the vent side to constantly pull air through. Now these fans don't have the CFM or static pressure rating of the built in fans. But they are dead quite and they keep a constant steady flow of air over the heatsinks. On average, they keep the inverter 10-15 degrees cooler according to solar assistant. I have only had them in for 5 days now and the temperature has never gone over 55 degrees which is the trigger point for the built in fans. I ran all 4 aircons plus the air fryer for 30 mins and the inverter got up to 49 degrees. But when idle, it sits at 35-40 degrees. I am still waiting for a full sun day with load shedding where the MPPT's and the inverter are under a decent constant load to see what happens. Today the MPPT's where hitting around 8kw peaks while charging, and about 4kw on the inverter and it never went over 41 degrees.
    I have mounted the fans about 10mm of the exit vent so none of the holes get blocked. The idea is that when the internal fans kick in, that air can just blow through my external fans. For now, I have just hot glued the fans to the wall and hot glued a piece of trunking cover to side(proper life hack style =D). I am busy designing a decent 3D printed bracket to hold all 5 fans and clips onto the vent hole at 4 points. No alterations have been done to the inverter at all so no future warranty issues. The fans run off an external 12v supply. I have wired it through a sonoff switch with the idea to control them through home assistant based on inverter load and temps.
     

  18. Thanks
    @Garthox If you have a fair amount of batteries,  I think that adjusting your System Mode settings based on the Weather Forecast is actually probably more useful than adjusting for the load shedding level.  
    Definitely going to do a video setting up an automation to do it in the next day or so. 
  19. Thanks
    Hi @JonWarby
    You will need to update the ESPHome config and setup additional sensors as input numbers. I don't change my time settings so never configured them. Something like this
     
    number: - platform: modbus_controller # 250 System Mode Time 1 use_write_multiple: true modbus_controller_id: sunsynk name: "${friendly_name} System Mode Time 1 Start" id: sunsynk_esphome_system_mode_time1_input address: 250 value_type: U_WORD
  20. Thanks
    I had a go with this on just the first timer.  I moved the #250 section under the number section of the config file and changed the elements you suggested above.  
    After pushing the code it changes the element to a number value.  It seems to drop the : so for example 00:30 is read as 30.  2:30 is read as 230.  
    If I change the values on the sunsynk app I can see those changes come through to Home Assistant.
    The number is also editable now so I can type in a new number in the time slot.  Whatever number I enter seems to be ignored and after a few minutes just gets refreshed with the value that it's defined in the app.
    I think this is the part of the log that is relevant
    [11:46:27][D][number:113]: New number value: 200.000000
    [11:46:27][D][modbus.number:061]: Updating register: connected Sensor=SunSynk System Mode Time1 start address=0xFA register count=1 new value=200.00 (val=200.00)
    [11:46:27][D][number:012]: 'SunSynk System Mode Time1': Sending state 200.000000
    [11:46:28][D][modbus_controller:032]: Modbus command to device=1 register=0xFA countdown=0 no response received - removed from send queue
    I assume that it's not happy with the value and not accepting it
  21. Thanks
    v1.9.3
    Updates
    Adds the optional aux_colour attribute to the load card configuration to change the colour of all the AUX objects. If omitted will use the colour set for the load or default load colour if this is not set.

  22. Thanks
    I'm sure I can add that for you
  23. Like
    Vaughanza got a reaction from slipx in Home Assistant Sunsynk Power Flow Card and Dashboard   
    Thanks @slipx appreciate the reply. Just wanted to make sure that it was not my fault. Thanks
    How about creating some new awesome cards, Love your work.
  24. Thanks
    Hi. Yes you need to wait. At least one month needs to pass before it starts to display data, unless you already have sufficient long term statistics captured for those sensors. 
  25. Thanks
    I've made  a small update to the Dashboard. The load shedding card shows remaining time based on battery SOC and battery power. You will need to create some template sensors as discussed here and provided in the github repo
     

     

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.