ZonPHP & PVoutput

De kriebels zijn er toch, om met de ZonPHP alsnog een externe site aan te sturen met data die de EMU S0-monitor gemeten heeft. En het lijkt er op dat een deel al op internet te vinden is van de code hiervoor.

Het voorbeeld is een PHP-script wat in elk geval de syntax naar PVoutput regelt:

<?php
include 'confidential_settings.php';
// This include contains 5 variables:
//  - db_name: database name
//  - table_name_x: table name
//  - username: username
//  - password: password
//  - localhost: host name

// === Add to database ===
$dbh=mysql_connect ($localhost, $username, $password) or die('Cannot connect to the database because: ' . mysql_error());
mysql_select_db ($db_name) or die(mysql_error()); 
$val = $_GET['val'];
$tmp_val = $val;
$val = mysql_real_escape_string($val);
mysql_query("INSERT INTO $table_name_gsc
(val) VALUES($val) ") or die(mysql_error());  
mysql_close($dbh);

// === Add to pvoutput ===
// example: http://pvoutput.org/service/r2/addstatus.jsp?key=d7a93dd715db6169a70fe3059568d945cc04d029&sid=5375&d=20120104&t=20:25&v1=0
//   where v1 is the value in Wh

//$date_str = date("Ymd");
//$time_str = date('H:m');
//$request = 'http://pvoutput.org/service/r2/addstatus.jsp?' . 'key=d7a93dd715db6169a70fe3059568d945cc04d029&sid=5375&d=' . $date_str . '&t=' . $time_str . '&v1=' . $tmp_val;
//$homepage = file_get_contents($request);

//$request = new HttpRequest('http://pvoutput.org/service/r2/addstatus.jsp');
//$date_str = date("Ymd");
//$time_str = date('H:m');
//$query = 'key=d7a93dd715db6169a70fe3059568d945cc04d029&sid=5375&d=' . $date_str . '&t=' . $time_str . '&v1=' . $tmp_val;
//$request->setBody($query);
//$response = $request->execute(true);
// Send response
echo "[OK]";
?>

Nu nog even uitvogelen hoe ik de 3 deelsystemen daarheen kan sturen. Hiervoor heb ik in de database van ZonPHP reeds 2 regels toegevoegd, te weten de PVoutputAPIkey (de unieke/identificerende sleutel van het PVoutput account), het PVoutputSID (systeem-codering).
Deze velden heb ik toegevoegd in tabel ‘tgeg_parameters’ (die standaard door ZonPHP aangemaakt is/wordt).
Wat ik moet uitzoeken is hoe ik met een teller e.e.a. kan regelen:
de PVOutputSID is in de database PVoutputSID1 t/m PVoutputSID3 genoemd. Dus ik zou een teller achter de naam ‘PVoutputSID’ kunnen/moeten plakken om de juiste data naar pvoutput te sturen.

Bron van de initiele PHP-code: Google

1 Comment

  1. In PHP geeft de parameter ‘m’ in de date functie de maand, niet het aantal minuten. Het aantal minuten (00-59) krijg je met “i”.

    $time_str = date(‘H:m’);
    moet dus zijn:
    $time_str = date(‘H:i’);

Leave a Reply

Your email address will not be published. Required fields are marked *