summaryrefslogtreecommitdiff
path: root/datasources
diff options
context:
space:
mode:
Diffstat (limited to 'datasources')
-rwxr-xr-xdatasources/de_wettermichel.py46
-rwxr-xr-xdatasources/yves_laserjet_tonerstatus.sh14
2 files changed, 60 insertions, 0 deletions
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
diff --git a/datasources/yves_laserjet_tonerstatus.sh b/datasources/yves_laserjet_tonerstatus.sh
new file mode 100755
index 0000000..6b7628a
--- /dev/null
+++ b/datasources/yves_laserjet_tonerstatus.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+name=yves.laserjet.tonerstatus
+type=int
+
+curl -s "http://10.1.0.10/hp/device/info_suppliesStatus.html" |
+ sed -ne 's/.*>\([0-9]*\)%<.*/\1/p' |
+ (
+ read value
+ curl -s -i -H "Accept: application/json" \
+ -X PUT "http://localhost:8000/sensor/${name}" \
+ -d "value=${value}&type=${type}" |
+ grep '"error": null' >/dev/null
+ )