Matismart MT53RS (smart recloser)
Status: Vendor Confirmed · Register points: 52 · Transports: Modbus RTU
A curated ModDef profile for the Matismart MT53RS (smart recloser). Import it as
matismart.mt53rs or load the .moddef.yaml directly.
Connect to one over Web Serial and watch its values live in the device dashboard.
Usage
Load the profile, bind a transport, and read a point by name. The runtime applies the offset, scaling, byte order, and sentinels from the definition.
- Go
- TypeScript
- Rust
- Python
- C
- C++
doc, _ := moddef.Load("matismart-mt53rs.moddef.yaml")
dev, _ := client.New(doc, "matismart-mt53rs", transport) // your modbus.Transport
v, _ := dev.ReadPoint(ctx, "aux_output_active")
fmt.Println(v)
import {Device} from '@moddef/core';
import {loadDocument} from '@moddef/core/node';
const doc = await loadDocument('matismart-mt53rs.moddef.yaml');
const dev = Device.create(doc, 'matismart-mt53rs', transport);
console.log(await dev.readPoint('aux_output_active'));
let doc = moddef_core::load("matismart-mt53rs.moddef.yaml")?;
let mut dev = Device::new(&doc, Some("matismart-mt53rs"), transport)?;
let v = dev.read_point("aux_output_active").await?;
from moddef import Device, load
from moddef.pymodbus import Options, PymodbusTransport
doc = load("matismart-mt53rs.moddef.yaml")
transport = await PymodbusTransport.tcp("192.168.1.50", options=Options())
dev = Device.create(doc, "matismart-mt53rs", transport)
print(await dev.read_point("aux_output_active"))
md_doc_t doc;
md_doc_init(&doc, flash_ptr, flash_len); /* zero-copy view */
md_dev_t dev;
md_dev_init(&dev, &doc, MD_STR("matismart-mt53rs"), &transport);
md_value_t v;
md_dev_read(&dev, MD_STR("aux_output_active"), &v);
auto doc = moddef::Document::view(flash_bytes).value(); // zero-copy over flash
auto dev = moddef::Device::open(doc, "matismart-mt53rs", transport).value();
if (auto v = dev->read("aux_output_active"); v)
std::cout << v->to_string() << '\n';
Commands
Multi-step register procedures (spec §11.7)
this profile defines — write params, arm a trigger, poll for completion, then
read the result. Run one with your language's command executor (RunCommand,
runCommand, run_command, or md_cmd_begin/md_cmd_tick in C/C++).
open_breaker — Open Breaker
Write 1 (open) to register 0x11, then poll register 0x0F until the open-position sensor (bit 0) is triggered. Times out if RS-485 control is disabled in register 0x12.
Results
| Field | Type |
|---|---|
position_sensors | flags |
recloser_status | flags |
close_breaker — Close Breaker
Write 2 (close) to register 0x11, then poll register 0x0F until the closed-position sensor (bit 2) is triggered. Closing energises everything downstream. Times out if RS-485 control is disabled in register 0x12.
Results
| Field | Type |
|---|---|
position_sensors | flags |
recloser_status | flags |
Measurands
The 1 semantic quantities this device reports, each linked to the measurand catalog. Query a device by measurand instead of a raw point when you want portable code.
| Base quantity | Name | Unit | Description |
|---|---|---|---|
device_status | Device Status | undefined | Overall device operating status (enum) |
Source
- Profile:
switchgear/matismart-mt53rs/matismart-mt53rs.moddef.yaml - Register map: vendor documentation