Communication Adapters
SPX Server implements protocol adapters in its server runtime.
Source of truth (in priority order):
Implementation: SPX Server runtime
The YAML key is the
@register_class(name="...")value.
Runnable examples:
spx-examples/library/domains/**
Shared concepts
Model YAML shape:
communicationcan be a mapping or a list (list form also supports multiple adapters of the same kind).Prefer the list form when you need more than one adapter and when you want unknown adapter keys to fail fast.
Lifecycle: adapters typically implement
prepare→start→stop→release(some also supportattach/detach).Bindings: most adapters map protocol I/O onto attributes using binding entries (
direction,attributes/read_attribute/write_attribute).Scenarios: scenarios can override adapter properties at runtime (latency, disconnects, blackholes) to test client behavior.
Adapter index
Common
ASCII / SCPI (
ascii) — TCP text protocols (SCPI-style).HTTP endpoint (
http_endpoint) — REST-style endpoints backed by attributes.MQTT (
mqtt,mqtt-ha) — publish/subscribe bindings + Home Assistant discovery variant.Modbus (
modbus_slave,modbus_tcp,modbus_master) — Modbus TCP server(s) + Modbus client.BLE (
ble) — bridges to the standalonespx-ble-adapter.
Automation / industrial
BACnet (
bacnet) — BACnet/IP objects, schedules, alarms.KNX IP (
knx_ip,knx_ip_simulator) — KNXnet/IP routing + local simulator.OPC UA server (
opcua_server) — exposes nodes viaopc.tcp://....PROFINET (
profinet_server,profinet_snap7_adapter) — PROFINET server and Snap7-based adapter.DALI (
dali) — DALI client bindings.M-Bus (
mbus,mbus_server) — M-Bus client + server.
IoT / device clouds
CoAP server (
coap_server) — CoAP endpoints with bindings.LwM2M client (
lwm2m) — LwM2M client registrations + resources.Matter (
matter) — Matter controller integration over WebSocket.OCPP (
ocpp) — OCPP 1.6J client/server roles.
Management
SNMP (
snmp,snmp_server) — SNMP client + agent.Redfish (
redfish,redfish_server) — Redfish client + server.
Tips:
Keep protocol ports/config in
parametersso deployments can override them per environment.Prefer spx-examples models as runnable references for adapter behavior.
Use scenarios for chaos testing (
detach, delay spikes, message drops) and validate via MiL tests.
Last updated

