WVC inverter MQTT Data logging for all versions of inverters

Welcome, Paulo, to OEM.

It’s actually quite close to C++, with a few extra methods/functions specific to the AVR family of microprocessors, and some for real-time specifics. But the Arduino IDE has been dumbed-down to the extent that, if you’re used to “grown-up” compilers and linkers, you may well be confused initially until you get used to its quirks.

If you have some experience already, using Visual Studio Code (VSCODE) and PlatformIO makes the AVR devices really nice to use, when compared to the dumb Arduino editor.

Thanks Robert and stuart. My programming experience is quite outdated since it was from the time we used perf card decks and PCs were science fiction. My first contact with micro processors was Intel 4004, which had only assembly programming. Today two of them are still operating aboard Voyager I and II.
Present IDEs are so much more powerful they blow my mind. I still love dumb editors and sometimes I us BASIC to test some ideas. I’m learning R and Phyton too, but keeping some distance from their Studio IDEs, I rather to interact via Knime platform.

Regarding Intel 4004 I did not work in Voyagers development but in a brazilian Navy GPS-like project for their submarines. It was called Transit System.

Hi there, folks!
My joy did not last much. A couple weeks after last post my WVC-700 inverter quit with status LED shinning steady red. I asked manufacturer support people and they said this is typical of islanding protection due to under/over voltage or temperature and it would resume normal operation as soon as conditions get back to normal. This was not the case since both temperature and voltage have been swinging all over their ranges and the inverter is yet to wake up.
While I wait for manufacturer further return I’d like to ask you if some of the possible telegrams sent to inverter via RF link could make it restart. I remember from somewhere in the thread there was a “keep away” sort of command, wich I’d rather to avoid.
Just for the record, briefly after quitting the inverter still answered requests for a day or two reporting DC and temperature readings, but now even this functionality was lost.
In PM @thalesmaia told me to read grid parameters every so often so I am designing some sort of AC voltage recorder with another Arduino. Maybe some surges triggered protection, who knows? There were no thunderstorms here last month, are there other surge origins? How critical is surge protection to this home systems? What kind of SPD do you recommend?
Thanks for any help.

Nice script. I created this Node Red flow to communicate with one or several inverters… Also outputs MQTT, might be useful if someone want to experiment with the communication protocol the modem uses.

https://github.com/invite-frey/wvc-inverter

1 Like

And I’d like to say Thanks to @frey for that wvc-inverter software. I have a rPi pulling the data from a single 300W inverter over PowerLine based modem now. Very cool Node Red system and soon will have 4 more inverters which will be 433MHz based.

@paulosch do you happen to have 72cell panels connected to your inverter?

Most of the earlier model WVC invterters had a max input voltage of 50V and on cold sunny days that could be exceeded. Those earlier models also had a max input of 300W per channel.

New models have a 60V max input voltage and max iinput power of 400W per channel.

All my WVC invertes are R3 version, the manufacturer says its DC voltage range is 22-60V. Nominal power of both panels combined is 660W. As long as each panel is connected to one DC input it should go.
Besides, only the WVC600 failed at DC input side (it had some weird SMD MOSFET pairs instead of IRF3710), both WVC700 failed at AC output side and the FT60R195P MOSFETs are not available in local market. I am yet to find a suitable substitute.

1 Like

Well that is discouraging. I had hoped the R3 updates would have solved many reliability problems.
I know someone with a wvc300 which was INOP and found a capacitor in 5V rail failed but also that heat xfer stackup to the case was nonfunctional. ie there was a non-contact/gap between the power FETs and the metal bar epoxied to the case. This probably leads to far higher internal temperature cycles.

Well, since there is no FT60R195P available here I decided to try some substitutes while waiting for the arrival of my importation. Found MDF13N65B wich have the same form factor but somewhat less voltage and current specs and they blew just after power-on. Then I did some mods to accomodate bigger W20NM60 with same current capacity and slightly lower voltage. Those are operating for almost a week now and counting. Heat transfer on WVC700 is much better than WVC600 but even so I added water cooled devices outside aluminum case.
Yesterday arrived four FT60R195P, I’ll place them on my otlher WVC700 as soon as I repair some zenner and resistor that failed too, It is a pain to change those tiny SMD components by hand, neither my fingers nor my eyes are so clever anymore.
I am also trying to comunicate some Arduinos to the HC-12 radios. Had some good results in the past but they are not talking anymore.
Thank you for caring.

Has anyone communicated with R3 inverters over serial to the R3 modem?

I have the R3 modem but can’t get it connected to anything. The Android app doesn’t find the modem and if I push the reset button correctly I see the modem creating a AWS_XXXXXX WiFi access point but again the Android app can’t find it and connecting to the WAP does nothing I can figure out.

I just purchased 2 HC-12 transceivers and connected one up to an FTDI board(3.3V) and just started getting data from from the WVC700 R3 inverter.
wvc.ini = WVC700/40000D02/R3

./wvc /dev/ttyUSB0 wvc.ini 20111839 hc

Inverter Type WVC700 R3
f220111839e91b000040000d026509fc2ff900f0006e000002d11004
Inverter ID 40000D02
Temp 535.06
VDC 25.56
VAC 122.81
ADC 2.40
AAC .58708
Watt1 4.607
Watt2 28.160
Watt3 58.880
AC watts 72.09
DC watts 61.34

Yes, @dlarue, if you search back in this very same Thread you’ll find many posts by @thalesmaia regarding his quest to comunicate, but I think none were using the manufacturer’s modem. His idea was precisely to bypass the modem and get direct contact with inverte’s HC-12. And he succeded indeed.
I followed his sets and managed to contact my WVC700 for a brief period using an Arduino but it is not working anymore. I’ve even tried a UART bridge too but to no avail. I wonder if my transceivers were damaged because none answer to basic AT command (with SET pin grounded).
Can you detail your FTDI setup? Wich terminal app are you using?

09fc2ff900f0006e000002d11004

I guess this is the answer you got. If so, the temperature are last 2 bytes 1004H wich translates to 41°C after dividing by 100.


The correct order is Vdc (2 bytes), Vout (2 bytes), Ain (2 bytes), Total energy since the inverter was first power on (4 bytes), Pout (2 bytes), Temp (2 bytes).

Thanks Paul. I didn’t know about this site/work before I ordered a modem so I have both and R2 powerline modem and a new R3 wireless modem. I’ve used the R2 powerline modem successfully with Frey’s NodeRed software. The new R3 stuff I can’t get working with the R3 modem yet but I have been able to use an HC-12 board connected to an FTDI board and USB. I tried talking to the hc12 in command mode with minicom but that didn’t work and neither did screen until I found where someone said the AT command needs to be typed fast. So I copied and pasted “AT” and sure enough I got the OK when using “screen /dev/ttyUSB0 9600” in Linux.

The command for status/configuration is “AT+RX” and for the firmware version is “AT+V”. Copy and pasting the full command was the key.

Indeed, dlarue, I’ve been using Windows HyperTerminal and typing commands on a text-only editor, copy/pasting them but still no answer. Maybe its time to purchase a couple more transceivers.

@paulosch I got minicom to work but had to turn off ‘hardware flow control’ and I still needed to enter the command via copy and paste otherwise every keystroke return “ERROR” response.

You might also have to mind your CR and LF termination chars too.

Well, after several attempts, I was able to discover the problems with my circuit and reestablish reliable communication with the inverter. The main problems were that the Arduino Nano is not able to supply enough power to the HC-12 and the helical antenna does not have enough range to receive the signal from the inverter.

I divided the received telegram into seven 16-bit words to facilitate interpretation:
word (0) = Vdc input x 100
word (1) = Vac output x 100
word (2) = Adc entry x 100
word (3) = cumulative output Wh / 10
I still don’t know the meaning of the word (4)
word (5) = Wac output x 10
word (6) = internal temperature ° C x 100

If @Thalesmaia or @Ducati or someone else has figured out what the word (4) means, I would be immensely grateful to know.
Best regards.

2 Likes

Hi paulosch,
I’m also trying to communicate with my WVC 1400 R3 with no success until now…
Using an arduino nano connected via USB and a HC-12 (44631B) with default helical antenna. I have a couple of questions if you could help:

  • From what I read, WVC inverters need to communicate with specific versions of HC-12. Do you know if the version I have could be compatible with my inverter?
  • How do you made the connections to the arduino and HC-12. Mine followed this article
  • What is message you need to send to the inverter, time to wait feedback from it and how to read the reply message? If you could share the arduino code would be awesome.
  • The distance between WVC inverter and the HC-12 needs to be how close. Because I have mine in the roof and would like to know if I need any extra antenna improvements

Thanks in advance to you or anyone that could give me a hand on this.

I added a couple of wvc700 inverters and just tried collecting data with Stephen’s wvc bash script and it looks like it’s misreading the inverters.

I have compiled the C code version posted here setting it to the 0d20 inverter, and 0c65 inverter so you can see it shows output of that inverter over 450W while the wvc bash script is showing incorrect temps and output wattages.

~/Testing/WVC-Inverter-R2-R3-HC-12–and–Modem$ ./wvc-hc12-0d20
DC voltage : 27.79
AC voltage : 244.79
DC current : 17.90
Energy kWh : 2.43
Output Watt : 455.8
Temperature : 64.00

DC voltage : 27.68
AC voltage : 244.79
DC current : 17.90
Energy kWh : 2.43
Output Watt : 457.6
Temperature : 64.00

~/Testing$ ./wvc-hc12-0c65
DC voltage : 27.79
AC voltage : 243.96
DC current : 17.80
Energy kWh : 2.38
Output Watt : 455.0
Temperature : 65.00

DC voltage : 27.79
AC voltage : 243.96
DC current : 17.90
Energy kWh : 2.38
Output Watt : 457.6
Temperature : 65.00

~/Testing/WVC-Inverter-R2-R3-HC-12–and–Modem$ ./wvc /dev/ttyUSB0 ./wvc.ini 20111839 hc
Using ModemID 20 11 18 39 at port /dev/ttyUSB0 Using inverter list ./wvc.ini on a hc Device
virtural port /dev/ttyWVCDUMMY0

Inverter Type WVC700 R3

no input from inverter 40000D02

no COM detected
restarting COM
started

Inverter Type WVC700 R3
f220111839e91b000040000d20650ad05f4c06fe00f1000011ce1900
Inverter ID 40000D20
Temp 527.53
VDC 27.68
VAC 243.96
ADC 17.90
AAC 1.86833
Watt1 3.839
Watt2 61.696
Watt3 7.936
Panel Efficiency .91

Inverter Type WVC700 R3
f220111839e91b000040000c65650adb5f4c06f400ed000011c61964
Inverter ID 40000C65
Temp 507.05
VDC 27.79
VAC 243.96
ADC 17.80
AAC 1.86505
Watt1 4.863
Watt2 60.672
Watt3 56.832
Panel Efficiency .91
AC watts 910.79
DC watts 990.13
Overall Efficiency .91

Inverter Type WVC700 R3
f220111839e91b000040000d02650d6d2ff9005a6d590000010c1004
Inverter ID 40000D02
Temp 30.73
VDC 34.37
VAC 122.81
ADC .90
AAC .21822
Watt1 9.874
Watt2 22.893
Watt3 38.358
Panel Efficiency .86

Inverter Type WVC700 R3
f220111839e91b000040000d20650adb5f9f06fe00f1000011ce1964
Inverter ID 40000D20
Temp 527.53
VDC 27.79
VAC 244.79
ADC 17.90
AAC 1.86200
Watt1 3.839
Watt2 61.696
Watt3 7.936
Panel Efficiency .91

Inverter Type WVC700 R3
f220111839e91b000040000c65650ad05f4c06f400ed000011c61964
Inverter ID 40000C65
Temp 507.05
VDC 27.68
VAC 243.96
ADC 17.80
AAC 1.86505
Watt1 4.863
Watt2 60.672
Watt3 56.832
Panel Efficiency .92
AC watts 804.25
DC watts 1096.04
Overall Efficiency .73

when I wrote the script. I did not have the newer inverters, i only had the older one-- all of my inverters are the older versions and I wrote it blind for the newer WCV700-- chances are i messed up data display some where as when you multiply VAC and AAC you get ~455 for AC and when you multiple VDC and ADC you you get 497 and when you divide that ac-w/dc-w you get .91 for the efficiency and similar to the C programs output … so somewhere it need a small correction in the script for the wattage display. did you download it from github if so i will look through the script and see where I might of made the error it probably something simple. I asked for feed back you are the first to respond