Files
dsmr_parser/dsmr_parser/__main__.py
T

39 lines
1.0 KiB
Python
Raw Normal View History

import argparse
2016-11-21 15:47:29 +01:00
import asyncio
import logging
from .protocol import create_dsmr_reader
2016-11-07 19:59:39 +01:00
def console():
"""Output DSMR data to console."""
parser = argparse.ArgumentParser(description=console.__doc__)
parser.add_argument('--device', default='/dev/ttyUSB0',
help='port to read DSMR data from')
parser.add_argument('--version', default='2.2', choices=['2.2', '4'],
help='DSMR version (2.2, 4)')
2016-11-21 15:47:29 +01:00
parser.add_argument('--verbose', '-v', action='count')
args = parser.parse_args()
2016-11-21 15:47:29 +01:00
if args.verbose:
level = logging.DEBUG
else:
level = logging.ERROR
logging.basicConfig(level=level)
2016-11-21 15:47:29 +01:00
loop = asyncio.get_event_loop()
2016-11-21 15:47:29 +01:00
def print_callback(telegram):
"""Callback that prints telegram values."""
for obiref, obj in telegram.items():
if obj:
print(obj.value, obj.unit)
print()
2016-11-21 15:47:29 +01:00
conn = create_dsmr_reader(args.device, args.version, print_callback, loop=loop)
loop.create_task(conn)
loop.run_forever()