Menu Close

Modifiche ed ottimizzazione EMONCMS

Piccolo promemoria per il futuro sull’installazione e la manutenzione di EmonCMS

 

Hi, i found  very difficult to make emoncms works on IIS 7.5 but now all work fine.

I converted the .htaccess file to web.config correctly, see below if anybody is interested or if you would add to the installation guide:

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="emoncms"  enabled="true" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                        <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

After this,  i discovered that the user was not created. The bug is located in :

Models/user_model.php

at line 111 into create_user function. we need to add admin field and value.

Before

db_query("INSERT INTO users ( username, password, salt ,apikey_read, apikey_write ) VALUES ( '$username' , '$hash' , '$salt', '$apikey_read', '$apikey_write' );");

After

db_query("INSERT INTO users ( username, password, salt ,apikey_read, apikey_write, admin ) VALUES ( '$username' , '$hash' , '$salt', '$apikey_read', '$apikey_write', 1 );");

 

another bug is located in the index.php at line 25. we need to delete this line

echo $ssl;

 

if you use ssl connection at the top of each page appears ‘on’… it’s annoying.

 

MODIFICA RANGE ESRAZIONE DATI SU GRAFICI:

Data la grande mole di dati, i grafici fanno fatica a visualizzare determinati intervalli temporali, per velocizzare quindi i grafici, ho modificato il file emoncmsModelsfeed_model.php nella funzione get_feed_data_indexed alla riga 210 come segue:

 // if (($end - $start) > (60*60*24) && $resolution>1)
if (($end - $start) > (60*60) && $resolution>1)

 

In questo modo la quantità di dati estratta viene limitata ai soli periodi temporali molto brevi (sotto l’ora).

 

Per il grafico specifico kWhdZoomer, per avere il dettaglio giornagliero è necessario modificare il file emoncmsViskWhdZoomerview.js intorno alla riga 62 dove viene effettuata la chiamata per avere i dati da visualizzare:

// vis_feed_data(apikey,power,start,end,1);
vis_feed_data(apikey,power,start,end,11);

Inizialmente veniva passato come paremetro di risoluzione “1”, ma dovendo andare a visualizzare tutti i valori registrati (uno ogni 5 secondi) il tempo impiegato per disegnare il grafico era più di 10 secondi.

Passando come valore invece 11, si ha la giusta risoluzione per una visualizzazione giornaliera.

 

Ho inoltre aggiunto ad ogni tabella feed_* un’indice in modo da velocizzare i tempi di risposta alle varie query.

 

SALVATAGGIO CONFIGURAZIONE:

mentre i feed e le dashboad sono salvate sul db MySql, è utile salvare i files:

emoncmsIncludessettings.php

emoncmsIncludesmail_settings.php

che contengono le configurazioni.

 

MODIFICA TEMA DELLE PAGINE:

I file che gestiscono il tema, compreso i css si trovano sotto:

emoncms/Views/theme/dark

 

CORREZIONE ORARIO TIMEZONE:

Per la visualizzazione real-time occorre modificare il file emoncmsVisflotjquery.flot.js intorno allar riga 1240 aggiungendo:

if (opts.localTimezone===true) {
    d = new Date(v - d.getTimezoneOffset() * 60 * 1000);
}
// first check global format
if (opts.timeformat != null)
   return $.plot.formatDate(d, opts.timeformat, opts.monthNames);

 

Mentre per la visualizzazione multigraph è necessario aggiungere al file emoncmsVismultigraph.php e a tutti gli altri che contengono ” xaxis: { mode: “time”, ” la seguente stringa:

xaxis: { mode: "time", localTimezone: true ,

 

Posted in Domotica e Cloud, News, Web Development

Leave a Reply

Your e-mail address will not be published. Required fields are marked *