Example - Modbus Ingestor

Example - TCP Modbus Ingestor

This ingestor will start a TCP Modbus listener that will poll on port 502 every 15 seconds with a read coils (function code 0x01) request to address 0 and slave_id 255. The output of the listener ([]byte) is then passed directly to the template translator via the passthrough handler. The translator then uses the template ('script' field) to generate an EdgeIQ Report.

Ingestor JSON:

  "name": "webrelay ingestor - fan",
  "cloud_ingestor": false,
  "device_ids": [

  "listener_type": "tcp_modbus",
  "listener": {
    "host": "",
    "port": 502,
    "poll_interval": 15,
    "timeout": 2,
    "params": {
      "request_type": "read_coils",
      "address": "0",
      "slave_id": 255,
      "quantity": 1
  "handler_type": "passthrough",
  "translator": {
    "name": "webrelay translator - fan",
    "cloud_translator": false,
    "type": "template",
    "script": "{\"device_id\":\"webrelay-device-9458\", \"payload\":{\"coil_status\": {{.output}}}}"

Generated EdgeIQ Report JSON:

  "device_id": "webrelay-device-9458",
  "payload": {
    "coil_status": [1] 

NOTE: The result ({{.output}}) from the read coils command will be [1] when the coil is on and [0] when it's off.