Best way to monitor DC voltage from solar array and battery bank?

Im sure there is already some integration that will read DC voltage from charge controller or directly from PV and get this into home assistant?

I already have whole house energy monitoring with solar clamp and works GREAT! but i would also like to get real data from panels and batteries… anything out there i can make or buy for this? Emporia Vue and SHelly EM cant read DC Voltage that i can see but there must be a DC clamp sensor that already is known working in home assistant for DC?

1 Like

I use 1 of these
https://www.snektek.com/forum/viewtopic.php?f=3&t=48
But it will all depend on what make/model of charge controller you are using
Nice bit of kit but feedback from the developer is a bit slow & hit + miss unforyunately

1 Like

I use this component that monitors the solar battery. Battery voltage, current and power consumption.
It works very well.

2 Likes

Very interesting monitor, is cloud subscription needed i wouldnt think so? Also does this import into home assistant nice? Very nice!

pepe59 this looks like it would work too assuming it imports into HA easily too?

Yes it is a simple configuration of the esphome node. I use the MAX485 converter for this component

2 Likes

Easily integrated via the configuration.yaml

Example
###########################

DC SolarDashboard

###########################

sensor :
  - platform: rest
    resource: http://xxx.xxx.x.xxx/cur_data
    value_template: '{{ (value_json["pv.v"] | float -0.0 | float) | round (2)}}'
    method: GET
    name: SolarDashboard PV Volts
    unit_of_measurement: "Volts"
2 Likes

I have Renogy advanced rover Li 40 Amp Mppt charge controller I assume its compatible with the unit? Compatibility list is not very detailed… My controller has the bluetooth dongal connected currently via rs232 so it “should” work i think

@xion2000 i finally got the snektek device and its not working with my charge controller. I hope it is something i can fix as i was very excited to get it! Added entities easy enough into HA but of-coarse they all show no data but they are there just need the snektek to work with my model charge controller. I even asked Jonathon before purchasing if it would work with my model and he said yes so must be something i am missing in setup? Even though it seems very simple to setup. Fingers crossed

Are you able to access ANY data from the controller via local web browser or cloud

No data at all from controller in dashboard.

Try changing the address to http://192.168.1.70:90 (i.e add port 90)

Tried changing to port 90 but still no data. I suspect the unit may not work with my model charge controller even though I was told yes it would work. Also I’m on firmware v4 not sure if it’s latest? Update channel is set to “stable” and shows no updates but was told when I purchased unit it was v5?

@xion2000 finally got snektek working but Jonathan had to change code for me as my id in Renogy controller was 255! With that change it worked. Anyways now with home assistant I added sensors and all works fine but randomly home assistant looses connection to random sensors like will show battaery voltage and todays generation but displays others as unavailable and then randomly they will re appear. I’m wondering if it’s not a power issue with snektek or is home assistant polling to often? How do you have yours setup in home assistant and do you see random unavailable?


If you have a read through my posts on the snektek forum, I had similar issues in HA and did eventually find a workaround, so you might find the solution in there

I did find it. Looks like anything over 4 devices causes issues. Thanks once again for the help.

How do you ingegrate this into ha? Cant find the component. Mqtt?

Sorry i saw The esphome post now. Unfortunately im not so good at those things.

I’d like to add to the solution this Home Assistant Config:
Available Here: Home Assistant Quick-Start Guide - snektek.com

###############################
### Snektek Solar Dashboard ###
###############################

rest:
 - resource: http://192.168.10.30/cur_data
   scan_interval: 5
   sensor:
     - name: "Solar Voltage"
       #unique_id: snektek_solardashboard_solar_voltage
       value_template: '{{ (value_json["pv.v"] | float -0.0 | float) | round (2)}}'
       device_class: voltage
       state_class: measurement
       unit_of_measurement: "V"
     - name: "Solar Power"
       #unique_id: snektek_solardashboard_solar_power
       value_template: '{{ value_json["pv.p"] }}'
       device_class: power
       state_class: measurement
       unit_of_measurement: "W"
     - name: "Solar Current"
       #unique_id: snektek_solardashboard_solar_current
       value_template: '{{ value_json["pv.c"] }}'
       device_class: current
       state_class: measurement
       unit_of_measurement: "A"
     - name: "Battery Voltage"
       #unique_id: snektek_solardashboard_battery_voltage
       value_template: '{{ (value_json["bt.v"] | float +0.04 | float) | round (2)}}'
       device_class: voltage
       state_class: measurement
       unit_of_measurement: "V"
     - name: "Battery Temp"
       #unique_id: snektek_solardashboard_battery_temp
       value_template: '{{ value_json["bt.t"] }}'
       device_class: temperature
       state_class: measurement
       unit_of_measurement: "°C"
     - name: "Battery Current"
       #unique_id: snektek_solardashboard_battery_current
       value_template: '{{ value_json["bt.c"] }}'
       device_class: current
       state_class: measurement
       unit_of_measurement: "A"
     - name: "Load Voltage"
       #unique_id: snektek_solardashboard_load_voltage
       value_template: '{{ (value_json["ld.v"] | float -0.0 | float) | round (2)}}'
       device_class: voltage
       state_class: measurement
       unit_of_measurement: "V"
     - name: "Load Power"
       #unique_id: snektek_solardashboard_load_power
       value_template: '{{ value_json["ld.p"] }}'
       device_class: power
       state_class: measurement
       unit_of_measurement: "W"
     - name: "Load Current"
       #unique_id: snektek_solardashboard_load_current
       value_template: '{{ value_json["ld.c"] }}'
       device_class: current
       state_class: measurement
       unit_of_measurement: "A"
     - name: "Solar Generation Today"
       #unique_id: snektek_solardashboard_gen_today
       value_template: '{{ value_json["genToday"] }}'
       device_class: energy
       state_class: measurement
       unit_of_measurement: "kWh"
     - name: "Solar Generation This Month"
       #unique_id: snektek_solardashboard_gen_month
       value_template: '{{ value_json["genMonth"] }}'
       device_class: energy
       state_class: measurement
       unit_of_measurement: "kWh"
     - name: "Solar Generation This Year"
       #unique_id: snektek_solardashboard_gen_year
       value_template: '{{ value_json["genYear"] }}'
       device_class: energy
       state_class: measurement
       unit_of_measurement: "kWh"

I’d like to point out that a mysolardashboard.com Cloud Subscription is not necessary to use Home Assistant, however there’s a REST API on the cloud as well that can be used conveniently connect to remote home assistant instances.

I’ve had great success using:

GitHub - fl4p/batmon-ha: Add-on for Home Assistant to connect JK, JBD and Daly BMS via Bluetooth

with my cheap Daly bluetooth BMS.

The BMS shuts off so it loses connectivity and needs a physical button push on the BMS to get it going again.

I just found it fun to get working and to remotely check on it from my single pane of glass.