Skip to content

Repository files navigation

ioBroker IEC 60870-5-103 Adapter

IEC103 topology

English Documentation

What the adapter does

This adapter reads and sends IEC 60870-5-103 FT1.2 telegrams. It can be used with a direct serial interface or through a TCP RS485-to-Ethernet converter such as a Waveshare RS485-to-ETH adapter.

The adapter can run in three modes:

  • Sniffer: listen only, parse frames and create objects dynamically.
  • Master: controlling station, can send class requests, reset link, general interrogation and raw frames.
  • Slave: controlled station, can expose configured points and answer general interrogation.

Transport Options

Transport Use case
TCP client Adapter connects to an RS485-to-Ethernet converter.
TCP server Adapter waits for an external TCP client.
Serial Adapter uses a local serial device such as /dev/ttyUSB0.

Dynamic Object Creation

Dynamic object tree

Received ASDUs are stored below:

iec103.0.monitor.link_<linkAddress>.<typeName>.fun_<FUN>.inf_<INF>

Each detected object contains:

  • value
  • type
  • cot
  • cotName
  • rawAsduHex
  • lastUpdate
  • sub.* values if subvalues are enabled

Unknown or vendor-specific payloads are still stored as raw hex and generic byte/word/float interpretations.

Addressing: Link, CA, FUN, INF

Field Meaning
Link address Address on the IEC103 link layer / RS485 line.
CA Common Address, usually the station or device address inside the ASDU.
FUN Function type, often used to group protection functions.
INF Information number, the concrete point inside a function.

For simple test setups with one protection device, CA = 1 is often correct.

Slave Points

Slave points

In the Slave points tab you can configure values that the adapter should provide as an IEC103 slave.

Each row can define:

  • active/inactive
  • name
  • IEC103 type
  • FUN
  • INF
  • CA
  • value type
  • default value
  • optional ioBroker source state
  • include in General Interrogation
  • send on change

For every configured point the adapter creates:

iec103.0.slave.points.<id>.value
iec103.0.slave.points.<id>.lastSent
iec103.0.slave.points.<id>.lastAsduHex

If a source state is configured, the adapter reads this state and sends its value. If no source state is configured, you can write directly to slave.points.<id>.value.

Example: Binary Alarm Point

Setting Value
Type 1 - Time tagged message
FUN 160
INF 1
CA 1
Value type boolean
Source state 0_userdata.0.trip_alarm
GI enabled
Send on change enabled

The adapter sends the point during General Interrogation and also when 0_userdata.0.trip_alarm changes.

Example: Measured Value

Setting Value
Type 3 - Measurands I
FUN 161
INF 10
CA 1
Value type number
Source state modbus.0.current_l1
GI enabled
Send on change optional

Control States

The adapter provides these control states:

iec103.0.control.sendGeneralInterrogation
iec103.0.control.sendResetLink
iec103.0.control.requestClass1
iec103.0.control.requestClass2
iec103.0.control.rawFrameHex
iec103.0.control.sendRawFrame
iec103.0.control.rawAsduHex
iec103.0.control.sendRawAsdu
iec103.0.control.sendAllSlavePoints

Notes

IEC 60870-5-103 is often implemented with device-specific private payloads. This adapter is intentionally generic and can be extended with relay-specific decoding when real telegram examples are available.

A German version of this documentation is available in docs/README_DE.md.

Changelog

0.1.6

  • Decode normalized 13-bit ASDU 3/9 measurands, expose raw/status sub-values and add optional nominal-value and maximum-MVAL scaling.

0.1.5

  • Correct npm package metadata so ioBroker recognizes the installed adapter version.

0.1.4

  • Fixed jsonConfig metadata for repository checks and moved the German documentation to docs/README_DE.md.

0.1.3

  • Prepared the adapter for ioBroker repository checks, npm publishing and GitHub release automation.

0.1.2

  • Added bilingual README with diagrams and examples for sniffer, master and slave point configuration.

0.1.1

  • Added configurable slave point table with source states, GI response and send-on-change support.

0.1.0

  • Initial IEC 60870-5-103 adapter with serial/TCP transport, sniffer/master/slave modes and dynamic object creation.

Older entries are stored in CHANGELOG_OLD.md.

License

MIT License

Copyright (c) 2026 TheBam1990

About

Iobroker Adapter für iec103 datenprotokoll

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages