From 0ab2d9f8dd6a7c189e8e5b253302d5d990066d18 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Sun, 23 Nov 2014 10:39:00 +0100 Subject: Fixup pellematic-burner-runtime for newer firmware too Tested with "Touch V2.03 20140723" --- pellematic-burner-runtime | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'pellematic-burner-runtime') 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: -- cgit v1.2.3