Skip to content

Commit b6dc5bb

Browse files
ale-rinaldiclaude
andauthored
docs(cli,readme): broaden scope to all Thytronic relays + add Compatibility/License (#26)
Replace the informal "talks to PROX/PRON/XMR the way ThyVisor does, but smarter" tagline with a neutral one-liner. Empirical scan of all 847 vendor templates confirms IDENTIFICATION=num=5183 is universal across families (not PROX/PRON/XMR-specific as the connection.go comment claimed); broaden that comment too. README opens generically, adds a Compatibility section declaring only XV10P/NV10P as tested and inviting issues for other families, and a License section that points at the MIT LICENSE, restates the as-is disclaimer, and notes non-affiliation with Thytronic. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 8b74bcc commit b6dc5bb

3 files changed

Lines changed: 40 additions & 10 deletions

File tree

README.md

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
![mythy logo](logo.png)
44

5-
A command-line client for **Thytronic** protection relays (XV10P, NV10P,
6-
NA10, …). `mythy` speaks the same wire protocol as the vendor's ThyVisor
7-
Windows app — Modbus TCP and Modbus RTU — so you can identify a device,
8-
browse its parameter catalog, read measurements, change settings,
9-
snapshot configurations to YAML, and invoke device commands without
10-
leaving the terminal.
5+
A command-line client for **Thytronic** protection relays. `mythy`
6+
speaks the same wire protocol as the vendor's ThyVisor Windows app —
7+
Modbus TCP and Modbus RTU — so you can identify a device, browse its
8+
parameter catalog, read measurements, change settings, snapshot
9+
configurations to YAML, and invoke device commands without leaving
10+
the terminal.
1111

1212
## What it does
1313

@@ -24,6 +24,27 @@ leaving the terminal.
2424
| Transports | Modbus TCP (default port 502) and Modbus RTU on serial / USB-CDC |
2525
| Safety rails | `--force` gate on destructive operations; client-side validation (RANGE bounds, ENUM membership, STRING length) before any write |
2626

27+
## Compatibility
28+
29+
Thytronic relay templates share the same on-the-wire data layout
30+
across families: every product in the vendor's `Codifica.xml`
31+
exposes its parameter catalog through the same `<message>` /
32+
`<part>` / `<TIPO>` schema, and the IDENTIFICATION register lives
33+
at the same Modbus address on every family that declares it. In
34+
principle `mythy` should work against any device the vendor
35+
catalog covers.
36+
37+
In practice it has been exercised end-to-end only on the two
38+
devices we have on hand:
39+
40+
- **XV10P** (PROX family)
41+
- **NV10P** (PRON family)
42+
43+
Other products (NA10, XMR, DMC*, SME*, CCI, NTG, iBU, …) are
44+
expected to work but are **untested**. If you try one and hit a
45+
mismatch, please open an issue with the device's `identify`
46+
output and a description of what failed.
47+
2748
## Getting started
2849

2950
### 1. Install mythy
@@ -350,3 +371,12 @@ pkg/session/ High-level API: Connect, Identify, Read, Set, Command, …
350371
pkg/configio/ YAML export / import / diff / apply
351372
testdata/ Synthetic catalog fixture for tests
352373
```
374+
375+
## License
376+
377+
Released under the MIT License — see [LICENSE](LICENSE) for the
378+
full text. `mythy` is provided **as-is**, without warranty of any
379+
kind: you are responsible for verifying its behavior before using
380+
it against production relays. The authors are not affiliated with
381+
Thytronic; "Thytronic", "ThyVisor", and product names are
382+
trademarks of their respective owners.

cmd/mythy/connection.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ func (c *connFlags) build(ctx context.Context, cf *catalogFlags) (*session.Sessi
119119
} else {
120120
// Look up IDENTIFICATION's wire address from the catalog instead
121121
// of hardcoding 0x143E (audit I11). We need a template for that
122-
// lookup, which we don't have yet — but every PROX/PRON/XMR
123-
// template puts IDENTIFICATION at num=5183, and that's the only
124-
// register guaranteed at a fixed address across families. So
122+
// lookup, which we don't have yet — but every Thytronic relay
123+
// template that declares IDENTIFICATION puts it at num=5183
124+
// (empirically verified across the full vendor catalog), so
125125
// hardcoding 0x143E here is structurally fine; this comment
126126
// records the deliberate choice.
127127
regs, err := t.ReadInputRegisters(ctx, 0x143E, 5)

cmd/mythy/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func newRootCmd() *cobra.Command {
2020
root := &cobra.Command{
2121
Use: "mythy",
2222
Short: "CLI for Thytronic protection relays",
23-
Long: "mythy talks to Thytronic Pro-X / Pro-N / XMR protection relays the way ThyVisor does, but smarter.",
23+
Long: "Command-line tool to configure, monitor, and manage Thytronic protection relays.",
2424
Version: strings.TrimPrefix(version, "v"),
2525
}
2626
cf := &catalogFlags{}

0 commit comments

Comments
 (0)