WR Kostal PIKO 5.5 auslesen

Hi

Hier ein Script zum auslesen der Webseite des Kostal PIKO 5.5

einfach die Url anpassen und los gehts :smiley:

<?
<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : PV_WR.ips.php
Trigger  : 
Interval : 
           Kostal piko 5.5


*/

   $url = "http://pvserver:pvwr@192.168.4.170";  // Hier die Webseite vom Websever eintragen pvserver = user und pvwr = Password

 // Varialen anlegen
/*
   IPS_CreateVariable("AC-Leistung_aktuell", "Float");
   IPS_CreateVariable("AC-Leistung_Status", "String");
   
   IPS_CreateVariable("Energie_Gesamtertrag", "Float");
   IPS_CreateVariable("Energie_Gesamtertrag_Tag", "Float");
   
   IPS_CreateVariable("PV-Generator_String1_Spannung", "Float");
   IPS_CreateVariable("PV-Generator_String1_Strom", "Float");
   IPS_CreateVariable("PV-Generator_String2_Spannung", "Float");
   IPS_CreateVariable("PV-Generator_String2_Strom", "Float");
   IPS_CreateVariable("PV-Generator_String3_Spannung", "Float");
   IPS_CreateVariable("PV-Generator_String3_Strom", "Float");
   
   IPS_CreateVariable("Ausgangsleistung_L1_Spannung", "Float");
   IPS_CreateVariable("Ausgangsleistung_L1_Leistung", "Float");
   IPS_CreateVariable("Ausgangsleistung_L2_Spannung", "Float");
   IPS_CreateVariable("Ausgangsleistung_L2_Leistung", "Float");
   IPS_CreateVariable("Ausgangsleistung_L3_Spannung", "Float");
   IPS_CreateVariable("Ausgangsleistung_L3_Leistung", "Float");
*/

   $zeit = date("H:i", time());

   if ($zeit == "23:59"){
   SetValueFloat('Energie_Gesamtertrag_Tag', 0);
   }


   $Ausgabe = file_get_contents("$url", "r");
   
   $pos1 = strpos($Ausgabe,"aktuell</td>");
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+65),$pos2-$pos1-65);
   $data1 = (float) $data;
   SetValueFloat('AC-Leistung_aktuell', $data1);
   echo "AC-Leistung_aktuell: ";
   echo $data1;
   echo "
";
   
   //AC-Leistung_Status
   
   $pos1 = strpos($Ausgabe,"Status</td>");
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+33),$pos2-$pos1-33);
   //$data1 = (float) $data;
   SetValueString('AC-Leistung_Status', $data);
   echo "AC-Leistung_Status: ";
   echo $data;
   echo "
";
   
   //Energie_Gesamtertrag

   $pos1 = strpos($Ausgabe,"Gesamtertrag</td>");
   $pos2 = strpos($Ausgabe,"</td>",$pos1+30);
   $data = substr($Ausgabe,($pos1+70),$pos2-$pos1-70);
   $data1 = (float) $data;
   SetValueFloat('Energie_Gesamtertrag', $data1);
   echo "Energie_Gesamtertrag: ";
   echo $data1;
   echo "
";
   
   //PV-Generator_String1_Spannung

   $pos1 = strpos($Ausgabe,"Spannung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('PV-Generator_String1_Spannung', $data1);
   echo "PV-Generator_String1_Spannung: ";
   echo $data1;
   echo "
";
   
   //Ausgangsleistung_L1_Spannung

   $pos1 = strpos($Ausgabe,"Spannung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('Ausgangsleistung_L1_Spannung', $data1);
   echo "Ausgangsleistung_L1_Spannung: ";
   echo $data1;
   echo "
";
   
   //PV-Generator_String1_Strom

   $pos1 = strpos($Ausgabe,"Strom</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+63),$pos2-$pos1-63);
   $data1 = (float) $data;
   SetValueFloat('PV-Generator_String1_Strom', $data1);
   echo "PV-Generator_String1_Strom: ";
   echo $data1;
   echo "
";

   //Ausgangsleistung_L1_Leistung

   $pos1 = strpos($Ausgabe,"Leistung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('Ausgangsleistung_L1_Leistung', $data1);
   echo "Ausgangsleistung_L1_Leistung: ";
   echo $data1;
   echo "
";
   
   //PV-Generator_String2_Spannung

   $pos1 = strpos($Ausgabe,"Spannung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('PV-Generator_String2_Spannung', $data1);
   echo "PV-Generator_String2_Spannung: ";
   echo $data1;
   echo "
";

   //Ausgangsleistung_L2_Spannung

   $pos1 = strpos($Ausgabe,"Spannung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('Ausgangsleistung_L2_Spannung', $data1);
   echo "Ausgangsleistung_L2_Spannung: ";
   echo $data1;
   echo "
";

   //PV-Generator_String2_Strom

   $pos1 = strpos($Ausgabe,"Strom</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+63),$pos2-$pos1-63);
   $data1 = (float) $data;
   SetValueFloat('PV-Generator_String2_Strom', $data1);
   echo "PV-Generator_String2_Strom: ";
   echo $data1;
   echo "
";

   //Ausgangsleistung_L2_Leistung

   $pos1 = strpos($Ausgabe,"Leistung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('Ausgangsleistung_L2_Leistung', $data1);
   echo "Ausgangsleistung_L2_Leistung: ";
   echo $data1;
   echo "
";
   
   //PV-Generator_String3_Spannung

   $pos1 = strpos($Ausgabe,"Spannung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('PV-Generator_String3_Spannung', $data1);
   echo "PV-Generator_String3_Spannung: ";
   echo $data1;
   echo "
";

   //Ausgangsleistung_L3_Spannung

   $pos1 = strpos($Ausgabe,"Spannung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('Ausgangsleistung_L3_Spannung', $data1);
   echo "Ausgangsleistung_L3_Spannung: ";
   echo $data1;
   echo "
";

   //PV-Generator_String3_Strom

   $pos1 = strpos($Ausgabe,"Strom</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+63),$pos2-$pos1-63);
   $data1 = (float) $data;
   SetValueFloat('PV-Generator_String3_Strom', $data1);
   echo "PV-Generator_String3_Strom: ";
   echo $data1;
   echo "
";

   //Ausgangsleistung_L3_Leistung

   $pos1 = strpos($Ausgabe,"Leistung</td>",$pos2);
   $pos2 = strpos($Ausgabe,"</td>",$pos1+20);
   $data = substr($Ausgabe,($pos1+66),$pos2-$pos1-66);
   $data1 = (float) $data;
   SetValueFloat('Ausgangsleistung_L3_Leistung', $data1);
   echo "Ausgangsleistung_L3_Leistung: ";
   echo $data1;
   echo "
";
   
   // Tagesertrag
   
   $aktull = GetValueFloat("AC-Leistung_aktuell");
   $Tag = GetValueFloat("Energie_Gesamtertrag_Tag");
   
   //$aktull = $aktull / 1000;
   
   $Tagneu = ($aktull / 60) + $Tag;
   
   SetValueFloat('Energie_Gesamtertrag_Tag', $Tagneu);
   
/*
Quelltext der Pv-Server Seite

<br />
<b>Warning</b>:  Unable to locate IPSVariable: AC-Leistung_Status in <b>C:\Programme\IP-Symcon\scripts\.currentscript</b> on line <b>54</b><br />
<!DOCtype HTML PUBLIC "-//W3C//Dtd HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<meta name="Generator" CONTENT="ChrisB">
<title>PV Webserver</title>
</head>
<body nof="(MB=(DefaultMasterborder, 65, 60, 150, 10), L=(HomeLayout, 700, 600))" bgcolor="#EAF7F7" text="#000000" link="#0033CC" vlink="#990099" alink="#FF0000" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>
<form method="post" action="">

<table cellspacing="0" cellpadding="0" width="770" nof="ly">
<tr><td height="5"></td></tr>
<tr><td width="190" height="55"></td>
<td width="400">
  <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif" size="+3">
  PIKO 5.5
<br><font size="+1">
  Ziege_one_WR (1)
</font>
</font>
</td>
<td><img alt="Logo" height="42" width="130" src="KSE.gif"></td>
</tr>
</table>

<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
<table Border="0" width="100%"><tr>
<td width="150"></td>
<td> <hr> </td>
</tr></table>
<table cellspacing="0" cellpadding="0" width="770">
<tr><td></td></tr>
<tr>
<td width="190"></td>
<td colspan="2">
  <b>AC-Leistung</b></td>
<td>&nbsp</td>
<td>
  <b>Energie</b></td></tr>
<tr><td height="10"></td></tr>

<tr>
<td width="190"></td>
<td width="100">
  aktuell</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  642</td>
<td width="140">&nbsp W</td>
<td width="100">
  Gesamtertrag</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  28</td>
<td width="50">&nbsp kWh</td>
<td>&nbsp</td></tr>
<tr height="5"><td></td></tr>
<tr>
<td width="190"></td>
<td width="100">
  Status</td>
<td colspan="4">
  Einspeisen MPP</td>
<td>&nbsp</td></tr>
<tr height="8"><td></td></tr>
<tr><td colspan="7">
<table align="top" width="100%"><tr>
<td width="182"></td>
<td><hr size="1"></font></td>
</tr><tr><td height="5"></td></tr></table>
</td></tr>

<tr>
<td width="190"></td>
<td colspan="2">
  <b>PV-Generator</b></td>
<td width="140">&nbsp</td>
<td colspan="2">
  <b>Ausgangsleistung</b></td>
<td width="30">&nbsp</td>
<td>&nbsp</td></tr>
<tr><td height="10"></td></tr>
<tr>
<td width="190"></td>
<td width="100">
  <u>String 1</u></td>
<td width="70">&nbsp</td>
<td width="140">&nbsp</td>
<td width="95">
  <u>L1</u></td>
<td width="70">&nbsp</td>
<td width="30">&nbsp</td>
<td>&nbsp</td></tr>
<tr>
<td width="190"></td>
<td width="100">
  Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  344</td>
<td width="140">&nbsp V</td>
<td width="100">
  Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  232</td>
<td width="30">&nbsp V</td>
<td>&nbsp</td></tr>
<tr height="2"><td></td></tr>
<tr valign="top" align="left">
<td width="190">&nbsp</td>
<td width="100">
  Strom</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  1.03</td>
<td width="140">&nbsp A</td>
<td width="100">
  Leistung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  208</td>
<td width="30">&nbsp W</td>
<td>&nbsp</td></tr>
<tr height="22"><td></td></tr>
<tr>
<td width="190"></td>
<td width="100">
  <u>String 2</u></td>
<td width="70">&nbsp</td>
<td width="140">&nbsp</td>
<td width="100">
  <u>L2</u></td>
<td width="70">&nbsp</td>
<td width="30">&nbsp</td>
<td>&nbsp</td></tr>
<tr>
<td width="190"></td>
<td width="100">
  Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  348</td>
<td width="140">&nbsp V</td>
<td width="100">
  Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  235</td>
<td width="30">&nbsp V</td>
<td>&nbsp</td></tr>
<tr height="2"><td></td></tr>
<tr valign="top" align="left">
<td width="190">&nbsp</td>
<td width="100">
  Strom</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  0.99</td>
<td width="140">&nbsp A</td>
<td width="100">
  Leistung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  219</td>
<td width="30">&nbsp W</td>
<td>&nbsp</td></tr>
<tr height="22"><td></td></tr>
<tr>
<td width="190"></td>
<td width="100">
  <u>String 3</u></td>
<td width="70">&nbsp</td>
<td width="140">&nbsp</td>
<td width="100">
  <u>L3</u></td>
<td width="70">&nbsp</td>
<td width="30">&nbsp</td>
<td>&nbsp</td></tr>
<tr>
<td width="190"></td>
<td width="100">
  Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  0</td>
<td width="140">&nbsp
  V</td>
<td width="95">
  Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  236</td>
<td width="30">&nbsp V</td>
<td>&nbsp</td></tr>
<tr height="2"><td></td></tr>
<tr valign="top" align="left">
<td width="190">&nbsp</td>
<td width="95">
  Strom</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  0.00</td>
<td width="140">&nbsp
A</td>
<td width="95">
  Leistung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
  214</td>
<td width="30">&nbsp W</td>
<td>&nbsp</td></tr>

<tr><td height="15"></td></tr>
<tr><td colspan="7">
<table align="top" width="100%">
<tr><td width="182"></td>
<td><hr size="1"></font></td>
</tr><tr><td height="5"></td></tr></table>
</td></tr></table>
<table cellspacing="0" cellpadding="0" width="770">
<tr><td width="190"></td>
<td><font face="Arial,Helvetica,Geneva,Sans-serif">
<b>RS485 Kommunikation</b></td></tr>
<tr><td height="8"></td></tr>
<tr><td width="190"></td>
<td><font face="Arial,Helvetica,Geneva,Sans-serif">
Wechselrichter&nbsp
<input type="Text" name="edWrNr" value="1" size="3" maxlength="3">
<input type="submit" value="Anzeigen/Aktualisieren">
</td></tr><tr><td height="10"></td></tr>
</table>
</td></tr></table></font>

<hr>
<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
<table cellspacing="0" cellpadding="0" width="770">
<tr><td height="5"></td></tr>
<tr><td width="190"></td>
<td width="330">
<a href="LogDaten.dat">Historie</a>
&nbsp &nbsp &nbsp
<a href="Info.fhtml">Infoseite</a></td>
<td align="right">
<a href="Solar2.fhtml">Einstellungen</a></td>
<td width="50"></td>
</tr></table></font>
</form>
</body>
</html>
*/


?>

mfG Ziege-One

Hallo,

bei mir gibts da den folgenden Fehler:

Fatal error: Call to undefined function SetValueFloat() in /shares/www/piko/piko.php on line 52

Was mache ich falsch ?

Gruss
Frank

Tja mein Freund,

so wie es aussieht läßt Du das Skript auf einem externen Server laufen auf dem IPS nicht installiert ist.

SetValue ist ein IPS-Befehl, deshalb ist das Skript auch im IP-Symcon-Forum.