Read Data from KOSTAL - PIKO MP Plus

Hello, everyone,

At this point, I would like to share my experience with reading values from the PIKO MP Plus.

Unfortunately the MP Plus does not have documentation for a API interface to query values in the local network. But in the past I found a subpage on the web interface which shows all values which are interesting as XML string. I assume that the web server also accesses exactly these values.


also you can chose seperated suppages like /yields.xml ore /messurements.xml

this makes the query easier via XPATH

To be able to use the values from the inverter in OpenHab we have to use the functions from XPATH. I have posted an example for the query of AC & DC data here.

Number PV_AC_Voltage "AC_Voltage [%s] "         { http="<[http://<IP-Adress>/measurements.xml:6000:XPATH(number(//Measurements/Measurement[@Type='AC_Voltage']/@Value))]" }

Number PV_AC_Power "AC_Power [%s] "             { http="<[http://<IP-Adress>/measurements.xml:6000:XPATH(number(//Measurements/Measurement[@Type='AC_Power']/@Value))]" } 

Number PV_DC_1_Power "DC_1_Power [%s] "         { http="<[http://<IP-Adress>/measurements.xml:6000:XPATH(number(//Measurements/Measurement[@Type='DC_Power1']/@Value))]" }

Number PV_DC_2_Power "DC_2_Power [%s] "         { http="<[http://<IP-Adress>/measurements.xml:6000:XPATH(number(//Measurements/Measurement[@Type='DC_Power2']/@Value))]" }

Number PV_DC_Total_Power "DC_Total_Power [%s] " { http="<[http://<IP-Adress>/measurements.xml:6000:XPATH(number(//Measurements/Measurement[@Type='DC_Power Total']/@Value))]" }

Number PV_Yield "PV_Yield [%s] "                { http="<[http://<IP-Adress>/yields.xml:6000:XPATH(number(//Yields/Yield/YieldValue/@Value))]" }

To calculate the current daily yield I have created 2 more values under the items.

Current_Yield_Total and Yesterday_Yield_Total.

With a cron job the current daily yield is written to the Item -> Yesterdy_Yield_Total at 11:50 pm. and during the day I can calculate the difference wich will be the current daily yield every 15min (also with a cron job).

What you should do, of course, is to store all values for a clean visualization in a persistence.

1 Like

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.