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