From 6f20cda5c3071e03d2a56dc8236a530582cad2b7 Mon Sep 17 00:00:00 2001 From: Ebus-at-dockstar Date: Mon, 25 Mar 2013 11:42:52 +0100 Subject: neue datenquellen --- datasources/de_wettermichel.py | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 datasources/de_wettermichel.py (limited to 'datasources/de_wettermichel.py') diff --git a/datasources/de_wettermichel.py b/datasources/de_wettermichel.py new file mode 100755 index 0000000..cf6a507 --- /dev/null +++ b/datasources/de_wettermichel.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python +# -*- coding:utf8 -*- +import httplib +from StringIO import StringIO +from lxml import objectify + +def read(): + conn = httplib.HTTPConnection("www.wettermichel.de") + conn.request("GET", "/weatherdata/params3.xml") + response = conn.getresponse() + assert response.status == 200, "Site status code == 200" + + xml = objectify.parse( response ) + conn.close() + return xml + +def insert(name, value, valueType): + conn = httplib.HTTPConnection("127.0.0.1:8000") + conn.request("PUT", + "/sensor/{n}".format(n=name), + "value={v}&type={t}".format(v=value, t=valueType)) + response = conn.getresponse() + assert response.status == 200, "put status code == 200" + conn.close() + + + + +for keyval in read().xpath("/data/*"): + if keyval.tag == "entry": + continue + + if isinstance(keyval, objectify.IntElement): + insert("de.wettermichel.{n}".format(n=keyval.tag), + keyval.text, "int") + elif isinstance(keyval, objectify.FloatElement): + insert("de.wettermichel.{n}".format(n=keyval.tag), + keyval.text, "float") + elif isinstance(keyval, objectify.StringElement): + # ignore strings + pass + else: + print "ignore other: %s %s" % (keyval.tag, keyval.__class__) + + +# vim: autoindent tabstop=4 shiftwidth=4 expandtab softtabstop=4 filetype=python -- cgit v1.2.1