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 |
|
0x21 |
Set Operation Mode |
|
0x31 |
Set Power |
|
See MQTT Protocol for full command details.