oggi dopo tanto tempo sono tornato su monitor e racconto i problemi in cui sono incappato:
fermo metern prima di fare qualsiasi test,
controllo il file di configurazione di monitor una decina di volte ma niente sempre msg di errore, alla fine vedo un post con il solito mio errore e dice di fermare anche 123solar ma io stò usando 1 solo contatore sdm120c poi andando su 123solar non configurato in quanto ho preso una immagine fatta da Flavio scopro che è ON collego anche le parole di Flavio che diceva che non era compatibile sul solito device e di default 123solar era configurato sul solito device. quindi lo fermo e lo disabilito con le info di Flavio che ho letto nel post più sopra.
testo con sudo ./monitor e non vedo nulla ma ha creato il file .txt nella ram virtuale /dev/shm/metern1.txt
che visualizzo con il comando cat /dev/shm/metern1.txt
riprovo con monitor -b il verbose e vedo che funziona.
cambio allora il file in /var/www/metern/config/config_daemond.php mettendo il doppio slash alle righe che non devono essere eseguite ed aggiungo le nuove
Codice: Seleziona tutto
<?php
if(!defined('checkaccess')){die('Direct access not permitted');}
// Manage com. apps daemon as 'http' user if needed
if (is_null($PID)) { // Stop Daemon
//exec("pkill -f pooler485 > /dev/null 2>&1 &");
exec("php /var/www/comapps/com_daemon_loop.php stop");
#exec("pkill -f loadcheck > /dev/null 2>&1 &");
} else { //Start
//exec("pooler485 1 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &");
exec("php /var/www/comapps/com_daemon_loop.php start");
#exec("loadcheck > /dev/null 2>/dev/null &");
}
?>
modifico anche metern
/var/www/config/config_met1.php con i nuovi comandi
Codice: Seleziona tutto
<?php
if(!defined('checkaccess')){die('Direct access not permitted');}
// ### CONFIG FOR METER #1
$METNAME1="Consumi";
$TYPE1='Elect';
$PROD1=2;
$PHASE1=1;
$SKIPMONITORING1=false;
$ID1="1_IE";
$COMMAND1="pooler 1 IE energy";
$UNIT1="Wh";
$PRECI1=0;
$PASSO1=0;
$COLOR1='2E6CE5';
$PRICE1=0.16;
$LID1="1_P";
$LIVECOMMAND1="pooler 1 P power";
$LIVEUNIT1="W";
$EMAIL1="";
$POAKEY1='';
$POUKEY1='';
$TLGRTOK1='';
$TLGRCID1='';
$WARNCONSOD1=0;
$NORESPM1=false;
$cfgver=1580629442;
?>
riavvio metern e comincia a funzionare ma non vedo gli indicatori a parte la cpu_temp
allora ad intuito modifico la configurazione indicatori come da immagine
ma gli indicatori non vanno allora controllo cosa fa il file reqsdm e scopro che con questo monitor così configurato non può lavorare e lo modifico non cancellando le righe ma mettendo il doppio slash // ops la guida diceva di usare reqsubmet me lo sono pescato.
/var/www/comapps/reqsdm.php
Codice: Seleziona tutto
#!/usr/bin/php
<?php
// This script will output a meterN compatible format for the main or live command
// You'll need to setup correct permission
// chmod +x reqsdm.php
// then
// ln -s /var/www/comapps/reqsdm.php /usr/local/bin/reqsdm
// Request command with 'reqsdm tensione' or 'reqsdm corrente' or ......
if (isset($_SERVER['REMOTE_ADDR'])) {
die('Direct access not permitted');
}
if (!isset($argv[1])) {
die("Abording: no valid argument given.\n");
} elseif ($argv[1] == 'tensione') {
//$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_1\(" | grep "*V)"');
$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_V\(" | grep "*V)"');
} elseif ($argv[1] == 'corrente') {
//$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_2\(" | grep "*A)"');
$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_C\(" | grep "*A)"');
} elseif ($argv[1] == 'freq') {
//$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_3\(" | grep "*Hz)"');
$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_F\(" | grep "*Hz)"');
} elseif ($argv[1] == 'cospi') {
//$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_4\(" | grep "*F)"');
$outstr = exec('cat /dev/shm/metern1.txt | egrep "^1_PF\(" | grep "*F)"');
} elseif ($argv[1] == 'cpu-temp') {
$outstr = exec('cat /sys/class/thermal/thermal_zone0/temp');
$outstr = $outstr/1000;
$outstr = "cpu($outstr*°C)";
} elseif ($argv[1] == 'pdc-temp-m') {
$url = 'http://192.168.1.99/json?tasknr=1';
$pagina = file_get_contents($url);
//grazie MegaMarco83 modifica nuovo EspEasy
$json_output = json_decode($pagina, true);
$val = $json_output['TaskValues'][0]['Value'];
$outstr = ("pdctm($val*°C)\n");
} elseif ($argv[1] == 'pdc-temp-r') {
$url = 'http://192.168.1.99/json?tasknr=2';
$pagina = file_get_contents($url);
$json_output = json_decode($pagina, true);
$val = $json_output['TaskValues'][0]['Value'];
$outstr = ("pdctr($val*°C)\n");
} elseif ($argv[1] == 'am2302t') {
$url = 'http://192.168.1.100/json?tasknr=2';
$pagina = file_get_contents($url);
$json_output = json_decode($pagina, true);
$val = $json_output['TaskValues'][0]['Value'];
$outstr = ("am2302t($val*°C)\n");
} elseif ($argv[1] == 'am2302u') {
$url = 'http://192.168.1.100/json?tasknr=2';
$pagina = file_get_contents($url);
$json_output = json_decode($pagina, true);
$val = $json_output['TaskValues'][1]['Value'];
$outstr = ("am2302u($val*%)\n");
// and so on ....
} else {
die("Usage: reqsdm (tensione|corrente|freq|cospi|cpu-temp)\n");
}
echo "$outstr";
?>
riavvio metern e gli indicatori si mettono a funzionare
poi copio anche gli script monitor_protocol.tar dentro /var/www/metern/scripts
do il comando pi@raspberrypi:/var/www/metern/scripts $ sudo tar -xvvf monitor_protocol.tar
assegno a www-data proprietario e gruppo con chown
pi@raspberrypi:/var/www/metern/scripts $ sudo chown -R www-data:www-data *
e poi non so se serve ma rendo anche eseguibili con chmod
apparentemente sembra funzionare tutto ma se vado in admin e stoppo metern mi rimane la scritta ON fino a che non mi sposto di schermata , la solita cosa se da off torno a ON , a parte questo difetto mi sembra funzionare tutto.
prima di fare tutte le modifiche questo freeze non c'era.poi altra cosa fermo metern do il comando sudo ./monitor mi crea il file correttamente in /dev/shm però se eseguo il verbose in realta ci sono degli errori ecco il comando ma non sempre vengono fuori dal convertitore rs485 usb al sdm120C ci sono 50 cm ma con sdm120c a sempre lavorato correttamente.
Codice: Seleziona tutto
pi@raspberrypi:/var/www/comapps $ sudo ./monitor -b
Input parameters: ./monitor -b
Config file: ./monitor.conf
Output file:
Output file opened
Config loaded
Initialization complete
2 section detected
MQTT setup complete: don't use MQTT
First communication device parameters successfully loaded
First communication device successfully initialized
One communication port detected
1 communication device successfully initialized
Communication device successful opened
Start reading sensor
Reading Sensor1 parameters from config
Sensor1 common parameters successful readed from config
Modbus context for Sensor1 successful set
Set slave address for Sensor1: 1
try to reading data from Sensor1
[01][04][00][00][00][02][71][CB]
Waiting for a confirmation...
ERROR Connection timed out: select
[01][04][00][00][00][02][71][CB]
Waiting for a confirmation...
ERROR Connection timed out: select
[01][04][00][00][00][02][71][CB]
Waiting for a confirmation...
ERROR Resource temporarily unavailable: read
ERROR modbus_read_input_registers (-1)
Address = 1, Reg = 18, nb = 2, res = -1
Error reading sensor 1
End reading sensor
First communication device successfully closed
Communication device successful closed
Ending operations
Config unloaded
Compdete.
pi@raspberrypi:/var/www/comapps $
ho fatto ulteriori prove e non mi sembra molto stabile avete provato a dare il comando con opzione -b?