<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Hallo <br><br>hab nun doch schon einiges erledigt .. aber mit dem Script komm ich nun mal gar nicht weiter <br><br>ich habe das Script ein 'bischen' verändert, hatte mal die <br> usw rausgenommen<br>und da ja in dem How To ( ja nicht Anleitung) ein anders Script steht wie in der FAQ hab ich mal geschaut wo da die Unterschiede sind <br><br><br><br>zur Info <br>'Bezug' = 1.8.1 = was vom EVU zu mir kommt (Tag), hab eigentlich Tag Nacht...<br>'Einspeisung' = 2.8.0 = was ich ins Netz einspeiße<br>'Erzeugung' = 2.8.0 = PV Anlage<br>Zähler sind 2 * ED300L von EMH Metering<br><br>ich bekomme immer das als Ausgabe in Putty<br><br>pi@raspberrypi ~ $ php /var/www/volkszaehler.org/htdocs/direktverbrauch.php<br>ddfea5f0-713c-11e2-8667-8d4b408bc4f7 / Bezug: 0<br><br>Array<br>(<br>    [0] => 1360331363815<br>    [1] => 5433.071<br>    [2] => 1<br>)<br>f7998900-713c-11e2-ada2-795d327a9fd6 / Einspeisung: 5433.071<br><br>0e2c3850-713d-11e2-a384-4bda743e342c / Erzeugung: 0<br><br>Gesamtverbrauch = Bezug + Erzeugung - Lieferung: -5433.071<br><br>http://localhost/middleware.php/data/c28860c0-713c-11e2-b372-bb9dc25e9aa0.json?operation=add&value=-5433.071&ts=1360331363771<br><br>Direktverbrauch = Erzeugung - Lieferung : -5433.071<br><br>^C<br>pi@raspberrypi ~ $<br><br><br><br>und das ist mein 'zusammengewürfeltes' Script <br><br><?php<br>    $urlBase='http://localhost/middleware.php/data/';<br>    $uuIds=array( 'Bezug' => 'ddfea5f0-713c-11e2-8667-8d4b408bc4f7',<br>                  'Einspeisung' => 'f7998900-713c-11e2-ada2-795d327a9fd6',<br>                  'Erzeugung' => '0e2c3850-713d-11e2-a384-4bda743e342c',<br>                );<br>    <br>    $uuIdTarget=array('Gesamtverbrauch' => 'c28860c0-713c-11e2-b372-bb9dc25e9aa0',<br>                      'Direktverbrauch' => 'b9a59860-713c-11e2-81af-7fa065fe71c7',<br>                     );<br><br>    $urlEnd='.json?from=30%20seconds%20ago';<br><br>function curl_file_get_contents($URL)<br>    {<br>    $c = curl_init();<br>    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);<br>    curl_setopt($c, CURLOPT_URL, $URL);<br>    $contents = curl_exec($c);<br>    curl_close($c);<br><br>    if ($contents) return $contents;<br>    else return FALSE;<br>    } // function curl_get_file_contents<br><br>function getTimestamp() {<br>    $seconds = microtime(true); // false = int, true = float<br>    return round( ($seconds * 1000) );<br>    }<br><br>for ($i=1; $i<5 ; $i++) {<br>    $minTimestamp = getTimestamp();<br>    $maxTimestamp = $minTimestamp;<br>    foreach($uuIds as $index=>$value) {<br>      $url=$urlBase . $value . $urlEnd;<br>      $content = curl_file_get_contents($url);<br>      $content=json_decode($content);<br>      if (!empty($content->data->tuples)) {<br><br>         $lastTuple = end($content->data->tuples);<br>         $minTimestamp = min($minTimestamp,$lastTuple[0]);<br>         $maxTimestamp = max($maxTimestamp,$lastTuple[0]);<br>         print_r($lastTuple);<br>         $lastValue = $lastTuple[1];<br>      } else {<br>        $lastValue=0;<br>    } // if<br>    echo "$value / $index: $lastValue\n<br>";<br><br>    $values[$index]=$lastValue;<br>    } // foreach<br><br>    $diffGV= $values['Bezug'] + $values['Erzeugung'] - $values['Einspeisung'];<br>    echo "Gesamtverbrauch = Bezug + Erzeugung - Lieferung: $diffGV \n<br>";<br>    $timestamp = round($minTimestamp + ( ($maxTimestamp - $minTimestamp) / 2 ));<br>    $linkGV=$urlBase . $uuIdTarget['Gesamtverbrauch'] . '.json?operation=add&value=' . $diffGV . '&ts=' . $timestamp;<br>    $dummy=curl_file_get_contents($linkGV);<br>    echo "$linkGV \n<br>";<br>    <br>    $diffDV= $values['Erzeugung'] - $values['Einspeisung'];<br>    echo "Direktverbrauch = Erzeugung - Lieferung : $diffDV \n<br>";<br>    if ($diffDV>0) {<br>        $linkDV=$urlBase . $uuIdTarget['Direktverbrauch'] . '.json?operation=add&value=' . $diffDV . '&ts=' . $timestamp;<br>        $dummy=curl_file_get_contents($linkDV);<br>        echo "$linkDV \n<br>";<br>    }<br>    sleep(15);<br>} // for<br>?><br><br><br>sind da irgendwo grobe Fehler drinnen ? <br>oder bin ich nur zu ... <br><br>würd mich freuen wenn ich das noch hinbekommen könnte :) <br>weil dann 'läuft alles' was ich will/wollte.. <br><br><br><br><br><br>Mit freundlichen Grüßen<br>Heiko W.<br>                                          </div></body>
</html>