• 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 Anteprime
   

.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