Hallo zusammen,
ich habe folgendes Problem,
Ich mache eine nebenberufliche Ausbildung zum Techniker-IT, das bedeutet das ich auch ein Abschlußprojekt machen muss.
Mein Projekt ist das darstellen der Ertragsdaten unserer Schul-Solaranlage auf der Schulhomepage. PHP und SQL sind eigentlich nicht meine Probleme, dort habe ich durch die Schule, recht solide Grundkenntnisse (die mir hier leider auch nicht weiterhelfen!)
Der Wechselrichter ist LAN-fähig und über IP ansprechbar. Mit dem passenden Hersteller-Programm kann der WS probelmlos angesprochen und ausgelesen werden.
Wir möchten aber nicht das Programm benutzen, um den Wechselrichter dauerhaft auszulesen, sondern wollen dies von einem php-Skript, das per crowl alle 10min angestoßen wird, erledigen lassen. Sobald die Daten ausgelesen sind, werden diese dann in eine SQL eingespielt und können abgefragt werden.
Soviel zur Gesamtsituation.
Mein Problem ist jetzt folgendes,
Ich habe per wireshark die Kommunikation zwischen WS und Software mitgelauscht und festgestellt, das immer nur der ein und selbe String an den WS geschickt wird damit er uns die entsprechenden Daten liefert.
PHP-Code:
{FB;05;36|64: PAC;UDC;TKK;KDY;KT0;KYR;PRL;SYS;SAL|0D54}
Wenn dieser String gesendet wird antwortet der Wechselrichter prompt mit den entsprechenden Daten.
PHP-Code:
{05;FB;57|64:PAC=1D6;UDC=831;TKK=28;KDY=3D;KT0=332;KYR=2DE;PRL=A;SYS=4E24,0;SAL=0|14A3}
Ich möchte mit fsockopen eine Verbindung aufbauen (habe das Bsp-Skript von php.net genommen und angepasst) den Befehl an den WS senden, die Daten abwarten und in eine Variable einlesen. Dies kann ich mir dann später per String so zurecht schneiden wie ich es brauche.
Hier das Skript,
PHP-Code:
<?php
$fp = fsockopen("172.16.230.41","12345",$errno,$errstr,"10");
if (!$fp)
{
echo "$errstr ($errno)\n";
}
else
{
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: Wechselrichter\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp_data,$fp);
while (!feof($fp))
{
echo fgets($fp, 128);
}
fclose($fp);
}
?>
Ich scheitere aber schon an fsockopen.
IP-Adresse und der Port am Wechselrichter stimmen.
Der Browser zeigt mit folgendes an,
PHP-Code:
Warning: fsockopen() [function.fsockopen]: unable to connect to 172.16.230.41:12345 (Connection timed out) in /home/www/de/biz-worms/schueler/fsit05/krapp/energie/solar/ws.php on line 11
Connection timed out (110)
Und ich habe jetzt keinen Plan mehr wie ich mich der Lösung nähere....
Kann mir jemand weiterhelfen !?
Vorab vielen Dank für eure Mühen !
Gruß
mikeobelo