Logging aangepast

This commit is contained in:
Ard Kuijpers
2020-06-03 22:19:03 +02:00
parent 997ffea4b8
commit a6c00302d9
3 changed files with 61 additions and 10 deletions

32
app.py
View File

@@ -1,4 +1,5 @@
import os
import time
from dsmr_parser import telegram_specifications
from dsmr_parser.clients import SerialReader, SERIAL_SETTINGS_V2_2, SERIAL_SETTINGS_V4, SERIAL_SETTINGS_V5
@@ -10,35 +11,46 @@ import logging
logger = logging.getLogger(__name__)
def main():
logging.basicConfig(format='%(asctime)s (%(levelname)s) [%(name)s] %(message)s', level=logging.INFO)
logfmt = "%(asctime)s [%(levelname)-5.5s] [%(name)s] %(message)s"
logging.basicConfig(level=logging.INFO, format=logfmt, filename="dsmr2mqtt.log")
# set up logging to console
consolelog = logging.StreamHandler()
consolelog.setLevel(logging.INFO)
# set a format which is simpler for console use
formatter = logging.Formatter(logfmt)
consolelog.setFormatter(formatter)
logging.getLogger("").addHandler(consolelog)
cfg = Settings()
protocol_version: str = str(cfg.dsmr_protocol)
dev = str(cfg.dsmr_port)
if 'V2' in protocol_version:
devsettings = SERIAL_SETTINGS_V2_2
serial_setup = SERIAL_SETTINGS_V2_2
spec = telegram_specifications.V2_2
elif 'V3' in protocol_version:
devsettings = SERIAL_SETTINGS_V4
serial_setup = SERIAL_SETTINGS_V4
spec = telegram_specifications.V3
elif 'V4' in protocol_version:
devsettings = SERIAL_SETTINGS_V4
serial_setup = SERIAL_SETTINGS_V4
spec = telegram_specifications.V4
else:
devsettings = SERIAL_SETTINGS_V5
serial_setup = SERIAL_SETTINGS_V5
spec = telegram_specifications.V5
device = Device_DSMR("dsmr", name="Digitale Slimme Meter")
serial_reader = SerialReader(dev, devsettings, spec)
serial_reader = SerialReader(cfg.dsmr_port, serial_setup, spec)
while True:
try:
telegram = next(serial_reader.read_as_object())
device.update(telegram)
logger.info(f"New telegram at {telegram.P1_MESSAGE_TIMESTAMP.value}")
time.sleep(cfg.dsmr_update_interval)
except SerialException as serial_exc:
logger.warning("Serial exception", exc_info=serial_exc)
for telegram in serial_reader.read_as_object():
device.update(telegram)
# for telegram in serial_reader.read_as_object():
# device.update(telegram)
if __name__ == "__main__":
main()