View Full Version : raspberry e lettura registri
sto pilotando la mia domotica con minimalmodbus.
sto usando degli script in python per leggere e scrivere i registri.
funzionano perfettamente collegati a pagine internet..
quello che voglio fare è che nella pagina internet mi aggiorni ogni 2 secondi le letture dei registri.
cosa si potrebbe fare?
usare un java per aggiornare le pagine.. oppure creare un demone in pyton?
Prova con un micro web server, tipo flask .
Se cerchi ci sono 2/3 micro framework carini per pagine dinamiche con micro web server incorporato, tipo flask / bottle / pyramid da far girare su gunicorn con un impatto di risorse minimo.
antenore
07-05-2014, 12:25
Se hai la pagina internet scritta in html/php esiste la funzione per fare il refresh ogni n secondi....
si la pagina è in php..
il fatto è che magari se sto navigando nella pagine e questo continua refresharmi la pagina… non è bello
no?
è una pagina immagina con tanti pulsanti per le lampade
quindi verde se è accesa e rossa se è spenta.
vorrei tenere questi pulsanti aggiornati
Ma non avevi detto che lavoravi in python?
Cosa fai, fai girare un intero webserver con php per una pagina su un device embedded? ...
- https://www.google.it/search?client=opera&q=asynchronous+networking+library&sourceid=opera&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=CphqU-r_HMWO8Qe05IDwCw#newwindow=1&q=asynchronous+webserver+python
devo lanciare un file.py
sono riuscito a farlo con una pagina .php
ma vorrei farlo senza refresh e in trasparenza con jscript
il pulsante in html
<form action="file.php" method="get">
<input type="submit" value="luce" id="luce" style="height:23px;width:150px"/><br>
</form>
il file "file.php"
<?php
$param1 = '400'; #numero registro
$param2 = '1'; #bit della word in questo caso %MX400.1
$command= "python scrivi.py"; #nome del file python che scrivera' sul modbus
$command .= " $param1 $param2 2>&1"; #crei la stringa da passare al python
$pid = popen( $command,"r"); #passa la stringa al python
pclose($pid); #chiude il processo...credo
passthru("cat /var/www/pagina.html"); #ritorna alla pagina iniziale da cui hai schiacciato il bottone
?>
come si può fare in un modo migliore??
non capisco il motivo…
il file python non mi viene lanciato da php
se lo eseguo a mano sul terminale funziona
invece con il file php non funziona..
come mai?
forse ci vuole qualche permesso?
$command= "python scrivi.py"; #nome del file python che scrivera' sul modbus
...di sicuro qua bisogna che ci metti il path assoluto per l'interprete python.
ok stasera provo.
intanto,
allora inquadro brevemnte la situzione con un esempio di pagina web
ho un server debian web collegato alla domotica di casa.
la pagina web in questione ha 5 link con 5 icone affianco che indicano se è accesa o spenta
LUCE SALA (icona)
LUCE INGRESSO (icona)
LUCE CUCINA (icona)
LUCE STANZA (icona)
allora ho 2 script.. uno scrive i registri con python, e l'altro che li legge
però sulla pagina web li voglio vedere sempre aggiornati.. quindi chiedo a voi qual'è la strada migliore
1) creare un python che legge ogni 2 secondi e scrive in un DB i registri, poi nella pagina web fare in modo che ogni secondo il java controlli il DB e aggiorni le icone.
2) non fare il database e ogni 2 secondi il java lancia il python che legge i dati e aggiorna la pagina
che fare??
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.