Skip to content

Connect Multispan AVH-14-M1 to Autoconnecto (Modbus over MQTT) ​

This guide is for customers and field engineers. It connects a Multispan AVH-14-M1 multifunction energy meter (RS-485 Modbus RTU) to Autoconnecto through a cellular DTU such as USR-DR154, using a dedicated Modbus gateway (keep any XY-MD02 / htgateway path separate).

Related:

  • DR154 + XY-MD02 how-to: dr154-modbus-mqtt.md
  • Engineer transport contract: backend/docs/MODBUS_TUNNEL.md

What you are building ​

text
Autoconnecto  --MQTT TX-->  DR154  --RS485-->  AVH-14-M1 (Modbus slave)
Autoconnecto  <--MQTT RX--  DR154  <--RS485--  AVH-14-M1
PieceRole
energygatewayMQTT token + MQTT_SERIAL
avh1 (child)Slave ID, AVH-14-M1 register map, telemetry
DR154MQTT ↔ RS485 bridge
AVH-14-M1Modbus RTU float slave

Official Modbus map (from AVH-14-M1 PDF) ​

Confirmed from the meter manual MODBUS (AVH 14-M1) pages:

ItemValue
Slave address1–125
Baud4800 / 9600 / 19200 / 38400
ParityNone / Even / Odd
DatatypeFloat — 32-bit little-endian byte swap (CDAB)
Read FC0x03 and 0x04
Write FC0x06 / 0x10 (config/reset — not used for live telemetry)

Each value occupies two holding registers. Autoconnecto uses HOLDING (FC3) + data type float32_cdab.

Energy (integer + fraction) ​

Per manual Note 1, energy is split across two floats (example 320126789.321 → int 320126789 + frac 0.321):

KeyAddrMeaning
energy_kwh_int0kWh integer part
energy_kwh_frac2kWh fractional part
energy_kvah_int4kVAh integer
energy_kvah_frac6kVAh fraction
energy_kvarh_int8kVArh integer
energy_kvarh_frac10kVArh fraction

Total energy ≈ *_int + *_frac.

Voltages (phase values) ​

KeyAddrMeaning
voltage_l1n12L1–N
voltage_l2n16L2–N
voltage_l3n20L3–N
voltage_vln_avg24Avg V L-N
voltage_l1228L1–L2
voltage_l2332L2–L3
voltage_l3136L3–L1
voltage_vll_avg40Avg V L-L

(Unit registers 14, 18, … exist on the meter: 0 = V, 1 = kV — not polled by default.)

Current, PF, frequency ​

KeyAddr
current_l1 / l2 / l3 / current_avg44 / 48 / 52 / 56
power_factor_l1 / l2 / l3 / power_factor_avg60 / 62 / 64 / 68
frequency_hz70

Power ​

KeyAddr
active_power_kw_l1 / l2 / l3 / total72 / 76 / 80 / 84
apparent_power_kva_l1 / l2 / l3 / total88 / 92 / 96 / 100
reactive_power_kvar_l1 / l2 / l3 / total104 / 108 / 112 / 116

Hours / RPM / max demand ​

KeyAddr
load_hours / load_minutes120 / 122
noload_hours / noload_minutes124 / 126
rpm128
md_kw / md_kva / md_kvar130 / 134 / 138

Autoconnecto setup ​

  1. Create Modbus gateway energygateway (leave htgateway alone).
  2. Copy gateway token → DR154 MQTT user / password / client ID.
  3. Connection mode MQTT serial; topics:
    • Subscribe: devices/<TOKEN>/modbus/tx
    • Publish: devices/<TOKEN>/modbus/rx
  4. Add child avh1, slave ID 1 (match meter).
  5. Register map: addresses above, type HOLDING, data type float32 CDAB (Multispan), scale 1.
  6. UART on DR154 = meter baud (9600 8N1 recommended).
  7. Read now → check voltage_l1n / voltage_l2n / voltage_l3n (or L-L if 3P-3W).
  8. Then enable Auto poll.

DR154 checklist ​

text
AT+WKMOD=MQTT,NOR
AT+MQTTSVR=mqtt.autoconnecto.in,8883
AT+MQTTUSER=<ENERGY_GATEWAY_TOKEN>
AT+MQTTPSW=<ENERGY_GATEWAY_TOKEN>
AT+MQTTCID=<ENERGY_GATEWAY_TOKEN>
AT+MQTTSUBTP=1,1,devices/<TOKEN>/modbus/tx,0
AT+MQTTPUBTP=1,1,devices/<TOKEN>/modbus/rx,0,0
AT+SSLEN=ON
AT+UART=9600,8,1,NONE,NONE
AT+S

Wire A/B to meter Modbus terminals; remove PC from the bus.


Why earlier readings looked wrong ​

A different Multispan family map (AVH-14N 30000/40000 style) was applied first. That is not the AVH-14-M1 table. Combined with ABCD float decode instead of CDAB, voltages appeared as zeros or huge nonsense numbers.

Correct map + float32_cdab should show phase voltages near what the meter display shows.


Troubleshooting ​

SymptomCheck
TimeoutSlave ID, baud match, A/B, MQTT token/topics
Voltage still nonsenseConfirm data type is float32_cdab, addresses 12/16/20 (L-N) or 28/32/36 (L-L)
L-N always 0Meter in 3P-3W — use L-L keys instead
Energy oddSum energy_kwh_int + energy_kwh_frac

Checklist ​

  • [ ] Separate energygateway token on DR154
  • [ ] Meter + DR154 both 9600 (or both the same baud)
  • [ ] Slave ID match
  • [ ] Map from this AVH-14-M1 PDF (not 14N 30000 table)
  • [ ] Data type float32_cdab
  • [ ] Read now → phase voltages look right on avh1 telemetry

support@autoconnecto.in · founder@autoconnecto.in · +91 92121 00555 · app.autoconnecto.in