Extracting Values from a Web-Page

Hello

i am trying to read a number from a web-page and assign it to a number item.
I have no idea how to extract it from this (source code of the webpage).
Its a local address. The Number i want is “Verdichterstarts”.

The URL to this site is: http://192.168.1.14/?s=1,1

Is the HTTP binding working for this? I am using it only for api calls right now.

I very much appreciate hints / Links to solve this.

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
	<title>STIEBEL ELTRON Reglersteuerung</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta http-equiv="imagetoolbar" content="no" />
	<meta name="content-language" content="de" />
	<meta name="robots" content="noindex,nofollow" />
	<meta name="keywords" content="" />
	<meta name="description" content="" />
  
  <link rel="shortcut icon" href="./pics/brlogo.ico">
  <!-- does not exist link rel="stylesheet" href="./css/netzwerk.css" type="text/css" media="all" /-->
  <link rel="stylesheet" type="text/css" href="./css/slider/ste_slider.css" />	
	<!-- Blueprint CSS framework -->
	<link rel="stylesheet" href="./css/blueprint/screen.css" type="text/css" media="screen, projection" />
	<link rel="stylesheet" href="./css/blueprint/print.css" type="text/css" media="print" />	
	<!--[if lt IE 8]><link rel="stylesheet" href="./css/blueprint/ie.css" type="text/css" media="screen, projection" /><![endif]-->
	
	<link rel="stylesheet" href="./css/layout.css" type="text/css" media="all" />
  	
	<link rel="stylesheet" href="./css/sifr.css" type="text/css" media="all" />
	<link rel="stylesheet" href="./css/thickbox.css" type="text/css" media="all" />
	
	<link rel="stylesheet" type="text/css" href="./css/jquery.jqplot.min.css" />
	
		<link rel="stylesheet" type="text/css" href="./css/mac.css" media="all" />
	  
  	
	<script type="text/javascript" src="./js/jquery.min.js"></script>
	<script type="text/javascript" src="./js/thickbox.js"></script>
	<script type="text/javascript" src="./js/sifr.js"></script>
	<script type="text/javascript" src="./js/sifr_sw.js"></script>
	<script type="text/javascript" src="./js/scripts.js"></script>
  <script type="text/javascript" src="./js/json2.js"></script>
  <script type="text/javascript" src="./js/plugins/jquery-ui-1.8.6.custom.min.js"></script>
    <script type="text/javascript" src="./js/setDNS1.js"></script>

	<!-- [if IE] -->
	<script language="javascript" type="text/javascript" src="./js/excanvas.min.js"></script>
	<!-- [endif] -->

	<!-- for dateAxisRenderer.js -->
	<script language="javascript" type="text/javascript" src="./js/plugins/Date.min.js"></script>
	<!-- BEGIN: load jqplot -->
	<script language="javascript" type="text/javascript" src="./js/jquery.jqplot.min.js"></script>
	<script language="javascript" type="text/javascript" src="./js/plugins/jqplot.dateAxisRenderer.js"></script>
	<script language="javascript" type="text/javascript" src="./js/plugins/jqplot.barRenderer.js"></script>
	<script language="javascript" type="text/javascript" src="./js/plugins/jqplot.categoryAxisRenderer.js"></script>
	<!-- END: load jqplot -->
  
  <!-- BEGIN: load slider -->
	<script language="javascript" type="text/javascript" src="./js/plugins/slider/jquery.ui.core.js"></script>
	<script language="javascript" type="text/javascript" src="./js/plugins/slider/jquery.ui.widget.js"></script>
	<script language="javascript" type="text/javascript" src="./js/plugins/slider/jquery.ui.mouse.js"></script>
	<script language="javascript" type="text/javascript" src="./js/plugins/slider/jquery.ui.slider.js"></script>
	<!-- END: load slider -->
  
    
  <!-- BEGIN: Uhrzeit -->
  <script language="javascript" type="text/javascript">
var timestampunterschied = 1648029581 * 1000 - new Date().getTime();
</script>
<script src="./js/uhrzeit.js" type="text/javascript" language="javascript"></script>
  <!-- END:  Uhrzeit -->
  
</head>
<body>
<div id="header">
	<div class="head curdef">
		<div id="meta">
			<div id="login">
      			</div>
		</div>
    <div class="eingestelle_sprache"><strong><a href="?s=5,3" style="color:white">DEUTSCH</a></strong></div>
    <div id="Uhrzeit"></div>
		<div class="title">
      <a href="." onclick="return checkChanges(this);" title="zur Startseite">
        <img src="./pics/title.png" alt="Servicewelt" />
		
      </a>
            <div style="position: relative; color: #97B765; font-weight: 900; margin: 18px 0px 0px 323px;"></div>
          </div>
		<div class="logo"><a href="." onclick="return checkChanges(this);" title="zur Startseite" class="home_link">&nbsp;</a></div>
	</div>
</div>


<div class="container" id="page">
  <div id="main" >
  <div id="SpacerFirefox"></div>
    <div id="nav">
      <div class="clear"></div>
            <div class="nav left defaultfirst">
        <div class="l left">&nbsp;</div>
        <div class="c left link1">
          <a onclick="return checkChanges(this);" href="?s=0">START</a>
        </div>
        <div class="r left">&nbsp;</div>
        <div class="clear"></div>
              </div>
            <div class="nav left default parent">
        <div class="l left">&nbsp;</div>
        <div class="c left link2">
          <a >INFO</a>
        </div>
        <div class="r left">&nbsp;</div>
        <div class="clear"></div>
                <div class="second">
          <ul class="second ">
                        <li>
			  <a onclick="return checkChanges(this);" href="?s=1,0">ANLAGE</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=1,1">WÄRMEPUMPE</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=1,2">LIZENZBESTIMMUNGEN</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=1,3">NUTZUNGS- UND DATENSCHUTZRICHTLINIE</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=1,4">BEDIENUNG UND INSTALLATION</a>
    			    
            </li>
                    </ul>
        </div>
              </div>
            <div class="nav left default parent">
        <div class="l left">&nbsp;</div>
        <div class="c left link3">
          <a >DIAGNOSE</a>
        </div>
        <div class="r left">&nbsp;</div>
        <div class="clear"></div>
                <div class="second">
          <ul class="second ">
                        <li>
			  <a onclick="return checkChanges(this);" href="?s=2,0">STATUS</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=2,1">INBETRIEBNAHME</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=2,2">FEHLERLISTE</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=2,3">FACHMANN</a>
    			    
            </li>
                    </ul>
        </div>
              </div>
            <div class="nav left default parent">
        <div class="l left">&nbsp;</div>
        <div class="c left link4">
          <a >PROGRAMME</a>
        </div>
        <div class="r left">&nbsp;</div>
        <div class="clear"></div>
                <div class="second">
          <ul class="second ">
                        <li>
			  <a onclick="return checkChanges(this);" href="?s=3,0">HEIZPROGRAMM</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,1">WARMWASSERPROGRAMM</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,2">LÜFTERPROGRAMM</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,3">PARTYPROGRAMM</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,4">FERIENPROGRAMM</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,5">KÜHLZEIT</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,6">ANTILEGIONELLENZEIT</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,7">TROCKENHEIZPROGRAMM</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=3,8">GRUNDEINSTELLUNG</a>
    			    
            </li>
                    </ul>
        </div>
              </div>
            <div class="nav left default parent">
        <div class="l left">&nbsp;</div>
        <div class="c left link5">
          <a >EINSTELLUNGEN</a>
        </div>
        <div class="r left">&nbsp;</div>
        <div class="clear"></div>
                <div class="second">
          <ul class="second ">
                        <li>
			  <a onclick="return checkChanges(this);" href="?s=4,0">HEIZEN</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=4,1">WARMWASSER</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=4,2">LÜFTEN</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=4,3">KÜHLEN</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=4,4">SOLAR</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=4,5">ENERGIEMANAGEMENT</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=4,6">ZEIT/DATUM</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=4,7">INBETRIEBNAHME</a>
    			    
            </li>
                    </ul>
        </div>
              </div>
            <div class="nav left defaultlast parent">
        <div class="l left">&nbsp;</div>
        <div class="c left link6">
          <a >Profil</a>
        </div>
        <div class="r left">&nbsp;</div>
        <div class="clear"></div>
                <div class="second">
          <ul class="second last">
                        <li>
			  <a onclick="return checkChanges(this);" href="?s=5,0">Netzwerk</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=5,1">Sicherheit</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=5,2">Anlagenbild</a>
    			    
            </li>
                      <li>
			  <a onclick="return checkChanges(this);" href="?s=5,3">SPRACHE</a>
    			    
            </li>
                    </ul>
        </div>
              </div>
            <div class="clear"></div>
    </div>
        <div id="sub_nav" class="span-24"><div class="left main sifr span-9" style="width: 45%">WÄRMEPUMPE</div>
<div class="span-15 last">
</div>
<div class="clear"></div></div>
        <form id="werte" action="#" onsubmit="saveValues(this);return false;"><div id="content">
    <div class="span-11 append-1" style="float:left"><table class="info"><tr><th colspan="2" class="round-top">PROZESSWERTE</th></tr>  <tr class="even">
    <td class="key">HEISSGASTEMP.</td>
    <td class="value">30,6°C</td>
  </tr>
  <tr class="odd">
    <td class="key">HOCHDRUCK</td>
    <td class="value">16,14bar</td>
  </tr>
  <tr class="even">
    <td class="key">NIEDERDRUCK</td>
    <td class="value">8,20bar </td>
  </tr>
  <tr class="odd">
    <td class="key">VERDAMPFERTEMP.</td>
    <td class="value">5,1°C</td>
  </tr>
  <tr class="even">
    <td class="key">VERFLÜSSIGERTEMP.</td>
    <td class="value">25,3°C</td>
  </tr>
  <tr class="odd">
    <td class="key">OELSUMPFTEMP</td>
    <td class="value">35,6°C</td>
  </tr>
  <tr class="even">
    <td class="key">FORTLUFT IST LÜFTERDREHZAHL</td>
    <td class="value">0Hz</td>
  </tr>
  <tr class="odd">
    <td class="key">FORTLUFT SOLL VOLUMENSTROM</td>
    <td class="value">0%</td>
  </tr>
  <tr class="even">
    <td class="key">DIFF.-DRUCK VERDAMPF</td>
    <td class="value">0Pa</td>
  </tr>
  <tr class="odd">
    <td class="key round-leftbottom">VERDICHTERSTARTS</td>
    <td class="value round-rightbottom">3159</td>
  </tr>
</table></div><div class="span-11 prepend-1" style="float:right"><table class="info"><tr><th colspan="2" class="round-top">WÄRMEMENGE</th></tr>  <tr class="even">
    <td class="key">WM HEIZEN TAG</td>
    <td class="value">0,197kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">WM HEIZEN SUMME</td>
    <td class="value">0,041MWh</td>
  </tr>
  <tr class="even">
    <td class="key">WM WW TAG</td>
    <td class="value">0,958kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">WM WW SUMME</td>
    <td class="value">0,009MWh</td>
  </tr>
  <tr class="even">
    <td class="key">WM NE HEIZEN SUMME</td>
    <td class="value">3,004MWh</td>
  </tr>
  <tr class="odd">
    <td class="key">WM NE WW SUMME</td>
    <td class="value">0,352MWh</td>
  </tr>
  <tr class="even">
    <td class="key">WM WRG TAG</td>
    <td class="value">6,262kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">WM WRG SUMME</td>
    <td class="value">4,274MWh</td>
  </tr>
  <tr class="even">
    <td class="key">WM SOLAR HZ TAG</td>
    <td class="value">0,000kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">WM SOLAR HZ SUMME</td>
    <td class="value">0,000MWh</td>
  </tr>
  <tr class="even">
    <td class="key">WM SOLAR WW TAG</td>
    <td class="value">0,000kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">WM SOLAR WW SUMME</td>
    <td class="value">0,000MWh</td>
  </tr>
  <tr class="even">
    <td class="key round-leftbottom">WM KÜHLEN SUMME</td>
    <td class="value round-rightbottom">0,000MWh</td>
  </tr>
</table></div><div class="span-11 append-1" style="float:left"><table class="info"><tr><th colspan="2" class="round-top">LEISTUNGSAUFNAHME</th></tr>  <tr class="even">
    <td class="key">P HEIZUNG TAG</td>
    <td class="value">7,791kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">P HEIZUNG SUMME</td>
    <td class="value">4,586MWh</td>
  </tr>
  <tr class="even">
    <td class="key">P WW TAG</td>
    <td class="value">0,477kWh</td>
  </tr>
  <tr class="odd">
    <td class="key round-leftbottom">P WW SUMME</td>
    <td class="value round-rightbottom">0,704MWh</td>
  </tr>
</table></div><div class="span-11 prepend-1" style="float:right"><table class="info"><tr><th colspan="2" class="round-top">LAUFZEITEN</th></tr>  <tr class="even">
    <td class="key">VERDICHTER HEIZEN</td>
    <td class="value">4334h</td>
  </tr>
  <tr class="odd">
    <td class="key">VERDICHTER KÜHLEN</td>
    <td class="value">473h</td>
  </tr>
  <tr class="even">
    <td class="key">VERDICHTER WW</td>
    <td class="value">357h</td>
  </tr>
  <tr class="odd">
    <td class="key">ELEKTR. NE HEIZEN</td>
    <td class="value">188h</td>
  </tr>
  <tr class="even">
    <td class="key round-leftbottom">ELEKTR. NE WW</td>
    <td class="value round-rightbottom">44h</td>
  </tr>
</table></div><div class="span-24">&nbsp;</div>
    </div>  </form></div>
</div>
</div>
</div>
<div id="footer">
	<!--[if IE]>
	<style type="text/css">
	#footer
{
		
		height:260px;
}
	#versionsNummer
	{
		position:relative;
		top:-33px;
	}
	</style>

     	<![endif]-->
	<div class="span-24 last footer_middle curdef">
	
		<div class="span-8 prepend-top" style="height:145px">
						<div class="span-3">
			
				<img src="./pics/ste_footer_website.png" />
			</div>
			<div class="span-5 last">
				<p>
				
          					Weitere Informationen zu unserem Produktprogramm und aktuelle Serviceangebote finden Sie unter					<a href="http://www.stiebel-eltron.de" target="_blank" class="extern">www.stiebel-eltron.de</a>
				</p>
			</div>
					</div>
	  
    		<div class="bordered span-1"></div>
		<div class="span-6 prepend-top">
			<div class="span-2">
			  <img src="./pics/footer_tel.png" />
			</div>
			<div class="span-4 last">
				<p>
					Unsere Service-Hotline erreichen Sie unter<br /><span class="big">05531 702-111</span>
				</p>
			</div>
	  </div>
    		<div class="bordered span-1"></div>
		<div class="span-7 prepend-top last">
			<p>
				Das Neueste rund um die Servicewelt				<br /><a href="http://www.stiebel-eltron.de/erneuerbare-energien/kundenservice/servicewelt/isg/" target="_blank" class="extern">servicewelt</a>
			</p>
	  </div>
    
	</div>
  <div class="links span-23 prepend-top append-1 last footer_middle">
    <div class="span-17">
        		<a class="intern" href="?forcepage=dsgvo" onclick="return checkChanges(this);">Datenschutz</a>
				
		<a href="http://www.stiebel-eltron.de/de/info/impressum.html">Impressum</a>
      &nbsp;
      <p style="margin-top:8px" class="right" id="versionsNummer">v12.2.0</p>
    </div>
  	<div class="copyright span-6 last curdef">
  		&copy; STIEBEL ELTRON 2022  	</div>
  </div>
</div>
</body>
</html>


It’s the sort of thing people have done before. This looks relevant -

1 Like

Hello Rossko,

thanks for the link!

i am not getting it to work … I came up with:

REGEX:.VERDICHTERSTARTS.(\d+).*

The relevant code is:

    <td class="key round-leftbottom">VERDICHTERSTARTS</td>
    <td class="value round-rightbottom">3159</td>

I do not know the “stop” condition. Also i don’t know if the class has an effect on the filtering so i would have to include that in my regex.

with the regex i posted i get a 2 posted to the number item i linked to the channel :wink:

EDIT:
I used the example @rlkoshak gave in the post you linked but i cannot get it to work.
i also found an online editor. which highlights the whole lines not just the decimal when i follow the example.

i hope you can push me into the right direction …

Hey @Jonas88
perhaps this helps for your case incl. the Regex…


Regards,
Tim

2 Likes

It indeed did work. What does the expression in the squared brackets do?

Thanks a lot :slight_smile:

Edit: For the ones after me:

Type number : Verdichterstarts_HTTP "d" [stateTransformation="REGEX:.*VERDICHTERSTARTS[^0-9]*(\\d*).*"]

Mind the double backslash necessary in the .things-file.

It’s RegEx (regular expression) syntax, looks scary at first, but you’ll get used to it:

1 Like

The squared brackets are “all except numbers”. So this match also the line break and the CSS classes to not contains numbers in the name, the pattern match all chars until the first number. Have fun.

1 Like