Bruke python til å skrive/hente data fra websider.

Dette er kun et lite notat til meg selv. Ifb et scenario i Switchking(SK) vil jeg ha data fra kWh telleren inn i SK. Dette kan jeg gjøre direkte fra SK, men jeg vil jobbe litt med tallene, regne ut snitt pr time, døgn , uke osv. Da har jeg valgt å bruke EventGhost (EG) til dette. EG kan kjøre python. Verdien fra kWh telleren min blir lagret i en MySQL database, jeg har en php fil som spytter ut nåværende forbruk i watt f.eks 2475 . (En snittmåling over de siste 30 sekunder)

I python gjør jeg følgende for å hente ut dette:


import urllib
url = ("http://server.no/kwh.php")
response = urllib.urlopen(url).read()
devicename = 'kWh'
eg.plugins.SwitchkingTellStick.DSSet('',devicename,response,0)

Den siste linjen oppdaterer datakilden med navn «kWh» i Switchking med verdien fra php filen. I dette enkle eksemplet har jeg ikke tatt med verdiene for dag, uke, måned osv.

For å oppdatere device direkte i Switchking kreves det en plugin til EventGhost, den finnes her:  http://eventghost-switchking-plugin.googlecode.com/files/eventghost-switchking-plugin.0.0.5.zip

Man også bruke dette til å sende data andre veien. F.eks om man skal ha en verdi fra python over til web.

I eksemplet nedenfor er det et php script som tar i mot verdier via GET. (variabler i adressen). Verdien som blir sendt er et tilfeldig tall mell 100 og 200.

Man kan selvsagt sende flere verdier samtidig. I php kan man deretter gjøre logiske beregninger, evaluere data  osv før det registreres i databasen.


import random
import urllib
value = str(random.randint(100, 200))
url = ("http://server.no/registrer.php?data=" +value)
web = urllib.urlopen(url).read()