Discussione:Thermo

Da raspibo.
Jump to navigation Jump to search

Ciao, io uso jessie e non riesco a far funzionare ne' il javascript della pagina home, ne i file in cgi-bin Potresti aiutarmi?

Ni`:
  • Posso pensare ad un problema di permessi dei files.
  • Nginx non si e` avviato.
index.html si "carica" ?
--Dave4rp (discussioni) 13:51, 8 mar 2016 (CET)


Forse l'inghippo potrebbe essere qua:
sudo cp -varp --parents etc/ /
i files di configurazione hanno un problema di permessi, per esempio nginx non si avvia ...
--Dave4rp (discussioni) 14:23, 8 mar 2016 (CET)

Posso essere più preciso

Dunque: 1. nginx parte 2. il javascript nella home.html non viene eseguito dal browser Midori di RaspberryPi

   ma viene eseguito da un browser su un client esterno (da PC)

3. non riesco ancora ad eseguire le pagine in cgi-bin perché dice 403 Forbidden e quindi sembrerebbe un problema di permessi

 ma ho controllato tutti i permessi nei file che ho modificato con una installazione di thermo funzionante installata su macchina virtuale con wheezy 
 ed ho rifatto anche l'installazione....

Non so cosa fare ora, io ho l'impressione che il problema sia fcgiwrap


Strano che fuzioni in virtuale e non sul Raspberry Pi, qualcosa di diverso c'e`, bisogna vedere "dove".

Una cosa che mi viene in mente e` "nginx", forse da wheezy a jessie hanno introdotto o modificato un parametro da mettere, togliere o modificare, nel file di configurazione (o in quello di fcgiwrap).

Trovi altri miei appunti qua: https://github.com/raspibo/Thermo/wiki (scritti prima di scrivere la pagina in questo wiki).

--Dave4rp (discussioni) 18:36, 8 mar 2016 (CET)

2016 03 09

Aggiornamenti alla guida

python3-redis

Bugs

Correzioni da testare

Ho provato velocemente in una nuova Raspbian ed in collegamento remoto (tunnel ssh), sembra funzionare. --Dave4rp (discussioni) 07:25, 9 mar 2016 (CET)

Testato configurazione sul thermo in funzione, sembra ok. --Dave4rp (discussioni) 07:44, 9 mar 2016 (CET)

Modifiche al file "/etc/nginx/sites-enabled/thermo" (solo linee modificate):

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }

Questo permetteva l'accesso al file delle password.


Correzione al file "/etc/nginx/fcgiwrap.conf" (praticamente l'ultima riga):

# Include this file on your nginx.conf to support debian cgi-bin scripts using
# fcgiwrap
location /cgi-bin/ {
  # Disable gzip (it makes scripts feel slower since they have to complete
  # before getting gzipped)
  gzip off;

  # Set the root to /usr/lib (inside this location this means that we are
  # giving access to the files under /usr/lib/cgi-bin)
  root  /var/www;

  # Fastcgi socket
  fastcgi_pass  unix:/var/run/fcgiwrap.socket;

  # Fastcgi parameters, include the standard ones
  include /etc/nginx/fastcgi_params;

  # Adjust non standard parameters (SCRIPT_FILENAME)
  #fastcgi_param SCRIPT_FILENAME  /usr/lib$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME  /var/www$fastcgi_script_name;
}

Questo probabilmente un bug esistente nelle precedenti versioni di nginx o fcgiwrap, perche` gli script funzionavano.

funziona!

il file fcgiwrap.conf ha in effetti un problema

inoltre ho l'impressione che i file in /var/www devono essere proprieta' di chi esegue il server nginx (cioe' www-data)

Si, vedi http://www.raspibo.org/wiki/index.php/Thermo#Configura_Thermo
--Dave4rp (discussioni) 09:58, 9 mar 2016 (CET)

mentre thermo.py dev'essere eseguito da root perche' accede in scrittura ai pin del GPIO

Si, ma questo me lo segno da guardare perche` le ultime versioni dovrebbero funzionare anche da user
comunque assegnando i permessi opportuni dovrebbe essere possibile, ma sono pigro ;)
--Dave4rp (discussioni) 09:58, 9 mar 2016 (CET)

allora forse ci saranno problemi a archiviare (fase cancellazione) del file temperature.csv

Non dovrebbero
--Dave4rp (discussioni) 09:58, 9 mar 2016 (CET)

Inoltre ho un problema:

il grafico delle temperature non mi si aggiorna, ecco cosa ho fatto ieri sera: ho archiviato il file delle temperature ed ho cancellato manualmente il file temperature.csv in /var/www dopo un po' di misure ho verificato che i valori venivano plottati sul grafico (avevo il grafico di circa 10 misure prese ogni minuto)... e stamattina sono ritornato a controllare ma sia il browser edge che IE mi mostrano il grafico che riporta il prot delle prime due ore (circa) di misure (intorno a 7000 valori) e poi basta!

C'e` un refresh "manuale" nella pagina web <meta http-equiv="refresh" content="300">, forse il tuo browser si "stanca" di aggiornare e blocca il caricamento della pagina dopo X minuti/ore.
Comunque un "reload" dovrebbe aggiornare.
--Dave4rp (discussioni) 10:04, 9 mar 2016 (CET)

Richiesta

Vorrei utilizzare un secondo sensore di temperatura che tramite WiFi comunichi al cronotermostato la temperatura che ho in camera da letto (ad esempio). Cosa suggerisci?

Sto` lavorando a qualcosa di simile .. PorTHable
Il problema sara` "leggere" ed inserire dati esterni (Thermo ad ora e` predisposto per solo sonde onewire e collegate a lui)
Ci devo pensare su ancora ...
--Dave4rp (discussioni) 10:11, 9 mar 2016 (CET)

Reload: naturalmente lo avevo gia' provato... non ho cancellato la cache ma il browser dovrebbe essere configurato in modo da non usarla.... --Fedele65 (discussioni) 10:24, 9 mar 2016 (CET)

E` in un frame, il browser potrebbe confondersi ed aggiornare solo il menu, prova anche sulla pagina diretta http://<host>/graph.html
--Dave4rp (discussioni) 11:17, 9 mar 2016 (CET)


Sensore portatile: fin'ora mi sono limitato a leggere le istruzioni e copiare, non ho esaminato il codice e lo faro' questo pomeriggio.... pero' dimmi:

thermo.py legge la temperatura prende le decisioni (accensione/spegnimento caldaia) e poi scrive i dati in temperature.csv, vero?

No
Sono due processi separati, perche` non e` detto tu abbia impostato aggiornamento grafico e controllo uscita con i medesimi tempi.
Io per esempio campiono la temperatura ogni 20 minuti, ma controllo l'uscita ogni 5
--Dave4rp (discussioni) 11:17, 9 mar 2016 (CET)

La mia idea sarebbe far leggere a thermo.py un file che contiene il valore di temperatura della sonda remota a questo punto sarebbe semplice implementare il processo di decisione sul cosa fare

Thermo e` stato predisposto per scegliere quale sonda usare come riferimento per il comando dell'uscita.
Al momento solo sonde onewire (come ho scritto sopra)
Si puo` forzare una seconda sonda andando a modificare direttamente il database redis, pero` si perde la funzionalita` della pagina "Configura sonde temperatura", che rileva ed aggiorna le sonde onewire collegate, che ho realizzato apposta per non stare a dover aggiungere/togliere sonde a mano quando le collego/scollego.
Comunque si puo` sempre "aggiungere" una nuova chiave in redis e darla in pasto allo script, ma come ho scritto, ci devo pensare.
--Dave4rp (discussioni) 11:17, 9 mar 2016 (CET)
Forse e` possibile "ingannarlo" aggiungendo i files di una sonda di temperatura onewire a mano
--Dave4rp (discussioni) 11:27, 9 mar 2016 (CET)