Questo forum utilizza i cookies
Questo forum fa uso di cookie per migliorare l'esperienza utente. I cookie sono piccoli file di testo memorizzati sul tuo browser. I cookie impostati dal forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza, vengono utilizzati unicamente per memorizzare le tue preferenze. Navigando sul sito accetti che RaspberryItaly installi i cookie sul tuo browser.
Per maggiori informazioni consulta l'informativa sui Cookie di RasberryItaly

Un cookie verra memorizzato nel browser indipendentemente dalla scelta per evitare che questa domanda ti venga posta di nuovo. Sarai in grado di modificare le impostazioni dei cookie in qualsiasi momento utilizzando il link nel footer.
  • Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
a da pi digi raspberry quot devicecloud

[Problema] Da "DeviceCloud-Digi" a Raspberry pi
#1
Ciao a tutti,

Sono nuovo nel forum e più in generale nel mondo di Raspberry Pi. 
Sto realizzando una rete sensoriale, e vorrei avere il vostro supporto per un problema riscontrato.

Prima di porvi qualsiasi quesito vi illustro la situazione:

Tramite una rete Xbee fornita dalla Digi avente come coordinatore la Connect Port X4, acquisisco dati da una serie di sensori "XBEE Digi Sensors adapter L/T/H", che visualizzo su una piattaforma web, la "Digi Device Cloud".

Quindi ho i dati in cloud, ma non posso scaricarli o elaborarli, solo vederli.

Da qui la volontà di passarli ad un altra piattaforma, in particolare a Raspberry, per poterli elaborare.
Sono in possesso di una Raspberry Pi2 model B+, con OS Raspbian Jessie.

Ed ecco il problema: come posso passare i dati a Raspberry??

Nello specifico:

> E' possibile "interrogare"  una piattaforma web per ricevere i dati da essa o "leggerli " direttamente con Raspberry ?
> Su google, molti parlano di Thingspeak (o applicazioni simili) per fare questo. E' la strada giusta?

Spero di essere stato abbastanza chiaro nell'esporre la situazione.

Confidando nel vostro aiuto,
Vito
Risposta
#2
Thingspeak (o simili) sono servizi web come quello che usi tu, ma che oltre a farti vedere i dati, ti permettono di elaborati in cloud o scaricarli. Sei assolutamente sicuro che tu possa silo vederli in tempo reale? Mi sembra assai limitante.
Se non vuoi cambiare piattaforma web, si può sempre fare "alla tedesca" : RaspberryPi può interrogare la pagina ogni tot secondi, leggere i dati presentati, e poi elaborati come vuoi (scraping).
Il primo programma che ho scritto in Python, faceva proprio quello (prendeva i dati dalla pagina web locale di un inverter per fotovoltaico) quindi non dovrebbe essere così complicato.
Risposta
#3
Grazie del supporto,

l'idea di leggere i dati tramite python (dalla pagina web) mi sembra la soluzione migliore.
Potresti darmi qualche dritta? Girarmi una guida o qualcosa del genere?

Saluti,
Vito

P.S. Anche uno spezzone del tuo codice sarebbe di aiuto.
Risposta
#4
E' complicato darti indicazioni senza conoscere come funziona il sistema che hai in essere.
I dati sono aggiornati ogni quanto? La pagina si aggiorna automaticamente?
Prova a salvare il sorgente della pagina e a allegarlo qui, sperando non sia fatto con tecnologie troppo esoteriche..

qui una prima bozza del programmino citato, ma tutto dipende da come è strutturata la pagina da leggere
Codice:
Si collega alla pagina web dell' inverter e prende i dati
# ogni tot secondi e li scrive in un file csv
# Vers 0.3 : ciclo e gestione erroi

import urllib2,re,datetime,time # importo le librerie

# url = '192.168.0.191'                             # indirizzo da interrogare
file = "192.168.0.191.htm"                          # file locale da lavorare
intervallo = 3                                    # intervallo di tempo, in secondi
giorno = datetime.date.today().strftime( "%d%m%Y" )

#cilco
while giorno == datetime.date.today().strftime("%d%m%Y"):

    try:                                                    # Prova a..
        #carica url
        # f = urllib2.urlopen(url)          # abilitare questa riga per il sito
        f = open(file,"r")                  # abilitare questa riga per il file
        sito = f.read()
        f.close()


        # cerca le stringhe
        m = re.findall(r'[\d\.]+\s\w(?=" type="text")',sito) # CREA UNA LISTA!
        mm = re.findall(r'(?<=value=")[\d\.]+',sito)
        Etot = re.findall('..........(?<=KWh)',sito)

        # le RE sono tutte da sistemare :-) sono fatte proprio male!
        # ottimizzazioni da fare: compilare le RE
        # sostituire i . con , tramite le RE

        t = datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S")


        # Scrive un file.
        out_file = open("giorno" + giorno +".csv","a") # apre file.csv Append
        out_file.write(t + ";")                     # scrive data e ora e ;
        out_file.write(m[0] + ";")                  # scrive GRID VOLTAGE
        out_file.write(m[3] + ";")                  # scrive PHOTOVOLTAIC CURRENT
        out_file.write(m[4] + ";")                  # scrive Power
        out_file.write(m[7] + ";")                  # scrive Current
        out_file.write(m[10] + ";")                 # scrive PV1 Voltage
        out_file.write(mm[0] + ";")                 # scrive Temperature
        out_file.write(Etot[0] + "\n")              # scrive Energy total e va a capo
        out_file.close()                            # chiude il file

    except:                                         # se il "Prova a" non funziona, allora..
        continue                                    # intercetta gli errori e dice di continuare comunque

    time.sleep(intervallo)

#qui il resto del programma (mandare il file via email ad esempio)
Risposta
#5
Grazie,

Spero che queste info possano aiutarti (e aiutarmi):

La pagina web su cui leggo i dai necessita di una fase di autenticazione iniziale (username e password), di cui sono in possesso.

La struttura della pagina da cui "prendere" i dati è mostrata nel video:
Device Cloud Query


L'aggiornamento della pagina avviene ogni volta che viene interrogata.

Grazie ancora per il supporto,
Vito
Risposta
#6
Il filmato aiuta poco.
Esiste una pagina in cui hai i valori numerci che ti servono?
Se si, salvarne l'html e postalo.
In sostanza python deve prendere il tuo in una sorta di macro : carica la pagina, copia i valori che oi servono, scrivili in un file.
L'autenticazione potrebbe essere un problema, dipende come è fatta.
Risposta
#7
[attachment=520][attachment=520]Si infatti credo sia la fase di autenticazione il problema principale.

Url è il seguente:http://devicecloud.digi.com/ws/DataStrea...nsor_5.xml (dove lth_sensor_5 è il nome del sensore interrogato)

Compare come la tendina:
https://ibb.co/jJmUT7

dopo aver inserito : id e password

la pagina che compare ,in cui sono mostrati i valori numerici di interesse, è la seguente:

Codice:
[/font][/color][/size]
[size=small][color=#333333][font=Arial]This XML file does not appear to have any style information associated with it. The document tree is shown below.[/font][/color][/size]
[size=small][color=#333333][font=Arial]<result>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<resultSize>4</resultSize>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<requestedSize>1000</requestedSize>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<pageCursor>b18ad5ec-4-983a3988</pageCursor>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<cstId>21009</cstId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/humidity[/font][/color][/size]
[size=small][color=#333333][font=Arial]</streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataType>DOUBLE</dataType>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<forwardTo/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<id>0a635274-12fc-11e8-b143-0a406a6369ba</id>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestamp>1518773435014</timestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestampISO>2018-02-16T09:30:35.014Z</timestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestamp>1518773435014</serverTimestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestampISO>2018-02-16T09:30:35.014Z</serverTimestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<data>31.4139729859</data>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<quality>0</quality>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<units>%</units>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataTtl>2678400</dataTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<rollupTtl>2678400</rollupTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<cstId>21009</cstId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/light[/font][/color][/size]
[size=small][color=#333333][font=Arial]</streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataType>DOUBLE</dataType>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<forwardTo/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<id>0a62fcf6-12fc-11e8-b143-0a406a6369ba</id>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestamp>1518773435011</timestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestampISO>2018-02-16T09:30:35.011Z</timestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestamp>1518773435014</serverTimestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestampISO>2018-02-16T09:30:35.014Z</serverTimestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<data>267.0</data>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<quality>0</quality>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<units>brightness</units>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataTtl>2678400</dataTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<rollupTtl>2678400</rollupTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<cstId>21009</cstId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/low_battery[/font][/color][/size]
[size=small][color=#333333][font=Arial]</streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataType>STRING</dataType>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<forwardTo/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<id>f553b3bc-1251-11e8-9cb4-0ac5fe70dafe</id>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestamp>1518700385235</timestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestampISO>2018-02-15T13:13:05.235Z</timestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestamp>1518700385271</serverTimestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestampISO>2018-02-15T13:13:05.271Z</serverTimestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<data>False</data>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<quality>0</quality>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<units/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataTtl>2678400</dataTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<rollupTtl>2678400</rollupTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<cstId>21009</cstId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/temperature[/font][/color][/size]
[size=small][color=#333333][font=Arial]</streamId>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataType>DOUBLE</dataType>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<forwardTo/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<id>0a62aed5-12fc-11e8-b143-0a406a6369ba</id>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestamp>1518773435009</timestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<timestampISO>2018-02-16T09:30:35.009Z</timestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestamp>1518773435014</serverTimestamp>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<serverTimestampISO>2018-02-16T09:30:35.014Z</serverTimestampISO>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<data>21.32</data>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<quality>0</quality>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</currentValue>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<description/>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<units>C</units>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<dataTtl>2678400</dataTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]<rollupTtl>2678400</rollupTtl>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</DataStream>[/font][/color][/size]
[size=small][color=#333333][font=Arial]</result>


Che ne pensi?



Vito


Allegati
.jpg   Immagine_id_psw_.jpg (Dimensione: 55.8 KB / Download: 6)
.html   lth_sensor_5.html (Dimensione: 3.18 KB / Download: 2)
Risposta
#8
questo non è un html..
comunque, quali sono i numeri che ti servono qui?
Codice:
4 1000 ca9fdc58-4-56b9a4e2 21009 dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/humidity DOUBLE 0e361602-12fc-11e8-b143-0a406a6369ba 1518773441428 2018-02-16T09:30:41.428Z 1518773441429 2018-02-16T09:30:41.429Z 31.5372928665 0 % 2678400 2678400 21009 dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/light DOUBLE 0e35c7e1-12fc-11e8-b143-0a406a6369ba 1518773441426 2018-02-16T09:30:41.426Z 1518773441429 2018-02-16T09:30:41.429Z 365.0 0 brightness 2678400 2678400 21009 dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/low_battery STRING f553b3bc-1251-11e8-9cb4-0ac5fe70dafe 1518700385235 2018-02-15T13:13:05.235Z 1518700385271 2018-02-15T13:13:05.271Z False 0 2678400 2678400 21009 dia/channel/00000000-00000000-00409DFF-FF506669/lth_sensor_5/temperature DOUBLE 0e3552b0-12fc-11e8-b143-0a406a6369ba 1518773441423 2018-02-16T09:30:41.423Z 1518773441429 2018-02-16T09:30:41.429Z 21.32 0 C 2678400 2678400
Risposta
#9
Ciao, grazie di tutto ho risolto.
Appena ho un pò di tempo, inserisco la guida che ho seguito.
Risposta
  


Vai al forum:


Navigazione:
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect