Hello community,
I am running openems on my raspberrpi 3B, which is connected in the same network as my Fronius Symo inverter and Siemens PAC2200 meters. I have configured these devices with each modbus id and component id. Also configured Controller Api REST/Json read/write, I am able to get all dynamic information from the devices like activepower, activeproductionpower and all. Now I want to read the static information of the devices like type of Inverter/meter, model, serial number, etc…
Are there any Api endpoints for these devices? If not, how can I achieve this?
Hi Saikesh,
I have not used the REST Api a lot, but if I read the documentation correctly, you can read any channel via the REST Api. That means, if your devices have a channel for type, model, serial number etc., you could read it with the same call (replacing “activepower” by the channel name “serialnumber” or whatever it may be of course).
In the Fronius Symo, the information is slightly hidden, but it is part of the Sunspec channels, so try calling the channels S1Md for model and S1Sn for Serial number.
The Siemens PAC meter doesn’t seem to have this channel unfortunately, but if the modbus protocol gives it, you can add the channel there and read it out via modbus.
Best regards,
Thomas
@SaikeshErramshetty: Adding to Thomas’ answer, you can list all available Channels for one device in multiple ways:
-
In the Console log: activate the Controller Debug Detailed Log and list your component in the
component_ids
property -
In the UI: via Settings → Channels
-
In Excel: export an Excel file with all Channels via System Profile
Regards,
Stefan
Thankyou @tsicking, I was able to call the endpoints that you suggested for Fronius inverter. Is there some document that shows these list of Sunspec channels and do you have an idea about where are these end points scripted in the code?
- I am still trying to find out a way to read out the serial number of the Siemens meters. Does any have an idea?
and Thank you @stefan.feilmeier for the suggestions.
The available Channels depend on the SunSpec models/blocks that the hardware implements. In the example of Fronius Symo those are defined here - i.e. 1, 111, 112, 113:
Those blocks are standardized. You can find more information on the official page of the SunSpec Alliance or in the DefaultSunSpecModel.java file
You can find the implementation of the Siemens meter in MeterSiemensImpl.java. The code mentions this PDF file as source of the modbus protocol: https://cache.industry.siemens.com/dl/files/150/26504150/att_906558/v1/A5E01168664B-04_EN-US_122016_201612221316360495.pdf. According to that document, there should be a register 64012 Serial number
with format Char 16
(page 59).
You can add that register to the protocol definition in OpenEMS.
Regards,
Stefan