From cbb0d672f6e67fa3b6f6e50b0ef06f5f61fb0cd4 Mon Sep 17 00:00:00 2001 From: Eddy de Vink Date: Thu, 13 Aug 2026 12:17:54 +0200 Subject: [PATCH] Add module identification command (relay id) --- README.md | 1 + relay | 11 ++++++----- src/main.cpp | 3 +++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index fde58ae..4a0dd8c 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Sluit aan via USB en stuur commando's: ./relay 1 # relais aan ./relay 0 # relais uit ./relay 1 /dev/cu.usbserial-XXXX # poort opgeven als default afwijkt +./relay id # toont module-ID (chip-ID, uniek per chip, onafhankelijk van USB-poort) ``` ## Pinnen diff --git a/relay b/relay index 9429222..405c5bb 100755 --- a/relay +++ b/relay @@ -1,15 +1,16 @@ #!/usr/bin/env python3 -"""Toggle the USB relay via serial: ./relay 1|0 [serial_port].""" +"""Toggle the USB relay via serial: ./relay 1|0|id [serial_port].""" import sys import serial DEFAULT_PORT = "/dev/cu.usbserial-2110" def main() -> int: - if len(sys.argv) not in (2, 3) or sys.argv[1] not in ("0", "1"): - print(f"Usage: {sys.argv[0]} 0|1 [serial_port]", file=sys.stderr) + if len(sys.argv) not in (2, 3) or sys.argv[1] not in ("0", "1", "id"): + print(f"Usage: {sys.argv[0]} 0|1|id [serial_port]", file=sys.stderr) return 1 command = sys.argv[1] + serial_cmd = "?" if command == "id" else command port = sys.argv[2] if len(sys.argv) == 3 else DEFAULT_PORT try: # dtr/rts expliciet uit vóór open: voorkomt (of beperkt) de CH340 @@ -32,12 +33,12 @@ def main() -> int: # binnen 2 s (timeout, readline geeft b"") = geen reset: door. s.readline() s.reset_input_buffer() - s.write(command.encode()) + s.write(serial_cmd.encode()) s.flush() reply = s.readline().decode(errors="replace").strip() finally: s.close() - if reply in ("ON", "OFF"): + if reply in ("ON", "OFF") or (command == "id" and reply.startswith("ID ")): print(reply) return 0 print(f"ERROR: no valid reply from board (got {reply!r})", file=sys.stderr) diff --git a/src/main.cpp b/src/main.cpp index dad1b9e..a8846ec 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -23,6 +23,9 @@ void loop() { digitalWrite(RELAY_PIN, LOW); digitalWrite(LED_PIN, HIGH); Serial.println("OFF"); + } else if (c == '?') { + Serial.print("ID usbtoggle-relay "); + Serial.println(ESP.getChipId(), HEX); } } }