Logging aangepast
This commit is contained in:
32
app.py
32
app.py
@@ -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()
|
||||
Reference in New Issue
Block a user