Extract data from Stiebel ISG - Solution

I have been looking for a while to extract some haet pump data from the web page of my Heat Pump Stiebel Eltron. I have been insprired by many different posts and thought that it’s my time to share, in case somebody would have the same need.

I will post as well a tutorial in form of a step-by-step guide.

In summary, I have created an item for each data I wanted to retrieve. The data comes in form of string and I use the rules, to convert the string into numeric data. The conversion method is based on a very good post in this forum.

Here are some samples of the items created and then the rules:

home.items

For each data variable, I create avariable name ending with “str” and a variable name ending with “num”. The first one is used to retrieve in text format the value. The second one is used in “rules” to convert the text into numberical format.

Note - obviously, replace the IP address by the one of your Steibel ISG device and I use the page “password less”. If your page is in a different language than english, just replace with the exact text in upper case.

Group gAll
Group gMeteo (gAll)
Group gStiebel (gAll)

//Meteo
String OutTempStr "Temperature exterieure [%s°C]"   { http="<[http://192.168.1.132/?s=1,0:60000:REGEX(.*<td class=\"key\">OUTSIDE TEMPERATURE</td>.*?<td class=\"value\">(-?[\\d]+,[\\d]).*?</td>.*)]" }
Number OutTempNum "Temperature exterieure [%.1f°C]" <temperature> (gMeteo,gAll)

//Stiebel Sensors
String HeatPumpDepStr   "PAC temp depart [%s°C]"    { http="<[http://192.168.1.132/?s=1,0:30000:REGEX(.*<td class=\"key\">ACTUAL FLOW TEMPERATURE WP</td>.*?<td class=\"value\">(-?[\\d]+,[\\d]).*?</td>.*)]" }
Number HeatPumpDepNum   "PAC temp depart [%.1f°C]"  <boiler_viessmann> (gStiebel,gAll)

home.rules

//Outside Temperature conversion String to Number
rule "OutTemp String to Number conversion"
when
    Item OutTempStr changed
then
    OutTempNum.postUpdate(Float::parseFloat(String::format("%s",OutTempStr.state).replace(',','.')));
end


///Heat Pump Actual Flow Temperature conversion String to Number
rule "HeatPumpDep String to Number conversion"
when
    Item HeatPumpDepStr changed
then
    HeatPumpDepNum.postUpdate(Float::parseFloat(String::format("%s",HeatPumpDepStr.state).replace(',','.')));
end


Hoping that it will be useful. Cheers,

Thierry

See my comments on your tutorial. Thanks again for posting!

You probably do not need to post two separate threads though in the future. One would have sufficed.

Thank you Rich. You are right, one should post was sufficient. Since I posted both originally, I cam and corrected this one too.