Skip to content

Repository files navigation

Modbus Control

Read and write Modbus registers from the Zelos desktop app — pairs with the zeloscloud.zelos-extension-modbus agent extension (0.1.5+).

  • 🛰️ One card per agent, one section per interface (TCP / RTU) with live connection + poll counters
  • 📇 One table per interface: registers from the map and raw addresses, side by side, saved between sessions
  • 🔄 On-demand Read per row — the only way to see poll_interval: 0 registers
  • ✏️ Inline Write, range-checked before it hits the wire; coils as a switch; the typed value sticks, so duplicate rows act as presets
  • 🔔 Failures toast with a humanized message and copy-details JSON; successes just show the new value

The table

Column Notes
Address Decimal + hex, e.g. 100 (0x0064)
Table holding / input / coil / discrete — inputs are read-only
Type Datatype, plus word order and scale when they aren't the defaults
Value Named rows from the 1 Hz snapshot, dimmed past ~3× the poll rate
Write Value + Write, a switch for bits, where the table is read-only

Add picks a register out of the map, or starts a raw row — any address, with its table, datatype and word order edited inline in the row and committed as you go. Raw rows have no poll behind them: they read on demand (read_register, decoded client-side) and write FC6 / FC16 / FC5 by width and table.

Values are decoded and encoded by src/lib/codec.ts, a 1:1 port of the extension's decode_value / encode_value (including its scaled-integer truncation), so a raw read of a mapped address agrees with that register's named read.

Development

just dev runs standalone against a stateful mock host. Add ?mock=<scenario> to exercise a capability state: ready (default), extension-missing, extension-stopped, extension-outdated, no-interfaces, multi-agent. See CONTRIBUTING.md.

About

Implements an App Extension that interacts with Modbus Extensions

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages