Sent data from s0 via Wemos to PVOutput


Since a couple weeks I have 10 PV-panels (2950Wp, facing southeast) on the roof of our house. Unfortunately I have an AEG-inverter, which has problems (not working). AEG is promising to make it working, but it still can take weeks/months…

Nearby the analog (Ferraris) kwh-meter of the Energie Supplier, I’ve a din-rail kWh-meter with a s0-output to monitor the generated energy by the PV-panels.

I’m new to programming with Arduino, but have found some useful information on the internet already. Furthermore I already have ordered a Wemos D1-board, which I want to use to sent the data from the s0-output to PVOutput.

1.) Do I need something more than a Wemos D1, Power supply (micro-usb 5V), kwh-meter with s0-output, cables, working internet-connection, and the codes from PVOutput?
2.) Does someone have a direct-to-use code which I can put on the Wemos by using Arduino IDE-software

If possible, I want to add a second kwh-meter with s0-output to monitor the used energy to upload to PVOutput. For this, I’ve got the next questions:
3.) Is it possible to use the Wemos D1 to sent this information too?
4.) Does someone have a direct-to-use code which I can put on the Wemos by using Arduino IDE-software which will sent the information for both kwh-meters to PVOutput?

thanks in advance!

Used kwh-meter



From what I can see the Wemos D1 is an 8266 based board with 11 digital I/O ports and an operating voltage is 3.3V.

I presume that the din-rail kWh meter outputs a pulse for every unit of electrical energy it detects passing by. You would need to check the output voltage of the meter. If it is 5V you will not be able to directly connect it the the D1.

With 11 digital I/O ports you should be able to obtain data from multiple din-rail meters at the same time.

The data from multiple din-rail meters can be combined and sent to PVO in a single PUSH. r2 /addoutput.jsp

You will need to obtain the DATE & TIME as ‘d’ is an expected parameter for the PVO API call. The correct time could be obtained via NTP.

If you look at the following URL and search for ‘Arduino’ there is an entry for ‘Arduino Solar Meter’ which is described as ‘Smart Meters - S0 Pulse Meter’. The contents appear to have been moved to


Thank you Grannos,

My excuse for the late reaction, I’m still waiting to receive some items to start uploading.

The link to the “contributed software” has already been very usefull. I hadn’t find it by myself…

The Wemos D1 is indeed an 8266 based board with digital I/O ports.

The din-rail kWh meter doesn’t give a signal, it only connects two ports of the meter, so the Wemos should be giving the required voltage.

The mentioned link (ending with “/addoutput.jsp”) doesn’t work, but I assume this link is used in the “contributed software” at this site?

When the project is finished, I will also contribute my setup at this website.



Details about the required API call can be found in the online help at:

The API call will return a ‘Success Message’ which you, the script, can check.

Pay attention to the ‘Status Interval’ and the fine print regarding ‘Donation Mode’ if you wish to push through any Extended Values [ v7 … v12 ]

So the kWh meter simply closes a switch / completes a circuit for every X kWh of electricity.


Grannos, Thank you again, I’ve tried it with the Wemos, but it wouldn’t work. So now I’ve ordered an arduino Uno and Ethernet Shield, did some soldering, and it is all working fine now with the code from Harold65 (though deleted the unused parts of the code)



Just fill in your PVOutput numbers in the code and the WEMOS / ESP8266 works great!
Its from some dutch guys … my worked fine for over 1 year now!



Glad to see that you’ve got a working solution. These Arduino are very useful little critters. :grinning:



@ca119 I’ve seen that code for ESP8266, exept I saw it was only for 1 S0-meter. I have tried to convert the Harold65-code to ESP8266, but it didn’t work out for me. Since the Arduino, I only had to fill in the described documents (and had to replace some parts of te code, as described on the following link: