From e818f2cb3a0cde28595ac0c1e9fe625d4ab64f9d Mon Sep 17 00:00:00 2001 From: Peter Lorenz Date: Sat, 9 Sep 2023 01:07:38 +0200 Subject: [PATCH 1/2] merged parse_payload() from https://github.com/stereosupersonic/resol-vbus-python/blob/master/resol.py to get it run with python 3.9.2 on raspi --- resol.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/resol.py b/resol.py index 66971f0..e0b115d 100755 --- a/resol.py +++ b/resol.py @@ -148,6 +148,7 @@ def get_payload(msg): return payload + # parse payload and put result in result def parse_payload(msg): payload = get_payload(msg) @@ -161,16 +162,11 @@ def parse_payload(msg): packet['command'].lower() == get_command(msg).lower(): result[get_source_name(msg)] = {} for field in packet['field']: - result[get_source_name(msg)][field['name']] = \ - str( - gb(payload, field['offset'], int(field['offset'])+((int(field['bitSize'])+1) / 8)) * - (Decimal(field['factor']) if 'factor' in field else 1) - ) + \ - (field['unit'] - if config.use_units - and 'unit' in field - and isinstance(field['unit'], str) - else '') + result[get_source_name(msg)][field['name'][0]] = str( + gb(payload, field['offset'], int(field['offset'])+((int(field['bitSize'])+1) / 8)) * + (Decimal(field['factor']) if 'factor' in field else 1)) + \ + (field['unit'] if 'unit' in field and config.use_units else '') + def format_message_pv1(msg): parsed = "PARSED: \n" From b02b8da13a9ea3f35a8602410607ab67f83a74d7 Mon Sep 17 00:00:00 2001 From: Peter Lorenz Date: Sat, 9 Sep 2023 14:54:59 +0200 Subject: [PATCH 2/2] prettyprited last change --- resol.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/resol.py b/resol.py index e0b115d..9889121 100755 --- a/resol.py +++ b/resol.py @@ -163,10 +163,12 @@ def parse_payload(msg): result[get_source_name(msg)] = {} for field in packet['field']: result[get_source_name(msg)][field['name'][0]] = str( - gb(payload, field['offset'], int(field['offset'])+((int(field['bitSize'])+1) / 8)) * - (Decimal(field['factor']) if 'factor' in field else 1)) + \ - (field['unit'] if 'unit' in field and config.use_units else '') - + gb(payload, field['offset'], int(field['offset'])+((int(field['bitSize'])+1) / 8)) * + (Decimal(field['factor']) if 'factor' in field else 1) + ) + \ + (field['unit'] + if 'unit' in field and config.use_units + else '') def format_message_pv1(msg): parsed = "PARSED: \n"