Logging aangepast
This commit is contained in:
32
app.py
32
app.py
@@ -1,4 +1,5 @@
|
|||||||
import os
|
import os
|
||||||
|
import time
|
||||||
from dsmr_parser import telegram_specifications
|
from dsmr_parser import telegram_specifications
|
||||||
from dsmr_parser.clients import SerialReader, SERIAL_SETTINGS_V2_2, SERIAL_SETTINGS_V4, SERIAL_SETTINGS_V5
|
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__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
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()
|
cfg = Settings()
|
||||||
protocol_version: str = str(cfg.dsmr_protocol)
|
protocol_version: str = str(cfg.dsmr_protocol)
|
||||||
dev = str(cfg.dsmr_port)
|
|
||||||
if 'V2' in protocol_version:
|
if 'V2' in protocol_version:
|
||||||
devsettings = SERIAL_SETTINGS_V2_2
|
serial_setup = SERIAL_SETTINGS_V2_2
|
||||||
spec = telegram_specifications.V2_2
|
spec = telegram_specifications.V2_2
|
||||||
elif 'V3' in protocol_version:
|
elif 'V3' in protocol_version:
|
||||||
devsettings = SERIAL_SETTINGS_V4
|
serial_setup = SERIAL_SETTINGS_V4
|
||||||
spec = telegram_specifications.V3
|
spec = telegram_specifications.V3
|
||||||
elif 'V4' in protocol_version:
|
elif 'V4' in protocol_version:
|
||||||
devsettings = SERIAL_SETTINGS_V4
|
serial_setup = SERIAL_SETTINGS_V4
|
||||||
spec = telegram_specifications.V4
|
spec = telegram_specifications.V4
|
||||||
else:
|
else:
|
||||||
devsettings = SERIAL_SETTINGS_V5
|
serial_setup = SERIAL_SETTINGS_V5
|
||||||
spec = telegram_specifications.V5
|
spec = telegram_specifications.V5
|
||||||
|
|
||||||
device = Device_DSMR("dsmr", name="Digitale Slimme Meter")
|
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:
|
while True:
|
||||||
try:
|
try:
|
||||||
telegram = next(serial_reader.read_as_object())
|
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:
|
except SerialException as serial_exc:
|
||||||
logger.warning("Serial exception", exc_info=serial_exc)
|
logger.warning("Serial exception", exc_info=serial_exc)
|
||||||
for telegram in serial_reader.read_as_object():
|
# for telegram in serial_reader.read_as_object():
|
||||||
device.update(telegram)
|
# device.update(telegram)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
@@ -16,6 +16,7 @@ class Settings(BaseSettings):
|
|||||||
|
|
||||||
dsmr_port: str = Field('/dev/ttyUSB0', env='DSMR_PORT')
|
dsmr_port: str = Field('/dev/ttyUSB0', env='DSMR_PORT')
|
||||||
dsmr_protocol: str = Field('V5', env='DSMR_PROTOCOL')
|
dsmr_protocol: str = Field('V5', env='DSMR_PROTOCOL')
|
||||||
|
dsmr_update_interval: int = Field(15, env='DSMR_UPDATE_INTERVAL')
|
||||||
|
|
||||||
homie_update_interval: int = 60
|
homie_update_interval: int = 60
|
||||||
homie_topic: str = Field('homie', env='HOMIE_TOPIC')
|
homie_topic: str = Field('homie', env='HOMIE_TOPIC')
|
||||||
|
|||||||
38
dsmr2mqtt.log
Normal file
38
dsmr2mqtt.log
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
2020-06-03 22:12:14,941 [INFO ] [homie.mqtt.homie_mqtt_client] Using new MQTT client, number of instances 0
|
||||||
|
2020-06-03 22:12:14,953 [INFO ] [homie.mqtt.mqtt_base] MQTT set will homie/dsmr/$state, topic lost
|
||||||
|
2020-06-03 22:12:15,034 [INFO ] [homie.mqtt.paho_mqtt_client] Starting MQTT publish thread
|
||||||
|
2020-06-03 22:12:15,047 [INFO ] [homie.mqtt.paho_mqtt_client] Starting Asyincio looping forever
|
||||||
|
2020-06-03 22:12:15,058 [INFO ] [homie.device_base] Device Start Digitale Slimme Meter
|
||||||
|
2020-06-03 22:12:15,074 [INFO ] [homie.device_base] Device MQTT Connected state is True
|
||||||
|
2020-06-03 22:13:56,295 [INFO ] [homie.mqtt.homie_mqtt_client] Using new MQTT client, number of instances 0
|
||||||
|
2020-06-03 22:13:56,308 [INFO ] [homie.mqtt.mqtt_base] MQTT set will homie/dsmr/$state, topic lost
|
||||||
|
2020-06-03 22:13:56,381 [INFO ] [homie.mqtt.paho_mqtt_client] Starting MQTT publish thread
|
||||||
|
2020-06-03 22:13:56,395 [INFO ] [homie.mqtt.paho_mqtt_client] Starting Asyincio looping forever
|
||||||
|
2020-06-03 22:13:56,415 [INFO ] [homie.device_base] Device Start Digitale Slimme Meter
|
||||||
|
2020-06-03 22:13:56,425 [INFO ] [homie.device_base] Device MQTT Connected state is True
|
||||||
|
2020-06-03 22:14:16,943 [INFO ] [homie.mqtt.homie_mqtt_client] Using new MQTT client, number of instances 0
|
||||||
|
2020-06-03 22:14:16,956 [INFO ] [homie.mqtt.mqtt_base] MQTT set will homie/dsmr/$state, topic lost
|
||||||
|
2020-06-03 22:14:17,044 [INFO ] [homie.mqtt.paho_mqtt_client] Starting MQTT publish thread
|
||||||
|
2020-06-03 22:14:17,053 [INFO ] [homie.mqtt.paho_mqtt_client] Starting Asyincio looping forever
|
||||||
|
2020-06-03 22:14:17,065 [INFO ] [homie.device_base] Device Start Digitale Slimme Meter
|
||||||
|
2020-06-03 22:14:17,084 [INFO ] [homie.device_base] Device MQTT Connected state is True
|
||||||
|
2020-06-03 22:14:20,235 [INFO ] [__main__] New telegram at 2020-06-03 20:14:40+00:00
|
||||||
|
2020-06-03 22:14:36,297 [INFO ] [__main__] New telegram at 2020-06-03 20:14:58+00:00
|
||||||
|
2020-06-03 22:14:52,562 [INFO ] [__main__] New telegram at 2020-06-03 20:15:14+00:00
|
||||||
|
2020-06-03 22:15:09,207 [INFO ] [__main__] New telegram at 2020-06-03 20:15:31+00:00
|
||||||
|
2020-06-03 22:15:25,226 [INFO ] [__main__] New telegram at 2020-06-03 20:15:47+00:00
|
||||||
|
2020-06-03 22:15:41,354 [INFO ] [__main__] New telegram at 2020-06-03 20:16:03+00:00
|
||||||
|
2020-06-03 22:15:56,945 [WARNI] [dsmr_parser.clients.serial_] Invalid telegram. The CRC checksum '11234' does not match the expected '13978'
|
||||||
|
2020-06-03 22:15:58,235 [INFO ] [__main__] New telegram at 2020-06-03 20:16:20+00:00
|
||||||
|
2020-06-03 22:16:14,259 [INFO ] [__main__] New telegram at 2020-06-03 20:16:36+00:00
|
||||||
|
2020-06-03 22:16:30,293 [INFO ] [__main__] New telegram at 2020-06-03 20:16:52+00:00
|
||||||
|
2020-06-03 22:16:46,296 [INFO ] [__main__] New telegram at 2020-06-03 20:17:08+00:00
|
||||||
|
2020-06-03 22:17:02,745 [INFO ] [__main__] New telegram at 2020-06-03 20:17:24+00:00
|
||||||
|
2020-06-03 22:17:19,207 [INFO ] [__main__] New telegram at 2020-06-03 20:17:41+00:00
|
||||||
|
2020-06-03 22:17:35,349 [INFO ] [__main__] New telegram at 2020-06-03 20:17:57+00:00
|
||||||
|
2020-06-03 22:17:51,151 [WARNI] [dsmr_parser.clients.serial_] Invalid telegram. The CRC checksum '44843' does not match the expected '24557'
|
||||||
|
2020-06-03 22:17:52,374 [INFO ] [__main__] New telegram at 2020-06-03 20:18:14+00:00
|
||||||
|
2020-06-03 22:18:07,816 [WARNI] [dsmr_parser.clients.serial_] Invalid telegram. The CRC checksum '18157' does not match the expected '39647'
|
||||||
|
2020-06-03 22:18:09,205 [INFO ] [__main__] New telegram at 2020-06-03 20:18:31+00:00
|
||||||
|
2020-06-03 22:18:25,468 [INFO ] [__main__] New telegram at 2020-06-03 20:18:47+00:00
|
||||||
|
2020-06-03 22:18:42,205 [INFO ] [__main__] New telegram at 2020-06-03 20:19:04+00:00
|
||||||
Reference in New Issue
Block a user