Protocol Quick Reference

This document serves as a “cheat sheet” for developers working with the Navien device protocol. It documents the non-standard boolean logic, key enumerations, and common command codes used throughout the system.

Boolean Values

The device uses non-standard boolean encoding in many status fields:

Value

Meaning

Notes

1

OFF / False

Standard: False value. Used for power and most feature flags.

2

ON / True

Standard: True value.

Exception: The touStatus field uses 0/1 encoding (0=disabled, 1=enabled) instead of the standard 1/2 encoding.

Why 1 & 2? This likely stems from legacy firmware design where:

  • 0 = reserved/error/null

  • 1 = off/false/disabled

  • 2 = on/true/enabled

Example: Device Power State

{
  "power": 2  // Device is ON
}

When parsed via DeviceStatus, this becomes status.power == True.

Enum Values

CurrentOperationMode

Used in real-time status to show what the device is currently doing.

Value

Mode

Description

0

Standby

Device is idle (not heating). Visible as “Idle”.

32

Heat Pump

Compressor is active. Visible as “Heating (HP)”.

64

Energy Saver

Hybrid efficiency mode active. Visible as “Heating (Eff)”.

96

High Demand

Hybrid boost mode active. Visible as “Heating (Boost)”.

Note

These are actual status values, not sequential. Gaps are reserved or correspond to error states.

DhwOperationSetting

User-selected heating mode preference.

Value

Mode

Description

1

Heat Pump Only

High efficiency, slow recovery.

2

Electric Only

Low efficiency, fast recovery.

3

Energy Saver

Default. Balanced hybrid mode.

4

High Demand

Hybrid boost for faster recovery.

5

Vacation

Heating suspended to save energy.

6

Power Off

Device is logically powered off.

MQTT Topics

Control Topic

cmd/RTU50E-H/{deviceId}/ctrl

Sends JSON commands to the device.

Status Topic

cmd/RTU50E-H/{deviceId}/st

Receives JSON status updates from the device.

Message Format

All MQTT payloads are JSON-formatted strings:

{
  "header": {
    "msg_id": "1",
    "cloud_msg_type": "0x1"
  },
  "body": {
    // Message-specific fields
  }
}

Common Command Codes

Code

Command

Body Fields

0x11

Set DHW Temperature

dhwSetTempH, dhwSetTempL

0x21

Set Operation Mode

dhwOperationSetting

0x31

Set Power

power

See MQTT Protocol for full command details.