Add possibility to read from remote port
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,5 +5,6 @@ __pycache__/
|
||||
*.log
|
||||
|
||||
# local files
|
||||
env
|
||||
.env
|
||||
.vscode
|
||||
|
||||
15
app.py
15
app.py
@@ -1,10 +1,11 @@
|
||||
import os
|
||||
import time
|
||||
import re
|
||||
import sys
|
||||
import threading
|
||||
import _thread
|
||||
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, SocketReader, SERIAL_SETTINGS_V2_2, SERIAL_SETTINGS_V4, SERIAL_SETTINGS_V5
|
||||
|
||||
from app_settings import Settings
|
||||
from device_dsmr import Device_DSMR
|
||||
@@ -41,10 +42,18 @@ def main():
|
||||
spec = telegram_specifications.V5
|
||||
|
||||
device = Device_DSMR("dsmr", name="Digitale Slimme Meter")
|
||||
serial_reader = SerialReader(cfg.dsmr_port, serial_setup, spec)
|
||||
if "remote:" not in cfg.dsmr_port:
|
||||
logger.info(f"using serial port {cfg.dsmr_port}")
|
||||
reader = SerialReader(cfg.dsmr_port, serial_setup, spec)
|
||||
else:
|
||||
result = re.search(r"remote://([^:]+):(.+)", cfg.dsmr_port)
|
||||
host = result.group(1)
|
||||
port = int(result.group(2))
|
||||
logger.info(f"reading from remote host {host} on port {port}")
|
||||
reader = SocketReader(host, port, spec)
|
||||
|
||||
def handle_next_telegram():
|
||||
telegram = next(serial_reader.read_as_object())
|
||||
telegram = next(reader.read_as_object())
|
||||
device.update(telegram)
|
||||
logger.info(f"New telegram at {telegram.P1_MESSAGE_TIMESTAMP.value}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user