question

Thomas Manthey avatar image
Thomas Manthey asked

Is there a way to query the internal temperature of an MPPT controller?

I use NodeRed to control my solar system. However, I have not yet been able to find a temperature either there or in the remote console.
I just had the problem that MPPT controllers got too warm and limited the output. Victron's data sheet states that full power is available below 40′C. However, the 40°C does not mean the ambient temperature, which everyone would assume, but obviously the temperature of the charge controller. Mine now has 36°C with the improvised fan cooling.
So I would like to write the temperature values of the MPPT controller in my log file.

MPPT ControllersNode-RED
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

10 Answers
Alex Pescaru avatar image
Alex Pescaru answered ·

Hi @Thomas Manthey

The information you are looking for is stored in the Victron register 0xEDDB.

You can write a small script to read it using the vreg utility from CAN bus or directly through the VE.Direct protocol, or whatever mean you have at your disposal and/or hardware configuration.

Alex


3 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Thomas Manthey avatar image Thomas Manthey commented ·

Hi @Alex Pescaru ,

by the way: Would you have a list of the registers that can be used by the user? Perhaps there are even more interesting values.

0 Likes 0 ·
Alex Pescaru avatar image Alex Pescaru Thomas Manthey commented ·

Hi @Thomas Manthey

Take a look here: https://community.victronenergy.com/questions/262532/victron-energy-registers-description.html

See the attached PDF from my first answer...

Also see that not all registers could be found on any device. Some could have them implemented, some not. Some are not even there and are specific to a certain equipment.

Alex

2 Likes 2 ·
Thomas Manthey avatar image Thomas Manthey Alex Pescaru commented ·

Thank you very much!

0 Likes 0 ·
Thomas Manthey avatar image
Thomas Manthey answered ·

Hi Alex Pescaru,

thank you very much for this insider information! I have never used the tool you are talking about. But from NodeRed it is possible to execute console commands like "ls" or "df". So I assume that if this tool can be called with command line commands, it should also work via NodRed. Would you have a small example for me?

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Alex Pescaru avatar image Alex Pescaru commented ·

Hi @Thomas Manthey

My equipment is connected through CAN bus to Cerbo and my equipment has a NAD (CAN ID) of 0x40.

Your equipment could have different NAD or may be accessible through other interfaces. Don't know how you have the MPPT connected to Cerbo. If you have it through VE.Direct, it may be a simple serial communication. And that is exemplified on Victron documentations found on Victron main webpage.

Example for my case below. The response is 0x116C = 4460, meaning 44.6 deg. Celsius.

Alex

example.jpg


2 Likes 2 ·
example.jpg (14.0 KiB)
Thomas Manthey avatar image
Thomas Manthey answered ·

I played around with the vreg tool and found a way to query my NADs. There are 7 MPPT controllers in my system that are connected to the MultiGx via Can.

With the command:

root@nanopi:~# dbus -y com.victronenergy.vecan.can0 / GetValue
value = {'Alarms/SameUniqueNameUsed': 0,
'Devices/00002CC001F4/CustomName': 'ESS',
'Devices/00002CC001F4/DeviceInstance': 0,
'Devices/00002CC001F4/FirmwareVersion': 'v3.12',
'Devices/00002CC001F4/Manufacturer': 358,
'Devices/00002CC001F4/ModelName': 'MultiPlus-II',
'Devices/00002CC001F4/N2kUniqueNumber': 500,
'Devices/00002CC001F4/Nad': 225,
'Devices/00002CC001F4/Serial': '0000500',
'Devices/00002CC3E850/CustomName': 'SmaSol E HQ22233FG9R',
'Devices/00002CC3E850/DeviceInstance': 0,
'Devices/00002CC3E850/FirmwareVersion': '3.13',
'Devices/00002CC3E850/Manufacturer': 358,
'Devices/00002CC3E850/ModelName': 'SmartSolar MPPT VE.Can 250/70',
'Devices/00002CC3E850/N2kUniqueNumber': 256080,
'Devices/00002CC3E850/Nad': 36,
'Devices/00002CC3E850/Serial': '0256080 HQ22233FG9R',
'Devices/00002CC3E89C/CustomName': 'SmaSol B HQ2223AE4KP',
'Devices/00002CC3E89C/DeviceInstance': 0,
'Devices/00002CC3E89C/FirmwareVersion': '3.13',
'Devices/00002CC3E89C/Manufacturer': 358,
'Devices/00002CC3E89C/ModelName': 'SmartSolar MPPT VE.Can 250/70',
'Devices/00002CC3E89C/N2kUniqueNumber': 256156,
'Devices/00002CC3E89C/Nad': 37,
'Devices/00002CC3E89C/Serial': '0256156 HQ2223AE4KP',
'Devices/00002CC40A54/CustomName': 'SmaSol C HQ2229GRGF7',
'Devices/00002CC40A54/DeviceInstance': 0,
'Devices/00002CC40A54/FirmwareVersion': '3.13',
'Devices/00002CC40A54/Manufacturer': 358,
'Devices/00002CC40A54/ModelName': 'SmartSolar MPPT VE.Can 250/85',
'Devices/00002CC40A54/N2kUniqueNumber': 264788,
'Devices/00002CC40A54/Nad': 38,
'Devices/00002CC40A54/Serial': '0264788 HQ2229GRGF7',
'Devices/00002CC40B9C/CustomName': 'SmaSol F HQ2229VGX3C',
'Devices/00002CC40B9C/DeviceInstance': 0,
'Devices/00002CC40B9C/FirmwareVersion': '3.13',
'Devices/00002CC40B9C/Manufacturer': 358,
'Devices/00002CC40B9C/ModelName': 'SmartSolar MPPT VE.Can 250/85',
'Devices/00002CC40B9C/N2kUniqueNumber': 265116,
'Devices/00002CC40B9C/Nad': 40,
'Devices/00002CC40B9C/Serial': '0265116 HQ2229VGX3C',
'Devices/00002CC40BE0/CustomName': 'SmaSol G HQ2229QCD2H',
'Devices/00002CC40BE0/DeviceInstance': 0,
'Devices/00002CC40BE0/FirmwareVersion': '3.13',
'Devices/00002CC40BE0/Manufacturer': 358,
'Devices/00002CC40BE0/ModelName': 'SmartSolar MPPT VE.Can 150/70',
'Devices/00002CC40BE0/N2kUniqueNumber': 265184,
'Devices/00002CC40BE0/Nad': 41,
'Devices/00002CC40BE0/Serial': '0265184 HQ2229QCD2H',
'Devices/00002CC40C8C/CustomName': 'SmaSol D HQ2229QKF66',
'Devices/00002CC40C8C/DeviceInstance': 0,
'Devices/00002CC40C8C/FirmwareVersion': '3.13',
'Devices/00002CC40C8C/Manufacturer': 358,
'Devices/00002CC40C8C/ModelName': 'SmartSolar MPPT VE.Can 250/85',
'Devices/00002CC40C8C/N2kUniqueNumber': 265356,
'Devices/00002CC40C8C/Nad': 42,
'Devices/00002CC40C8C/Serial': '0265356 HQ2229QKF66',
'Devices/00002CC53BB8/CustomName': 'SmaSol A HQ2316EN3PK',
'Devices/00002CC53BB8/DeviceInstance': 0,
'Devices/00002CC53BB8/FirmwareVersion': '3.13',
'Devices/00002CC53BB8/Manufacturer': 358,
'Devices/00002CC53BB8/ModelName': 'SmartSolar MPPT VE.Can 250/85',
'Devices/00002CC53BB8/N2kUniqueNumber': 342968,
'Devices/00002CC53BB8/Nad': 39,
'Devices/00002CC53BB8/Serial': '0342968 HQ2316EN3PK',
'Link/BatteryCurrent': [],
'Link/ChargeVoltage': 0.0,
'Link/ExtraBatteryCurrent': -9.899999618530273,
'Link/NetworkMode': [],
'Link/Soc': 90.30000305175781,
'Link/TemperatureSense': [],
'Link/VoltageSense': 53.060001373291016}

a list of the controllers can be queried and you get the NAD's in addition.

With 4460 <=> 46.6′C you have already answered my question about scaling.

Then I now have all the information I need to write a small script that I can call from NodeRed.
I will report on the result!

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Mark Anderson avatar image Mark Anderson commented ·

Is this modbus?

What is the dubs command? Is it something in HA?


I currently use MQTT with home assistant. Noneaynto Get the temp with MQTt?


Thanks


Mark

0 Likes 0 ·
Thomas Manthey avatar image
Thomas Manthey answered ·

So, I have found a way to read out the temperature value. If the following command
"vreg -c socketcan:can0 -n 36 -g 0xeddb | awk 'BEGIN { ORS = ""; print "["}; /0x/ { printf "%s{\"Temp\": \"%f\"}", separator, ($2*256+$1)/100; separator = ", "}; END { print " ]" }'"
is executed by an Exec block, the temperature value is returned as the 2nd value.
Unfortunately, this works with "if (NR==2)" in the AWK apparently only in the terminal and not when calling via NodeRed.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Thomas Manthey avatar image
Thomas Manthey answered ·

If I ever have a lot of time, I would pack the whole thing into a fancy interface block in which the controllers can be selected dynamically. This way I always have to adjust the Nad ("36") manually to reuse the construct for another controller.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Fideri avatar image
Fideri answered ·

@Thomas Manthey

Did you find a Node Red solution? I can use the command line following your instructions but I prefer an automated Node Red solution.

F.

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Thomas Manthey avatar image Thomas Manthey commented ·

@Fideri

I write the temperature values every 2 minutes with Node-Red together with other values in a log file so that I can view them later.

Take this as example how to do this using Node-Red:

bildschirmfoto-vom-2024-06-11-21-12-14.png

bildschirmfoto-vom-2024-06-11-21-21-52.png

SolarChargerStatus.json.zip

2 Likes 2 ·
Fideri avatar image
Fideri answered ·

@Thomas Manthey

Thanks. That works perfectly when I'm on LAN. Any solution over the Internet? Most times, I'm on the move.

F.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Thomas Manthey avatar image
Thomas Manthey answered ·

@Fideri : I 'm using WireGard-VPN, thats the only VPN that's working with FritzBox. This allows me to access my system as if I were at home.

4 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Fideri avatar image Fideri commented ·
That's a good idea. I don't use a VPN but that is a good reason to use one. I'm looking at Wireguard because I think it's built in the new Venus Large. Moreover, my ISP recommends a software solution. I was also exploring putting a regular router in front of the Cerbo in "bridge mode" (behind my fibre optic router) but my ISP says that would require a static IP when means more dollars.

F.

0 Likes 0 ·
Show more comments
Fideri avatar image
Fideri answered ·

Can Victron say authoritatively whether the -30 to +60 degrees Celsius "operating temperature" of the SmartSolar MPPT refers to device internal temperature or to ambient temperature? The manual is ambiguous on this point.

I was assuming internal device temperature but this post here among others is adamant that the manuals and datasheets refer to ambient temperature: https://diysolarforum.com/threads/very-high-heatsink-temperature-on-victron-100-30-mppt.73187

F.

2 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Thomas Manthey avatar image Thomas Manthey commented ·

@Fideri ,In my view, the problem is that Victron builds the solar controllers without a fan and there is also no clear indication in the data sheet that they require forced cooling if they are to deliver the specified maximum output in continuous operation. I would have bought the solar controllers from Victron anyway, even if they had had fans. That's just physics. Even with an efficiency level of 98.5%, at 4200W you have to dissipate 63W of heat. So I had double the work and would have to fit my mounting plate with the solar controllers with fans afterwards. But by then it was already on the wall. It would have been much easier when it was still on the floor.

0 Likes 0 ·
Fideri avatar image Fideri Thomas Manthey commented ·

@Thomas Manthey

I agree. I also would still have bought the Victron chargers. I had to install an AC to lower the ambient temperature. It is switched off at night when the chargers are not working. I don't know how the ambient temperature affects the inverters but those have fans.

Victron could argue that heat is not good for electronics in general and their datasheets document derating of their products for us to decide the measures to take.

F.

0 Likes 0 ·
groove avatar image
groove answered ·

Hallo,

Thanks for thread here. I was able to get the internal temp of my ve.direct connected solarcharger vie vreg dbus in terminal.

Is it possible to make a MQTT request in the dbus command line?

Id like to display the temp in HA. Therefor I create a new sensor in the yaml, but how can I send the dbus vreg command an read the answer?


Regards

4 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Fideri avatar image Fideri commented ·

@Groove

I don't normally use MQTT so what I'm suggesting might be nonsense. Feel free to disregard it. What is stopping you from creating a topic with the retrieved temperature numbers to use elsewhere as you wish?

F.

0 Likes 0 ·
groove avatar image groove Fideri commented ·

Hallo,

at the moment I try node-red. But I'm an absolute noob...

Node-Red is running on my homeserver, Venus OS is running on a Pi. SSH keys are already exchanged.

When i enter:

ssh root@venus 'dbus -y com.victronenergy.solarcharger.ttyUSB4 /Devices/0/VregLink GetVreg %0xEDDB'

in a terminal on the homeserver, I get this answer:

error = 0
data = [140, 15]

But when I use an exec in Node-Red which is executed every 15 seconds, the debug returns nothing.

How can I start?

0 Likes 0 ·
John Dent avatar image John Dent groove commented ·

Hmm. Could it be that your SSH keys need a passphrase? If so, then make a second identity that doesn't have one, and do:

ssh -i <other identity file>

Or could it be that node-red runs as a different user on your pi? (In which case you might need to make a separate SSH identity for your node-red user, and then exchange them.)

0 Likes 0 ·
Fideri avatar image Fideri John Dent commented ·

@Groove

If all fails (and your approach should work), test Venus and/or Node Red. I can think of 2 ways to do this:

1. Install an arbitrary script under Venus and execute it from Node Red to see if you get the results you expect.

2. Some people use a database as an intermediate step. Run a periodic script (maybe cron) and store the values in a database. Then use Node Red to read the database. There are nodes for various types of databases but you have to install them separately. If necessary, check the database to see if it has the right values.

F.

0 Likes 0 ·