• 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: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect