Guten Morgen,
das mit dem Zugangsscript scheint zu klappen (SID.lua)
, allerdings kann ich trotzdem nicht auf meinen Usbstick mit CSV- Daten zum Auslesen zugreifen.
Wie funktioniert das nun?
Anders Protokoll statt ftp?
Oder anderer Zugang?
<?
// Step 1 - Login in die Fritzbox
$fritzbox_Password="abcdef";
$ch = curl_init('http://192.168.2.1/login_sid.lua');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
$session_status_simplexml = simplexml_load_string($login);
if ($session_status_simplexml->SID != '0000000000000000')
{
$SID = $session_status_simplexml->SID;
}
else
{
$challenge = $session_status_simplexml->Challenge;
$response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $fritzbox_Password, "UCS-2LE", "UTF-8"));
curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua");
$sendlogin = curl_exec($ch);
curl_close($ch);
$session_status_simplexml = simplexml_load_string($sendlogin);
if ($session_status_simplexml->SID != '0000000000000000')
{
$SID = $session_status_simplexml->SID;
}
else
{
echo "Fehler: Login fehlgeschlagen";
return;
}
}
//daten-csv auslesen
$timestamp = time();
$datum =date("Ymd",$timestamp); //heute
$logfile = "ftp://192.168.2.1/SanDisk-CruzerBlade-01/s0/data/".$datum.".log";
echo $logfile,"
"; //kontrolle
$lines = file($logfile); //Array
$letzterLog = $lines[count($lines)-1];
echo $letzterLog;
$split = explode(',', $letzterLog); //aufteilen in einzelne Datenzeilen
$S0 = $split[0]; //Zeitstempel
//$S01 = $split[1]; //Wechselrichter
$S02= $split[2] ; //Impulse
$S03= $split[3]; //Tagesverbrauch
$S04= $split[4]; //Monatsverbrauch
$S05= $split[5]; //Jahresverbrauch
$S06= $split[6]; //Gesamtverbrauch
SetValueString(43757 /*[Strom\Verbrauch\S0_0_Timestamp]*/, $S0);
SetValueFloat(38893 /*[Strom\Verbrauch\S0_2_aktueller Verbrauch]*/,(float)(str_replace(',', '.', $S02)));
SetValueFloat(27173 /*[Strom\Verbrauch\S0_3_Tag]*/,(float)(str_replace(',', '.', $S03)));
SetValueFloat(36476 /*[Strom\Verbrauch\S0_4_Monat]*/,(float)(str_replace(',', '.',$S04)));
SetValueFloat(52398 /*[Strom\Verbrauch\S0_5_Jahr]*/,(float)(str_replace(',', '.', $S05)));
SetValueFloat(54146 /*[Strom\Verbrauch\S0_6_Gesamt]*/,(float)(str_replace(',', '.', $S06)));
?>
Fehlermeldung:
Warning: file(ftp://192.168.2.1/SanDisk-CruzerBlade-01/s0/data/20121228.log): failed to open stream: operation failed in C:\IP-Symcon\scripts\S0_Datensatz.ips.php on line 41
Wo ist der Fehler?
Gruß Konny