Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
comapps [2023/07/31 00:17] – [Com_daemon] waltercomapps [2026/06/20 15:33] (versione attuale) – [Com_daemon] walter
Linea 180: Linea 180:
  
 l'ultimo genera l'errore di nessuna opzione richiesta e visualizza le opzioni possibili. l'ultimo genera l'errore di nessuna opzione richiesta e visualizza le opzioni possibili.
- 
-Quando tutto funziona possiamo abilitare il programma in MeterN, per far ciò dobbiamo modificare un file di sistema (sistema di MeterN) in questo modo: 
- 
-<code> 
-cd /var/www/metern/config 
-nano allowed_comapps.php 
- 
-</code> 
- 
-alle voci esistenti aggiungere altre voci all'array dopo l'ultima esistente 
- 
-<code> 
-$ALLWDCMD[n] = 'poolshelly energy'; 
-$ALLWDCMD[n] = 'poolshelly power'; 
- 
-</code> 
- 
-la struttura è la seguente: 
- 
-  - [//n//] = il numero tra parentesi quadre deve essere un numero progressivo che segue quelle già presenti 
-  - poolshelly = link simbolico che richiama il nostro programma 
-  - energy = opzione da richiamare 
- 
-inserire tante voci quante sono le opzioni che vi serve richiamare 
  
 ---- ----
Linea 341: Linea 317:
 // No edit is needed // No edit is needed
  
-$help = "Usage: shelly_1 { energy | power | volt | ampere | cosphi | energy1 | power1 }\n";+$help = "Usage: shelly_3 { energy | power | volt | ampere | cosphi | energy1 | power1 }\n";
  
 if (!isset($argv[1])) { if (!isset($argv[1])) {
Linea 370: Linea 346:
  
 </code> </code>
-===== Com_daemon =====+ 
 + 
 +==== Com_daemon ====
  
 Adesso abbiamo i due programmi che che leggono i dati dal contattore e li trasmettono a meter su richiesta, dobbiamo però assicurarci che ad ogni avvio del sistema, o meglio, ad ogni avvio di MeterN si avvii anche il programma daemon_loop (il daemon lo avvia MeterN quando gli serve il dato). Adesso abbiamo i due programmi che che leggono i dati dal contattore e li trasmettono a meter su richiesta, dobbiamo però assicurarci che ad ogni avvio del sistema, o meglio, ad ogni avvio di MeterN si avvii anche il programma daemon_loop (il daemon lo avvia MeterN quando gli serve il dato).
Linea 431: Linea 409:
  
 </code> </code>
 +
 +come per il pooler rendiamo i files eseguibili dal sistema, per far questo eseguiamo i seguenti passaggi:
 +<code>
 +
 +sudo -s
 +cd /var/www/comapps
 +chown www-data:www-data shelly_3.php
 +chown www-data:www-data shelly_3_loop.php
 +chown www-data:www-data daemon/shelly_3_daemon.php
 +chmod a+x /var/www/comapps/shelly_3.php
 +chmod a+x /var/www/comapps/shelly_3_loop.php
 +chmod a+x /var/www/comapps/daemon/shelly_3_daemon.php
 +
 +</code>
 +
 +creiamo i link simbolici per poter richiamare i programmi
 +
 +<code>
 +ln -s /var/www/comapps/shelly_3.php /usr/bin/shelly_3
 +ln -s /var/www/comapps/shelly_3_loop.php /usr/bin/shelly_3_loop
 +ln -s /var/www/comapps/daemon/shelly_3_daemon.php /usr/bin/shelly_3_daemon
 +
 +</code>
 +
 +ora siamo pronti per testare il software creato prima di darlo in pasto a MeterN.
 +
 +Dalla shell, con riga di comando lanciare tutte le opzioni previste nel software per assicurarsi che diano il risultato voluto, se avete previsto la gestione degli errori, generateli, per assicurarvi che il software li gestisca correttamente, nell'esempio precedente:
 +
 +<code>
 +poolshelly energy
 +poolshelly energy1
 +poolshelly power
 +poolshelly power1
 +poolshelly
 +
 +</code>
 +
 +l'ultimo genera l'errore di nessuna opzione richiesta e visualizza le opzioni possibili.
 +
 +
 ====== Configurazione ComApps in MeterN ====== ====== Configurazione ComApps in MeterN ======
 +
 +Quando tutto funziona possiamo abilitare i vari programmi in MeterN, per far ciò dobbiamo modificare un file di sistema (sistema di MeterN) in questo modo:
 +
 +<code>
 +cd /var/www/metern/config
 +nano allowed_comapps.php
 +
 +</code>
 +
 +alle voci esistenti aggiungere altre voci all'array dopo l'ultima esistente
 +
 +<code>
 +$ALLWDCMD[n] = 'poolshelly energy';
 +$ALLWDCMD[n] = 'poolshelly power';
 +......
 +......
 +$ALLWDCMD[n] = 'shelly_3 energy';
 +$ALLWDCMD[n] = 'shelly_3 power';
 +$ALLWDCMD[n] = 'shelly_3 volt';
 +$ALLWDCMD[n] = 'shelly_3 ampere';
 +$ALLWDCMD[n] = 'shelly_3 cosphi';
 +......
 +......
 +$ALLWDCMD[n] = 'shelly_3_daemon start';
 +$ALLWDCMD[n] = 'shelly_3_daemon stop';
 +
 +</code>
 +
 +la struttura è la seguente:
 +
 +  - [//n//] = il numero tra parentesi quadre deve essere un numero progressivo che segue quelle già presenti
 +  - poolshelly = link simbolico che richiama il nostro programma
 +  - energy = opzione da richiamare
 +
 +inserire tante voci quante sono le opzioni che MeterN dovrà richiamare.
 +
 +Bene, ora che tutte le ComApps sono utilizzabili da MeterN ci occuppiamo di istruire MeterN ad avviare tutte le com_daemon ad ogni avvio, per far questo basta inserirle nel file di configurazione di MeterN che si chiama "config_daemon.php", procediamo come segue:
 +
 +<code>
 +cd /var/www/metern/config
 +nano config_daemon.php
 +
 +</code>
 +
 +si aprirà il file in modifica, se non è mai stato usato prima troveremo al suo interno due righe commentate che danno un esempio di come inserire il comando, nell'esempio sotto sono le righe 5 e 9.
 +
 +<code php [enable_line_numbers="true", start_line_numbers_at=""]>
 +
 +<?php
 +if(!defined('checkaccess')){die('Direct access not permitted');}
 +// Manage com. apps daemon as 'http' user if needed
 +if (is_null($PID)) { // Stop Daemon
 +        //$out = exec("com_daemon stop");
 +        $out0 = exec("shelly_3_daemon stop");
 +        $out1 = exec("solax_daemon stop");
 +} else { //Start
 +        //$out = exec("com_daemon start");
 +        $out0 = exec("shelly_3_daemon start");
 +        $out1 = exec("solax_daemon start");
 +}
 +?>
 +
 +
 +</code>
 +
 +come mostrato nell'esempio, dove si vuole far avviare due com_daemon, si dovranno inserire per ogni com_daemon una riga nella sezione "stop" e una nella sezione "start", nellesempio sono le rige 6 e 7 per lo stop e 10 e 11 per lo start