The script below, reads from a meter (eastron sdm 220 c) under rs485 modbus.
I can't import the reading of the imported energy from the grid. (-i) on this php script for eastron. All the readings works well.
I entered in line n. 5 -i for reading, but this seems not to work.
Code: Select all
#!/usr/bin/php
<?php
$data = array();
inizio:
$x = exec("/usr/local/bin/sdm120c -v -c -p -g -f -e -i -t -q -w3 -z5 /dev/ttyUSB0");
$data = preg_split('/[[:space:]]+/', $x);
if ($data[8] = 'OK') {
$tensione = $data[0];
$corrente = $data[1];
$potenza = $data[2];
$cosfi = $data[3];
//$frequenza_2 = $data[4];
$immessa = $data[5];
$prelevata = $data[6];
$energia = $data[7];
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.X.XXX:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue=$tensione");
$oem = curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.X.XXX:8080/json.htm?type=command¶m=udevice&idx=2&nvalue=0&svalue=$corrente");
$oem = curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.X.XXX:8080/json.htm?type=command¶m=udevice&idx=3&nvalue=0&svalue=$potenza;$energia");
$oem = curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.X.XXX:8080/json.htm?type=command¶m=udevice&idx=4&nvalue=0&svalue=$cosfi");
$oem = curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.X.XXX:8080/json.htm?type=command¶m=udevice&idx=43&nvalue=0&svalue=$immessa");
$oem = curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.X.XXX:8080/json.htm?type=command¶m=udevice&idx=44&nvalue=0&svalue=$prelevata");
$oem = curl_exec($ch);
curl_close($ch);
//sleep(2);
goto inizio;
?>
Maybe I forgot to enter some parameters?
Code: Select all
#!/usr/bin/php
<?php
$data = array();
inizio:
$x = exec("/usr/local/bin/sdm120c -v -c -p -g -f -e -i -t -q -w3 -z5 /dev/ttyUSB0");
$data = preg_split('/[[:space:]]+/', $x);
if ($data[8] = 'OK') {
$tensione = udevice(1,0,$data[0]);
$corrente = udevice(2,0,$data[1]);
$potenza = $data[2];
$cosfi = udevice(4,0,$data[3]);
//$frequenza_2 = $data[4];
$immessa = udevice(43,0,$data[5]);
$prelevata = udevice(44,0,$data[6]);
$energia = udevice(3,0,$data[7]);
}
sleep(2);
goto inizio;
function udevice($idx,$nvalue,$svalue) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.X.XXX:8080/json.htm?type=command¶m=udevice&idx=$idx&nvalue=$nvalue&svalue=$svalue");
curl_exec($ch);
curl_close($ch);
}