From dd60c536f96ee3a16a6f0c7665405056ca15e521 Mon Sep 17 00:00:00 2001 From: WillCodeForCats <48533968+WillCodeForCats@users.noreply.github.com> Date: Tue, 12 May 2026 21:00:55 -0700 Subject: [PATCH 1/3] Follow guidance to migrate from pyserial to serialx https://developers.home-assistant.io/blog/2026/04/27/pyserial-to-serialx/ --- tekmar_packetserv/Dockerfile | 2 +- .../rootfs/usr/local/packetserv/packetserv.py | 32 +++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tekmar_packetserv/Dockerfile b/tekmar_packetserv/Dockerfile index 3c4951c..117d98d 100755 --- a/tekmar_packetserv/Dockerfile +++ b/tekmar_packetserv/Dockerfile @@ -5,7 +5,7 @@ FROM ${BUILD_FROM} ENV LANG=C.UTF-8 # Install requirements for app -RUN apk add --no-cache python3 py3-pyserial +RUN apk add --no-cache python3 py3-pip && pip3 install --no-cache-dir serialx # Copy data COPY rootfs / diff --git a/tekmar_packetserv/rootfs/usr/local/packetserv/packetserv.py b/tekmar_packetserv/rootfs/usr/local/packetserv/packetserv.py index 07647b0..b148d70 100755 --- a/tekmar_packetserv/rootfs/usr/local/packetserv/packetserv.py +++ b/tekmar_packetserv/rootfs/usr/local/packetserv/packetserv.py @@ -10,7 +10,7 @@ import traceback import packet -import serial +import serialx import tpck # ****************************************************************************** @@ -195,7 +195,7 @@ def run(self): self.connections.lst.remove(s) self.connections.lock.release() - except serial.SerialException as err: + except (serialx.SerialException, OSError) as err: self.running = False message(err) @@ -211,7 +211,7 @@ def run(self): message("Serial port closing.") try: self.port.close() - except (select.error, serial.SerialException): + except (select.error, serialx.SerialException, OSError): pass # -------------------------------------------------------------------------- @@ -247,33 +247,33 @@ def stop(self): try: if ser_mode == "device": message(f"Opening serial port device: {ser_name}") - serial_port = serial.Serial( + serial_port = serialx.serial_for_url( ser_name, baudrate=9600, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=TIMEOUT, + byte_size=8, + parity=serialx.Parity.NONE, + stopbits=serialx.StopBits.ONE, + read_timeout=TIMEOUT, ) if ser_mode == "rfc2217": message(f"Opening RFC2217 connection to {ser_host} port {ser_port}") - serial_port = serial.serial_for_url( + serial_port = serialx.serial_for_url( f"rfc2217://{ser_host}:{ser_port}", baudrate=9600, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=TIMEOUT, + byte_size=8, + parity=serialx.Parity.NONE, + stopbits=serialx.StopBits.ONE, + read_timeout=TIMEOUT, ) if ser_mode == "socket": message(f"Opening socket connection to {ser_host} port {ser_port}") - serial_port = serial.serial_for_url( - f"socket://{ser_host}:{ser_port}", timeout=TIMEOUT + serial_port = serialx.serial_for_url( + f"socket://{ser_host}:{ser_port}", read_timeout=TIMEOUT ) - except serial.SerialException: + except (serialx.SerialException, OSError): message("Could not open serial port. Exiting.") else: From 70c8f789c58a1462eb1786921340ec492757c267 Mon Sep 17 00:00:00 2001 From: WillCodeForCats <48533968+WillCodeForCats@users.noreply.github.com> Date: Sun, 7 Jun 2026 19:18:28 -0700 Subject: [PATCH 2/3] --break-system-packages serialx --- tekmar_packetserv/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tekmar_packetserv/Dockerfile b/tekmar_packetserv/Dockerfile index 117d98d..6d8080c 100755 --- a/tekmar_packetserv/Dockerfile +++ b/tekmar_packetserv/Dockerfile @@ -5,7 +5,8 @@ FROM ${BUILD_FROM} ENV LANG=C.UTF-8 # Install requirements for app -RUN apk add --no-cache python3 py3-pip && pip3 install --no-cache-dir serialx +RUN apk add --no-cache python3 py3-pip \ + && pip3 install --no-cache-dir --break-system-packages serialx # Copy data COPY rootfs / From 75e9c520c793122c8c4cc2db159ff4f0e38e9484 Mon Sep 17 00:00:00 2001 From: WillCodeForCats <48533968+WillCodeForCats@users.noreply.github.com> Date: Sun, 7 Jun 2026 20:36:14 -0700 Subject: [PATCH 3/3] Update version and changelog to 1.4.0 --- tekmar_packetserv/CHANGELOG.md | 3 +++ tekmar_packetserv/config.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tekmar_packetserv/CHANGELOG.md b/tekmar_packetserv/CHANGELOG.md index cfabcdb..7366724 100644 --- a/tekmar_packetserv/CHANGELOG.md +++ b/tekmar_packetserv/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 1.4.0 +- Migrate from pyserial to serialx + ## 1.3.3 - Update to base 3.23 - Addons are now Apps diff --git a/tekmar_packetserv/config.json b/tekmar_packetserv/config.json index 2f85ebf..38badeb 100755 --- a/tekmar_packetserv/config.json +++ b/tekmar_packetserv/config.json @@ -1,6 +1,6 @@ { "name": "Tekmar Packet Server", - "version": "1.3.3", + "version": "1.4.0", "url": "https://github.com/WillCodeForCats/tekmar-packetserv", "slug": "tekmar_packetserv", "description": "Connect with the Tekmar Gateway 482",