tbnobody / OpenDTU

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters
GNU General Public License v2.0
1.77k stars 495 forks source link

"HMS-400BM" recognized as "HMS-500-1T v2" #2170

Open tt-why opened 1 month ago

tt-why commented 1 month ago

What happened?

Hi all :wave:

When adding my "HMS-400BM" inverter using the serial "1125920XXXXX" the openDTU recognize it as "HMS-500-1T v2" hence requiring "CMT2300A" RF module instead of the "NRF24L01+" I currently have.

Screenshot 2024-07-26 at 10-59-11 markup_1000000859 jpg (JPEG Image 3472 × 4624 pixels) — Scaled (20%)

I've just upgraded the software to the latest version available.

Screenshot 2024-07-26 at 10-38-52 OpenDTU Screenshot 2024-07-26 at 10-41-53 OpenDTU Screenshot 2024-07-26 at 10-48-29 OpenDTU

Is there a bug on the parsing of the serial number, or is the inverter datasheet on the back of the invertert misleading ? According to the code parsing the serial what i'm seeing is normal but I would like this to work and I hope there is a small mistake :pray:

Just for you to have full context, inverter has been provided by Beem in the package "Beem On" here is the technical doc (sorry it's only in french)

Thanks you for your help !

To Reproduce Bug

Add inverter using the serial "1125920XXXXX" and see it's not HMS-400 but HMS-500 :/

Expected Behavior

In my opinion my inverter serial number should map to "Hoymiles HM-400-1T" using NRF24L01+.

Install Method

Pre-Compiled binary from GitHub

What git-hash/version of OpenDTU?

v24.6.29

Relevant log/trace output

No response

Anything else?

No response

Please confirm the following

tbnobody commented 1 month ago

In general, all HMS inverters require a CMT2300A module as the "s" means sub-gigahertz what is the 868MHz band.

Unfortunatly, neither the back side of the inverter nor the manual shows the communication frequency.

tt-why commented 1 month ago

Thank you for the quick response !

Do you have a method to find the right frequency, I own a "Nooelec RTL-SDR v5" if it can help.

Else you think that buying a CMT2300A would solve the problem ? Can I have a single ESP32 with both RF receivers working ?

tbnobody commented 1 month ago

https://media.adeo.com/marketplace/LMFR/90202526/4038281.pdf

Based on this document its 868MHz

Can I have a single ESP32 with both RF receivers working ?

Yes

tt-why commented 1 month ago

Ok thank you so much for your support and sorry for the noise !

tt-why commented 1 month ago

Hi there, thanks to your advice I bought a brand new https://www.opendtu.solar/3rd_party/opendtu_fusion/ and updated it to latest firmware possible (updated it again just right now just in case) and configured it again like the DYI I had before.

Screenshot 2024-08-09 at 09-49-48 OpenDTU

It's working fine for the NRF24 part, but for CMT2300A part it still doesn't work.

One thing to note is that inverter is detected every morning when sun is up: Screenshot 2024-08-09 at 09-51-25 OpenDTU

Screenshot 2024-08-09 at 10-02-44 History – Home Assistant

So I guess like I read in another issue threads, that the inverter is waking up on the 868Mhz and then is changing frequency. Another important thing is that maybe the openDTU is loosing the track of the new frequency because another device is telling the inverter to change it. This device is the device from the integrator I bought the inverter+photovoltaic panels from "Beem energy" to be able to have the production in their proprietary app. What do you think ? What could I try to still get the values from openDTU ? :pray:

I also tried using my "nooelec rtl-sdr v5" and GQRX to find the new frequency, but I don't really know which pattern to look for :/

Thank you very much for your time, it's greatly appreciated :)

stefan123t commented 1 month ago

@tt-why so having two DTUs querying the same inverter in parallel is never a good idea, for multiple reasons with the Hoymiles Protocol and as you hinted the frequency set by thebother DTU. So you should always use only one DTU with your inverter(s).

I believe the base frequency is 865 MHz so some +/-5 MHz should be your range in SDR.

Regarding the OpenDTU Fusion board this should work out of the box, though you may need to use the esp32s3 build and the right pin_mapping for it. Can you check your GPIO3 connection is configured ?

Also verify the sending Power / Amplification of the CMT settings may need to be raised from the default 0dBm.

tt-why commented 1 month ago

Regarding the other DTU, it's the one from the manufacturer because it's plug&play (you just have to place the PV panels somewhere then just plug it on some electrical wall socket and that's it) that's why I cannot remove it :/ It's working like that for my others 3 Hoymiles inverter from the same manufacturer (HM-300) it's just using NRF24 instead of CMT2300A.

According to GQRX today I've got something at 868.2Mhz so i've put theses settings (and increased a bit sending power), full disclosure it doesn't work with theses settings on for more than 15 minutes (another question do you have an idea how much time I should wait until changing again the parameters, to have a chance if I fund the correct freqency for it to work ?): Screenshot 2024-08-10 at 11-33-06 OpenDTU

But really hard to guess if it's the inverter signal or not :/ gqrx2

According to the opendtu fusion doc here I have to use "opendtu-generic_esp32s3_usb.bin" version, do you think I should try "opendtu-generic_esp32s3.bin" version instead ?

Regarding GPIO3 it seems to be configured correctly isn't it (i'm using https://raw.githubusercontent.com/tbnobody/OpenDTU/master/docs/DeviceProfiles/opendtu_fusion.json) ? Screenshot 2024-08-10 at 11-24-20 OpenDTU

Another totally different idea is that it's maybe because openDTU recognize my HMS-400BM as another kind of device "HMS-500-1T v2" because of the serial number prefix "1125920xxxxx" ?

Thank you :pray:

stefan123t commented 1 month ago

OpenDTU or Hoymiles in general uses only the last eight digits of your Serial ID when communicating with the Inverter via the radio link, ie both NRF and CMT.

is there a significant difference between the HMS-500-1T v2 and your HMS-400BM ? What does the BM stand for ?

Yes the settings for the CMT look good, as you can verify under Info > System afaik.

For the fusion board you need an esp32s3 binary. I usually use the USB cable and flash the factory image first. If you want to update via OTA you may use the one without USB afaik but USB has some USB debugging too. If you want to see the communication with your inverter you may also check the System > Console which should give you no response as far as you are either not hitting the right base frequency on the inverter ir some other issue in communication.

stefan123t commented 1 month ago

I only find Certification Results of the HMS-400BM in spanish. Is this eventually a Brazilian Market model ? I believe for the North American and South American markets there are other frequencies which have to be used. Please check for the other issues about North American models namely #1540 we had to fix the software to support these models.

It would be nice to be able to switch between country specific configs: EU: 860-870MHz, default 865MHz US: 905-925MHz, default 915MHz Brazil: 915-928 MHz, default ??? ...

Here is a link to the official Hoymiles DTU Lite S for Brazil. Maybe you are able to find something about the base frequency in its certification for the Brazilian Market ?

https://www.hoymiles.com/product/dtu-lite-s-se

stefan123t commented 4 weeks ago

@tt-why can you provide a feedback on the last questions ?

tt-why commented 4 weeks ago

Hi and sorry for the delay,

is there a significant difference between the HMS-500-1T v2 and your HMS-400BM ? What does the BM stand for ?

I honestly can't find anywhere what the BM suffix is meaning :/

Is this eventually a Brazilian Market model ?

I'm currently in France and bought this inverter from a french company called Beem energy selling in France also.

And interesting thing is that since I've increased CMT2300A Transmitting power from 0 to 5dB (like you suggested), I've been able to have the data sporadically:

So I've just tried to keep 868.25Mhz and cranked up the transmitting power from 5dB to 20dB hopping it might be better received by the inverter in the following days :pray: Do you think I would have better results by changing to default 865MHz in EU ?

Thanks !

tt-why commented 4 weeks ago

Another thing I've just tried is to stick the antenna of the SDR really close to the inverter (around 30 centimeters) to find the correct freq, and I'm almost 100% sure this big blast if the inverter so around 868.325MHz. beem

So even if I choosed 868.25MHz in the opendtu settings no luck so far :/