[vz-users] PHP Script Direktverbrauch auf Raspberry Pi
    Heiko W. 
    luckyheiko at hotmail.com
       
    Fri Feb  8 14:58:34 CET 2013
    
    
  
Hallo 
hab nun doch schon einiges erledigt .. aber mit dem Script komm ich nun mal gar nicht weiter 
ich habe das Script ein 'bischen' verändert, hatte mal die <br> usw rausgenommen
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 
zur Info 
'Bezug' = 1.8.1 = was vom EVU zu mir kommt (Tag), hab eigentlich Tag Nacht...
'Einspeisung' = 2.8.0 = was ich ins Netz einspeiße
'Erzeugung' = 2.8.0 = PV Anlage
Zähler sind 2 * ED300L von EMH Metering
ich bekomme immer das als Ausgabe in Putty
pi at raspberrypi ~ $ php /var/www/volkszaehler.org/htdocs/direktverbrauch.php
ddfea5f0-713c-11e2-8667-8d4b408bc4f7 / Bezug: 0
<br>Array
(
    [0] => 1360331363815
    [1] => 5433.071
    [2] => 1
)
f7998900-713c-11e2-ada2-795d327a9fd6 / Einspeisung: 5433.071
<br>0e2c3850-713d-11e2-a384-4bda743e342c / Erzeugung: 0
<br>Gesamtverbrauch = Bezug + Erzeugung - Lieferung: -5433.071
<br>http://localhost/middleware.php/data/c28860c0-713c-11e2-b372-bb9dc25e9aa0.json?operation=add&value=-5433.071&ts=1360331363771
<br>Direktverbrauch = Erzeugung - Lieferung : -5433.071
<br>^C
pi at raspberrypi ~ $
und das ist mein 'zusammengewürfeltes' Script 
<?php
    $urlBase='http://localhost/middleware.php/data/';
    $uuIds=array( 'Bezug' => 'ddfea5f0-713c-11e2-8667-8d4b408bc4f7',
                  'Einspeisung' => 'f7998900-713c-11e2-ada2-795d327a9fd6',
                  'Erzeugung' => '0e2c3850-713d-11e2-a384-4bda743e342c',
                );
    
    $uuIdTarget=array('Gesamtverbrauch' => 'c28860c0-713c-11e2-b372-bb9dc25e9aa0',
                      'Direktverbrauch' => 'b9a59860-713c-11e2-81af-7fa065fe71c7',
                     );
    $urlEnd='.json?from=30%20seconds%20ago';
function curl_file_get_contents($URL)
    {
    $c = curl_init();
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_URL, $URL);
    $contents = curl_exec($c);
    curl_close($c);
    if ($contents) return $contents;
    else return FALSE;
    } // function curl_get_file_contents
function getTimestamp() {
    $seconds = microtime(true); // false = int, true = float
    return round( ($seconds * 1000) );
    }
for ($i=1; $i<5 ; $i++) {
    $minTimestamp = getTimestamp();
    $maxTimestamp = $minTimestamp;
    foreach($uuIds as $index=>$value) {
      $url=$urlBase . $value . $urlEnd;
      $content = curl_file_get_contents($url);
      $content=json_decode($content);
      if (!empty($content->data->tuples)) {
         $lastTuple = end($content->data->tuples);
         $minTimestamp = min($minTimestamp,$lastTuple[0]);
         $maxTimestamp = max($maxTimestamp,$lastTuple[0]);
         print_r($lastTuple);
         $lastValue = $lastTuple[1];
      } else {
        $lastValue=0;
    } // if
    echo "$value / $index: $lastValue\n<br>";
    $values[$index]=$lastValue;
    } // foreach
    $diffGV= $values['Bezug'] + $values['Erzeugung'] - $values['Einspeisung'];
    echo "Gesamtverbrauch = Bezug + Erzeugung - Lieferung: $diffGV \n<br>";
    $timestamp = round($minTimestamp + ( ($maxTimestamp - $minTimestamp) / 2 ));
    $linkGV=$urlBase . $uuIdTarget['Gesamtverbrauch'] . '.json?operation=add&value=' . $diffGV . '&ts=' . $timestamp;
    $dummy=curl_file_get_contents($linkGV);
    echo "$linkGV \n<br>";
    
    $diffDV= $values['Erzeugung'] - $values['Einspeisung'];
    echo "Direktverbrauch = Erzeugung - Lieferung : $diffDV \n<br>";
    if ($diffDV>0) {
        $linkDV=$urlBase . $uuIdTarget['Direktverbrauch'] . '.json?operation=add&value=' . $diffDV . '&ts=' . $timestamp;
        $dummy=curl_file_get_contents($linkDV);
        echo "$linkDV \n<br>";
    }
    sleep(15);
} // for
?>
sind da irgendwo grobe Fehler drinnen ? 
oder bin ich nur zu ... 
würd mich freuen wenn ich das noch hinbekommen könnte :) 
weil dann 'läuft alles' was ich will/wollte.. 
Mit freundlichen Grüßen
Heiko W.
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://volkszaehler.org/pipermail/volkszaehler-users/attachments/20130208/611631c4/attachment-0001.html>
    
    
More information about the volkszaehler-users
mailing list