Problema modulazione resistenza boiler

Progetti domotici con il Raspberry .... con o senza il supporto di MeterN e 123Solar
western
Messaggi: 53
Iscritto il: 24/11/2016, 22:47

Re: Problema modulazione resistenza boiler

Messaggioda western » 01/08/2018, 20:07

Flane hai idea cosa possa essere?


Avatar utente
Flane
Messaggi: 2470
Iscritto il: 16/01/2016, 15:02

Re: Problema modulazione resistenza boiler

Messaggioda Flane » 12/08/2018, 9:27

Hai sicuramente commesso qualche errore di configurazione o di posizionamento del contatore nel tuo impianto.

Assumendo che i valori rilevati per la produzione e consumi siano corretti, posta il contenuto dei file di configurazione per prelievi, immissioni ed autoconsumo e boiler.
Li trovi in /var/www/metern/config
Se hai seguito la guida sono i file config_metX.php con x pari a 3,4,5 e 6.

Il valore totale di autoconsumo negativo mi lascia alquanto perplesso.
Sei sicuro di aver posizionato il contatore nel posto giusto e che misuri effettivamente i tuoi consumi, oppure lo hai messo vicino al contatore di scambio e stai misurando i prelievi dalla rete ?

western
Messaggi: 53
Iscritto il: 24/11/2016, 22:47

Re: Problema modulazione resistenza boiler

Messaggioda western » 12/08/2018, 12:13

Grazie, allora il problema c'è solo quando funziona il boiler, nel cruscotto i dati dei 3 contatori corrispondono perfettamente è solo nella casetta al centro in alto che il valore quando funziona il boiler è come se rilevasse il doppio del consumo.

Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}

// ### CONFIG FOR METER #1
   
$METNAME1="PRODUZIONE";
$TYPE1='Elect';
$PROD1=1;
$PHASE1=1;
$SKIPMONITORING1=false;
$ID1="1";
$COMMAND1="pool123s energy";
$UNIT1="Wh";
$PRECI1=0;
$PASSO1=0;   
$COLOR1='0A8F10';
$PRICE1=0.15;
$LID1="1";
$LIVEPOOL1=1;
$LIVECOMMAND1="pool123s power";
$LIVEUNIT1="W";
$EMAIL1="";
$POUKEY1='';
$RPITOK1='';
$WARNCONSOD1=15000;
$NORESPM1=false;

$cfgver=1502175480;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}

// ### CONFIG FOR METER #2
   
$METNAME2="CONSUMI";
$TYPE2='Elect';
$PROD2=2;
$PHASE2=1;
$SKIPMONITORING2=false;
$ID2="2";
$COMMAND2="poolerconsumi 2 energy ";
$UNIT2="Wh";
$PRECI2=0;
$PASSO2=0;   
$COLOR2='991C2F';
$PRICE2=0;
$LID2="2";
$LIVEPOOL2=1;
$LIVECOMMAND2="poolerconsumi 2 power";
$LIVEUNIT2="W";
$EMAIL2="";
$POUKEY2='';
$RPITOK2='';
$WARNCONSOD2=0;
$NORESPM2=false;

$cfgver=1502175480;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}

// ### CONFIG FOR METER #3
   
$METNAME3="PRELIEVI";
$TYPE3='Elect';
$PROD3=0;
$PHASE3=1;
$SKIPMONITORING3=false;
$ID3="3";
$COMMAND3="eflow whin ";
$UNIT3="Wh";
$PRECI3=0;
$PASSO3=0;   
$COLOR3='FF5AE7';
$PRICE3=0;
$LID3="3";
$LIVEPOOL3=1;
$LIVECOMMAND3="eflowlive whin ";
$LIVEUNIT3="W";
$EMAIL3="";
$POUKEY3='';
$RPITOK3='';
$WARNCONSOD3=0;
$NORESPM3=false;

$cfgver=1502175480;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}

// ### CONFIG FOR METER #4
   
$METNAME4="IMMISSIONI";
$TYPE4='Elect';
$PROD4=0;
$PHASE4=1;
$SKIPMONITORING4=false;
$ID4="4";
$COMMAND4="eflow whout ";
$UNIT4="Wh";
$PRECI4=0;
$PASSO4=0;   
$COLOR4='574FFF';
$PRICE4=0;
$LID4="4";
$LIVEPOOL4=1;
$LIVECOMMAND4="eflowlive whout ";
$LIVEUNIT4="W";
$EMAIL4="";
$POUKEY4='';
$RPITOK4='';
$WARNCONSOD4=0;
$NORESPM4=false;

$cfgver=1502175480;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}

// ### CONFIG FOR METER #5
   
$METNAME5="AUTOCONSUMO";
$TYPE5='Elect';
$PROD5=0;
$PHASE5=1;
$SKIPMONITORING5=false;
$ID5="5";
$COMMAND5="eflow selfc ";
$UNIT5="Wh";
$PRECI5=0;
$PASSO5=0;   
$COLOR5='F5FF27';
$PRICE5=0;
$LID5="5";
$LIVEPOOL5=1;
$LIVECOMMAND5="eflowlive selfc";
$LIVEUNIT5="W";
$EMAIL5="";
$POUKEY5='';
$RPITOK5='';
$WARNCONSOD5=0;
$NORESPM5=false;

$cfgver=1502175480;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}

// ### CONFIG FOR METER #6
   
$METNAME6="BOILER";
$TYPE6='Elect';
$PROD6=2;
$PHASE6=1;
$SKIPMONITORING6=false;
$ID6="6";
$COMMAND6="poolerconsumi 6 energy ";
$UNIT6="Wh";
$PRECI6=0;
$PASSO6=0;   
$COLOR6='FFFFFF';
$PRICE6=0;
$LID6="6";
$LIVEPOOL6=1;
$LIVECOMMAND6="poolerconsumi 6 power";
$LIVEUNIT6="W";
$EMAIL6="";
$POUKEY6='';
$RPITOK6='';
$WARNCONSOD6=0;
$NORESPM6=false;

$cfgver=1502175480;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}
// ### GENERAL
$NUMMETER=6;
$DELAY=1000;
$DISTRO='raspbian_ARM';
$LOGCOM=false;
$DEBUG=false;

// ### LOCALIZATION
$DTZ='Europe/Rome';
$LATITUDE=45.649;
$LONGITUDE=12.394;
$DATEFORMAT='d/m/Y';
$DPOINT=',';
$THSEP='.';
$CURS='€';

// ### WEB PAGE
$TITLE="Home energy monitor";
$SUBTITLE="« Analisi consumi e produzione elettrica »";
 
// ### CLEANUP
$KEEPDDAYS=0;
$AMOUNTLOG=256;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}
 
$GRAPHH=220;
$POWER_MIN=-3000;
$POWER_MAX=3000;
$GRAPH_MET1=1;
$LASTD_MET1=true;
$FILL_MET1=false;
$GRAPH_MET2=1;
$LASTD_MET2=false;
$FILL_MET2=false;
$GRAPH_MET3=1;
$LASTD_MET3=false;
$FILL_MET3=false;
$GRAPH_MET4=0;
$LASTD_MET4=false;
$FILL_MET4=false;
$GRAPH_MET5=0;
$LASTD_MET5=false;
$FILL_MET5=false;
$GRAPH_MET6=1;
$LASTD_MET6=false;
$FILL_MET6=false;

$cfgver=1506503500;
?>


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}

// ### CONFIG FOR INDICATOR(S)
$NUMIND=2;

$INDNAME1="TENSIONE";
$INDID1="2_1";
$INDPOOL1=1;
$INDCOMMAND1="reqsdm tensione";
$INDUNIT1="V";

$INDNAME2="COSPI";
$INDID2="2_4";
$INDPOOL2=1;
$INDCOMMAND2="reqsdm cospi";
$INDUNIT2="";
?>


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("pkill -f loadcheck > /dev/null 2>&1 &");   
} else { //Start
   exec("pooler485 2,6 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &");
   #exec("loadcheck > /dev/null 2>/dev/null &");
}
?>

western
Messaggi: 53
Iscritto il: 24/11/2016, 22:47

Re: Problema modulazione resistenza boiler

Messaggioda western » 15/08/2018, 17:22

Ciao, Flane sono 4 giorni che provo a cambiare collegamenti e configurazioni e non sono riuscito a combinare nulla.
Ho usato il boiler diretto senza pwm e con il contatore stesso problema, a proposito per errore avevo invertito i fili di linea
e dava un valore negativo sul sdm però nel cruscotto non si presentava il problema, ma non assorbiva energia.
Non resta come dici tu se ho sbagliato a collegare i contatori di prod e consumi, provo a fare un piccolo schema, di come ho
collegato i contatori prendilo comè di elettricità capisco poco.Ti ringrazio se mi fai sapere qualcosa ciao.

Immagine

Avatar utente
Flane
Messaggi: 2470
Iscritto il: 16/01/2016, 15:02

Re: Problema modulazione resistenza boiler

Messaggioda Flane » 17/08/2018, 8:30

Il collegamento dei contatori mi sembra a posto.
Non devi avere letture negative ne sui contatori ne su MeterN.

Per quanto riguarda il meter 6, cioè il boiler, perchè usi poolerconsumi e non reqsdm come ho indicato nella guida su github?

western
Messaggi: 53
Iscritto il: 24/11/2016, 22:47

Re: Problema modulazione resistenza boiler

Messaggioda western » 17/08/2018, 8:58

perchè ho collegato un contatore per aver il consumo esatto del boiler, o devo usare lo stesso reqsdm?

Avatar utente
Flane
Messaggi: 2470
Iscritto il: 16/01/2016, 15:02

Re: Problema modulazione resistenza boiler

Messaggioda Flane » 17/08/2018, 9:52

Ok, tu hai il contatore specifico per il boiler.
Vedo che sopra ti avevo già suggerito di crearti il file poolerboiler.php e non di utilizzare poolerconsumi.php

Comunque ti devi fare una copia del file poolerconsumi.php e chiamarlo poolerboiler.php.
Attenzione che permessi e proprietari siano gli stessi.

Crei il symlink al nuovo file con:

Codice: Seleziona tutto

ln -s /var/www/comapps/poolerboiler.php /usr/local/bin/poolerboiler


A questo punto per il boiler usi i comandi:

Codice: Seleziona tutto

poolerboiler 6 energy
poolerboiler 6 power


In teoria potrebbe anche funzionare con poolerconsumi ma non vorrei che fosse quello a creare casini.

Ti avevo poi anche chiesto se le letture del boiler nel file /dev/shm/metern6.txt sono corrette.....

western
Messaggi: 53
Iscritto il: 24/11/2016, 22:47

Re: Problema modulazione resistenza boiler

Messaggioda western » 17/08/2018, 14:41

questo è /var/www/comapps/poolerboiler.php

Codice: Seleziona tutto

#!/usr/bin/php
<?php
if (isset($_SERVER['REMOTE_ADDR'])) {
    die('Direct access not permitted');
}
// This script will output a meterN compatible format for the main command
// You'll need to setup the path to meterN ($pathtomn).
// ln -s /var/www/comapps/poolerboiler.php /usr/local/bin/poolerboiler
// Usage:  poolerboiler [MeterID] [energy | power]

// No edit is needed below
if (!isset($argv[1],$argv[2])) {
$argv[1]=null;
}

if ($argv[1]!= null && ($argv[2]== 'power' || $argv[2]== 'energy')) {
   
   $pathtomn = '/var/www/metern';
   $prevcount = 0; // Inserire qui il totale del contatore precedente
   $metnum = $argv[1]; // Meter ID Consumi

   $cmd = "more /dev/shm/metern$metnum.txt | egrep \"^$metnum\(\" | grep \"*Wh)\""; // Request Energy values
   $cmd1 = "more /dev/shm/metern$metnum.txt | egrep \"^$metnum\(\" | grep \"*W)\""; // Request Power values
    #echo "$cmd\n";
    #echo "$cmd1\n";

   // End of setup

   define('checkaccess', TRUE);
   include("$pathtomn/config/config_main.php");
   include("$pathtomn/config/config_met$metnum.php");
   
    if ($argv[2]== 'energy') {
        // acquisisce il valore precedente dal csv
        $dir    = '/var/www/metern/data/csv';
        $output = array();
        $output = glob($dir . '/*.csv');
        sort($output);
        $cnt = count($output);
           
        if (file_exists($output[$cnt - 1])) {
            $file       = file($output[$cnt - 1]); // today
            $contalines = count($file);

            if ($contalines > 1) {
                $prevarray = preg_split("/,/", $file[$contalines - 1]);
               
            } elseif ($contalines == 1 && file_exists($output[$cnt - 2])) { // yesterday, only header
                $file       = file($output[$cnt - 2]);
                $contalines = count($file);
                $prevarray = preg_split("/,/", $file[$contalines - 1]);
            }
            $cons_val_first = trim($prevarray[$metnum]);
        } else {
            $cons_val_first = null;
        }     

        #sleep(1); // oh why ?
        // Now retrieve the current value
        $datareturn = shell_exec($cmd);
        $datareturn = trim($datareturn);
        $datareturn = preg_replace("/^${'ID'.$metnum}\(/i", '', $datareturn); // VALUE*UNIT)
        $lastval    = preg_replace("/\*[a-z0-9]+\)$/i", '', $datareturn); // VALUE
        #echo "$lastval\n";

        settype($lastval, 'float');
        settype($prevcount, 'float');
        settype($cons_val_first, 'float');

        $lastval += $prevcount; // aggiunge il correttore del totale

        if ($lastval < $cons_val_first) { // controlla se il contatore segna meno del valore precedente
            $lastval = $cons_val_first;
        }
        $lastval = round($lastval, ${'PRECI' . $metnum});
        $str     = utf8_decode("${'ID'.$metnum}($lastval*${'UNIT'.$metnum})\n");
        file_put_contents("/dev/shm/consumi$metnum.txt", $str);
        echo "$str";
   
    }elseif ($argv[2]== 'power') {
        #sleep(1); // oh why ?
        // Now retrieve the current value
        $datareturn = shell_exec($cmd1);
        $datareturn = trim($datareturn);
        $datareturn = preg_replace("/^${'ID'.$metnum}\(/i", '', $datareturn); // VALUE*UNIT)
        $powerval   = preg_replace("/\*[a-z0-9]+\)$/i", '', $datareturn); // VALUE
        #echo "$powerval\n";

        settype($powerval, 'float');

        $powerval = round($powerval, 0);
        $str     = utf8_decode("${'ID'.$metnum}($powerval*${'LIVEUNIT'.$metnum})\n");
        echo "$str";
    }
   
} else {
    die("Usage: poolerboiler {MeterID} {energy | power}\n");
}
?>


symlink su /usr/local/bin/poolerboiler è presente.

letture su /dev/shm/metern6.txt sono corrette

Grazie ancora, non so se bisogna cambiare qualcosa sul file poolerboiler, fatto con la copia di poolerconsumi.
Mi sono accorto che su file /dev/shm/boiler.txt ha come propritario root invece gli altri sono www-data, va bene cosi?
Ti ringrazio ancora e ciao.

Avatar utente
Flane
Messaggi: 2470
Iscritto il: 16/01/2016, 15:02

Re: Problema modulazione resistenza boiler

Messaggioda Flane » 17/08/2018, 14:50

Va bene così.

Non ho capito se ora il problema che avevi è sparito o meno ....

PS: quando incolli del codice usa i tag codice della barra, fino ad ora ho coretto io

western
Messaggi: 53
Iscritto il: 24/11/2016, 22:47

Re: Problema modulazione resistenza boiler

Messaggioda western » 17/08/2018, 14:55

no ancora da risolvere


Torna a “Domotica”

Chi c’è in linea

Visitano il forum: Nessuno e 24 ospiti