aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpellematic-burner-runtime36
1 files changed, 23 insertions, 13 deletions
diff --git a/pellematic-burner-runtime b/pellematic-burner-runtime
index cfa7996..7452c23 100755
--- a/pellematic-burner-runtime
+++ b/pellematic-burner-runtime
@@ -24,31 +24,43 @@ import json
username = os.getenv('username', 'oekofen')
password = os.getenv('password', username)
debug = os.getenv('debug')
+url = os.getenv('url')
# The items we want to plot:
-items = ["CAPPL:FA[0].L_brennerlaufzeit_anzeige"
- ]
+items = {"CAPPL:FA[0].L_brennerlaufzeit_anzeige":
+ 'Burner Run Time',
+ }
def canon(name):
return re.sub(r"[^a-zA-Z0-9_]", "_", name)
+def get_name(item):
+ if item['name'] in items.keys():
+ if item['shortText'] != '???':
+ return item['shortText']
+ else:
+ return items[item['name']]
+ else:
+ return None
+
+
def print_config(url):
print """graph_title Pellematic Burning Time
graph_vlabel Burning time
graph_category Heating
graph_info This graph shows different hours of burner operation
"""
-
out = fetch_raw(url)
for item in out:
- if item['name'] in items:
- name = item['shortText']
+ name = get_name(item)
+ if name:
print "%s.label %s" % (canon(name), name)
print "%s.type GAUGE" % canon(name)
thickness = 1 if name.endswith('soll') else 2
print "%s.draw LINE%d" % (canon(name), thickness)
+
def fetch_raw(url):
# Perform authentication and get the cookie
auth_formdata = {'language': 'en',
@@ -74,7 +86,7 @@ def fetch_raw(url):
}
# The items to fetch are passed as simple json string
- payload = json.dumps(items)
+ payload = json.dumps(items.keys())
r = requests.post(url,
data=payload,
params=params,
@@ -94,17 +106,15 @@ def fetch_raw(url):
def fetch_values(url):
out = fetch_raw(url)
for item in out:
- if item['name'] in items:
- name = canon(item['shortText'])
- print "%s.value %s" % (name, item['value'])
+ name = get_name(item)
+ if name:
+ print "%s.value %s" % (canon(name), item['value'])
def main(args):
- target = os.getenv('address')
- if not target:
- print >>sys.stderr, "No ip address configured"
+ if not url:
+ print >>sys.stderr, "No url configured"
return 1
- url = 'http://%s' % target
if len(args) > 1:
if args[1] in [ 'autoconf', 'detect' ]:
try: