Re: [Python] suggerimenti applicazione python

2020-04-02 Per discussione Daniele Tricoli
Ciao Andrea,

On Thu, Apr 02, 2020 at 06:12:58PM +0200, Andrea D'alessandro wrote:
> Bella la tua soluzione ma i sensori comunicano via mail, e non c'e' verso
> di cambiare cio'

Ok!

> Per quanto riguardo i database a grafo devo studiare perche' non sapevo
> neanche che esistevano fino a quando non e' arrivata la tua mail.

Prendi quello che segue come suggerimento, in realtà come avrai capito ci sono
molteplici soluzioni altrettanto valide, che ti permettono di spaziare e
studiare tutto quello che più ti aggrada. Inoltre ciascuno ha il proprio stack
tecnologico ben rodato e di cui conosce i minimi dettagli.

Pure io ti suggerisco un database specifico per i dati: quelle con cui hai a
che fare sono serie temporali, per cui la base di dati che userei io è un
TSDB (time series database).
L'ultima volta che in questa lista ho indicato semplicemente una lista di tool,
mi è stato giustamente fatto notare (con un volo un po' pindarico), che non è 
di grossa utilità una lista di cose che non conosce per chi deve già affrontare
un problema, ed è effettivamente vero! Per cui quello che segue e un
suggerimento che va più nel dettaglio. :)

Quindi ti direi di usare InfluxDB[¹] poiché pensato anche per l'IoT, e puoi
tranquillamente farne il deploy su un raspberry pi.

La parte web, come ti dicevo, non la scriverei proprio perché mi limiterei a
usare Grafana[²].
Trovi qui un esempio di dashboard per farti un'idea del risultato che puoi
ottenere qui: https://play.grafana.org/

Quello che ti rimarrebbe da scrivere è la parte dell'inserimento dei dati in
InfluxDB.
A seconda che tu voglia o meno interfacciarti col database, potresti
addirittura demandare l'inserimento in InfluxDB ad un terzo tool:
Telegraf[³]. Quest'ultimo è semplicemente un tool per collezionare metriche da
diverse fonti, processarle e riscriverle nel formato richiesto dalla
destinazione (oltre InfluxDB supporta anche altri database).

Nel tuo caso ti permetterebbe di evitare del tutto di dover vedere come
scrivere i dati su InfluxDB, ti basterebbe estrarre dalle email le due serie
temporali e scrivere un singolo file di log (con 2 topic) o due file di log da
dare in pasto a telegraf. Quest'ultimo li scriverebbe in InfluxDB e ti
basterebbe poi fruirli con Grafana.

Quindi, ricapitolando, avresti  l'architettura che segue:

+--+   +--+   +--+   +-+
|  |   |  |   |  |   | |
| mail +-->+ Telegraf +-->+ InfluxDB +-->+ Grafana |
|  |   |  |   |  |   | |
+--+   +--+   +--+   +-+

Dove il blocco "mail" rappresenta il tuo tool/demone per prendere i dati e
scrivere il/i log da dare in pasto a telegraf.
Questo dovrebbe prendere le email coi tuoi dati, per esempio, nel caso in cui
tu stia usando IMAP dovresti usare il modulo imaplib[⁴] ed estrare poi gli
allegati col modulo email[⁵].
Nel caso in cui tu volessi scrivere direttamente su InfluxDB per eliminare
telegraf, puoi usare: https://github.com/influxdata/influxdb-python

Il tutto gira tranquillamente in un raspberry pi. Il vantaggio di questa
soluzione è che hai meno codice da mantenere, ma se il tuo è un progetto di
studio su come realizzare una soluzione del genere, certo 3 blocchi su 4 te
li ritrovi pronti e si tratterebbe di studiare solo come si usano.

Vedi un po' tu, tutto dipende da cosa vuoi studiare, quanto tempo hai a
disposizione, ecc...

Per completezza, scritto in Python, ci sarebbe Graphite[⁶] che ti realizza nel
diagramma che ho disegnato sopra i blocchi da telegraf a grafana, ma non l'ho
mai usato.

Chiudo con un articolo da cui potresti trarre spunto, nel caso decidessi di
seguire questa strada:
https://www.influxdata.com/blog/how-to-use-grafana-with-influxdb-to-monitor-time-series-data/

Ciao,

[¹] https://en.wikipedia.org/wiki/InfluxDB
https://www.influxdata.com/products/influxdb-overview/
[²] https://en.wikipedia.org/wiki/Grafana
https://grafana.com/
[³] https://www.influxdata.com/time-series-platform/telegraf/
[⁴] https://docs.python.org/3/library/imaplib.html
[⁵] https://docs.python.org/3/library/email.html
[⁶] https://en.wikipedia.org/wiki/Graphite_(software)

P.S. Però evita MongoDB, davvero! :)

-- 
  Daniele Tricoli 'eriol'
  https://mornie.org


signature.asc
Description: PGP signature
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] suggerimenti applicazione python

2020-04-02 Per discussione Giorgio Zoppi
El jue., 2 abr. 2020 18:13, Andrea D'alessandro 
escribió:

> Ciao Giorgio,
> Bella la tua soluzione ma i sensori comunicano via mail, e non c'e' verso
> di cambiare cio'.
>
Via mail?

> ...
> Per quanto riguardo i database a grafo devo studiare perche' non sapevo
> neanche che esistevano fino a quando non e' arrivata la tua mail
>
RedisGraph

> Andrea
>
> Il giorno gio 2 apr 2020 alle ore 17:44 Giorgio Zoppi <
> giorgio.zo...@gmail.com> ha scritto:
>
>> Ciao,
>> io userei react.js a lato cliente e a lato server flask con una api e dai
>> sensori una websocket. Io useri un database a grafo.
>> Saluti,
>> Giorgio.
>>
>> El jue., 2 abr. 2020 a las 17:20, Andrea D'alessandro (<
>> andrea.dalessan...@ingv.it>) escribió:
>>
>>> Salve a tutti,
>>> Avrei bisogno di qualche suggerimento.
>>> Ho dei sensori installati in alcuni pozzi che ogni giorno inviano una
>>> mail con i dati in allegato.
>>> Sono 2 file, in uno si trova data, ora, pressione, temperatura, e
>>> conducibilità dell' acqua, ed in un altro data ora pressione e temperatura
>>> del sensore che si trova all esterno del pozzo.
>>> Volevo fare un applicazione che si scarica gli allegati, si prende i
>>> dati, li mette su un database e consentire la visualizzazione di grafici
>>> via web.
>>> Programmo in python sostanzialmente per raspberry e di competenze sulla
>>> programmazione web ne ho poche.
>>> Se qualcuno avesse suggerimenti e mi indicasse una via, in modo da non
>>> farmi andare a ficcare in un vicolo cieco gli sarei veramente grato.
>>> Volevo provare mongoDB come database e Django come framework, ma credo
>>> che per questo tipo di dati sia meglio un db sql.
>>>
>>>
>>> Saluti
>>> Andrea
>>> ___
>>> Python mailing list
>>> Python@lists.python.it
>>> https://lists.python.it/mailman/listinfo/python
>>>
>>
>>
>> --
>> Life is a chess game - Anonymous.
>> ___
>> Python mailing list
>> Python@lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] suggerimenti applicazione python

2020-04-02 Per discussione Marco Beri
On Thu, Apr 2, 2020 at 5:56 PM Andrea D'alessandro <
andrea.dalessan...@ingv.it> wrote:

> Grazie Marco,
> adesso scarico postgres e gli do un occhiata.
> Come modulo per dialogare utilizzo psycopg2?
>

Yes! :-)
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] suggerimenti applicazione python

2020-04-02 Per discussione Andrea D'alessandro
Ciao Giorgio,
Bella la tua soluzione ma i sensori comunicano via mail, e non c'e' verso
di cambiare cio'
Per quanto riguardo i database a grafo devo studiare perche' non sapevo
neanche che esistevano fino a quando non e' arrivata la tua mail.
Saluti
Andrea

Il giorno gio 2 apr 2020 alle ore 17:44 Giorgio Zoppi <
giorgio.zo...@gmail.com> ha scritto:

> Ciao,
> io userei react.js a lato cliente e a lato server flask con una api e dai
> sensori una websocket. Io useri un database a grafo.
> Saluti,
> Giorgio.
>
> El jue., 2 abr. 2020 a las 17:20, Andrea D'alessandro (<
> andrea.dalessan...@ingv.it>) escribió:
>
>> Salve a tutti,
>> Avrei bisogno di qualche suggerimento.
>> Ho dei sensori installati in alcuni pozzi che ogni giorno inviano una
>> mail con i dati in allegato.
>> Sono 2 file, in uno si trova data, ora, pressione, temperatura, e
>> conducibilità dell' acqua, ed in un altro data ora pressione e temperatura
>> del sensore che si trova all esterno del pozzo.
>> Volevo fare un applicazione che si scarica gli allegati, si prende i
>> dati, li mette su un database e consentire la visualizzazione di grafici
>> via web.
>> Programmo in python sostanzialmente per raspberry e di competenze sulla
>> programmazione web ne ho poche.
>> Se qualcuno avesse suggerimenti e mi indicasse una via, in modo da non
>> farmi andare a ficcare in un vicolo cieco gli sarei veramente grato.
>> Volevo provare mongoDB come database e Django come framework, ma credo
>> che per questo tipo di dati sia meglio un db sql.
>>
>>
>> Saluti
>> Andrea
>> ___
>> Python mailing list
>> Python@lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>
>
>
> --
> Life is a chess game - Anonymous.
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] suggerimenti applicazione python

2020-04-02 Per discussione Andrea D'alessandro
Grazie Marco,
adesso scarico postgres e gli do un occhiata.
Come modulo per dialogare utilizzo psycopg2?




Il giorno gio 2 apr 2020 alle ore 17:34 Marco Beri  ha
scritto:

> On Thu, Apr 2, 2020 at 5:21 PM Andrea D'alessandro <
> andrea.dalessan...@ingv.it> wrote:
>
>> Volevo provare mongoDB come database e Django come framework, ma credo
>> che per questo tipo di dati sia meglio un db sql.
>>
>
> Unico consiglio: dimenticati mongoDB.
>
> Postgresql tutta la vita. Sempre.
>
> Ciao.
> Marco.
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] suggerimenti applicazione python

2020-04-02 Per discussione Giorgio Zoppi
Ciao,
io userei react.js a lato cliente e a lato server flask con una api e dai
sensori una websocket. Io useri un database a grafo.
Saluti,
Giorgio.

El jue., 2 abr. 2020 a las 17:20, Andrea D'alessandro (<
andrea.dalessan...@ingv.it>) escribió:

> Salve a tutti,
> Avrei bisogno di qualche suggerimento.
> Ho dei sensori installati in alcuni pozzi che ogni giorno inviano una mail
> con i dati in allegato.
> Sono 2 file, in uno si trova data, ora, pressione, temperatura, e
> conducibilità dell' acqua, ed in un altro data ora pressione e temperatura
> del sensore che si trova all esterno del pozzo.
> Volevo fare un applicazione che si scarica gli allegati, si prende i dati,
> li mette su un database e consentire la visualizzazione di grafici via web.
> Programmo in python sostanzialmente per raspberry e di competenze sulla
> programmazione web ne ho poche.
> Se qualcuno avesse suggerimenti e mi indicasse una via, in modo da non
> farmi andare a ficcare in un vicolo cieco gli sarei veramente grato.
> Volevo provare mongoDB come database e Django come framework, ma credo che
> per questo tipo di dati sia meglio un db sql.
>
>
> Saluti
> Andrea
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 
Life is a chess game - Anonymous.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] suggerimenti applicazione python

2020-04-02 Per discussione Marco Beri
On Thu, Apr 2, 2020 at 5:21 PM Andrea D'alessandro <
andrea.dalessan...@ingv.it> wrote:

> Volevo provare mongoDB come database e Django come framework, ma credo che
> per questo tipo di dati sia meglio un db sql.
>

Unico consiglio: dimenticati mongoDB.

Postgresql tutta la vita. Sempre.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] suggerimenti applicazione python

2020-04-02 Per discussione Andrea D'alessandro
Salve a tutti,
Avrei bisogno di qualche suggerimento.
Ho dei sensori installati in alcuni pozzi che ogni giorno inviano una mail
con i dati in allegato.
Sono 2 file, in uno si trova data, ora, pressione, temperatura, e
conducibilità dell' acqua, ed in un altro data ora pressione e temperatura
del sensore che si trova all esterno del pozzo.
Volevo fare un applicazione che si scarica gli allegati, si prende i dati,
li mette su un database e consentire la visualizzazione di grafici via web.
Programmo in python sostanzialmente per raspberry e di competenze sulla
programmazione web ne ho poche.
Se qualcuno avesse suggerimenti e mi indicasse una via, in modo da non
farmi andare a ficcare in un vicolo cieco gli sarei veramente grato.
Volevo provare mongoDB come database e Django come framework, ma credo che
per questo tipo di dati sia meglio un db sql.


Saluti
Andrea
Data file for DataLogger.
==
COMPANY :
COMP. STATUS: Do
DATE: 01-04-2020
TIME: 06:02:03
FILENAME: T4796_VEI_T4796_202003310600_till_202004010500.MON
CREATED BY  : SWS Wallmount modem 35821635 HW 2 SW R2.1S
==BEGINNING OF DATA =""
[Logger settings]
  Instrument type =CTD-Diver=17
  Status  =Started =0
  Serial number   =..15-T4796  317.
  Instrument number   =
  =0
  Location=VEI_T4796   
  Sample period   =M60
  Sample method   =T   
  Number of channels  =3
[Channel 1]
  Identification  =PRESSURE
  Reference level =400.0 cmH2O 
  Range   =1750.0cmH2O 
  Master level=0.0   cmH2O 
  Altitude=0 m 
[Channel 2]
  Identification  =TEMPERATURE
  Reference level =-20.00°C
  Range   =100.00°C


[Channel 3]
  Identification  =2:Spec.cond.
  Reference level =0.00  mS/cm 
  Range   =120.00mS/cm 


[Series settings]
  Serial number   =..19-T4796  317.
  Instrument number   =
  Location=VEI_T4796   
  Sample period   =00 01:00:00 0
  Sample method   =T   
  Start date / time   =00:00:06 31/03/20 
  End date / time =00:00:05 01/04/20 
[Channel 1 from header]
  Identification  =PRESSURE
  Reference level =400.0 cmH2O 
  Range   =1750.0cmH2O 
  Master level=0.0   cmH2O 
  Altitude=400.0 m 
[Channel 2 from header]
  Identification  =TEMPERATURE
  Reference level =-20.00°C
  Range   =100.00°C


[Channel 3 from header]
  Identification  =2:Spec.cond.
  Reference level =0.00  mS/cm 
  Range   =120.00mS/cm 


[Data]
24
2020/03/31 06:00:00.0   1406.2   26.562.86
2020/03/31 07:00:00.0   1406.5   26.562.68
2020/03/31 08:00:00.0   1406.8   26.572.40
2020/03/31 09:00:00.0   1407.1   26.592.70
2020/03/31 10:00:00.0   1407.3   26.552.38
2020/03/31 11:00:00.0   1407.2   26.562.24
2020/03/31 12:00:00.0   1406.7   26.542.58
2020/03/31 13:00:00.0   1406.7   26.572.96
2020/03/31 14:00:00.0   1406.4   26.572.92
2020/03/31 15:00:00.0   1406.2   26.582.84
2020/03/31 16:00:00.0   1406.4   26.572.57
2020/03/31 17:00:00.0   1406.2   26.562.34
2020/03/31 18:00:00.0   1406.5   26.562.55
2020/03/31 19:00:00.0   1407.0   26.562.53
2020/03/31 20:00:00.0   1407.0   26.582.32
2020/03/31 21:00:00.0   1407.2   26.582.86
2020/03/31 22:00:00.0   1407.3   26.572.66
2020/03/31 23:00:00.0   1407.1   26.572.52
2020/04/01 00:00:00.0   1408.1   26.562.21
2020/04/01 01:00:00.0   1415.4   26.562.91
2020/04/01 02:00:00.0   1420.0   26.592.84
2020/04/01 03:00:00.0   1418.4   26.542.60
2020/04/01 04:00:00.0   1415.0   26.562.57
2020/04/01 05:00:00.0   1412.8   26.592.79
END OF DATA FILE OF DATALOGGER FOR WINDOWSData file for DataLogger.
==
COMPANY :
COMP. STATUS: Not appl.
DATE: 01-04-2020
TIME: 06:02:03
FILENAME: 00192_Eijkelkamp_Giesbeek_202003310700_till_202004010601.MON
CREATED BY  : SWS Wallmount modem 35821635 HW 2 SW R2.1S
==BEGINNING OF DATA =""
[Logger settings]
  Instrument type =e+_2_Chn