Rinnai Enviroflo Heat Pump Hot Water Cylinder Tuya Mapping

Wasn’t sure where to post this, but thought I should share for anyone needing the mappings

Rinnai DemandDuo Hybrid (EHPG215VM / EHPG265VM / EHPG285VM / EHPG300VM)
LocalTuya DPS mapping — Tuya category “rs”, protocol 3.4
Mapping verified 1:1 against the Rinnai app’s “Status Query” screen.

================================================================================
CONTROLS

DPS Type Description


1 bool Power (on/off)
2 enum Mode — values: ECO | HYBRID | ELECTRIC | STANDARD | VACATION
5 int Set Temperature (°C, range 15–70, step 1)
12 bool Child Lock

================================================================================
STATUS / TELEMETRY

DPS Type Description App label


3 int °C Tank Temperature (cloud copy of 103) (cloud-spec only, not in app)
8 enum Work State (standby/heating/warm) (not in app status query)
18 bitmap Fault code (E01–E12, see below) (not in app status query)
101 int °C Ambient Temperature Ambient Temp
102 int °C Compressor Discharge Temperature Discharge Temp
103 int °C Tank Temperature Tank Temp
104 int °C Evaporator Temperature Evaporator Temp
105 int °C Suction Line Temperature Suction Temp
106 bool High Pressure Switch (closed=ok) High Pressure Switch
107 int EEV Opening (steps; 480=wide open) EEV Opening
108 bool Fan running FAN
109 bool Compressor running Compressor
110 bool 4-way Valve (reversing valve) 4-way Valve
111 bool Defrost cycle active Defrost
112 bool Electric Element drawing Electrical Element
113 bool Disinfection (anti-Legionella) Disinfection
114 int V Mains Voltage Mains Voltage
115 bool PV Signal (solar diversion input) PV Signal
116 bool Off-peak Tariff signal Off-peak Tariff
117 bool One-shot Boost active One-shot Boost
118 int h Compressor Operation Hours Comp Operation Hours
119 int h Unit On Hours Unit On Hours
120 string Software Version (e.g. “V2.2”) Software version

================================================================================
FAULT BITMAP (DPS 18)

Bit Code Meaning


0 E01 Ambient temp sensor fault
1 E02 Upper tank temp sensor fault
2 E03 Discharge temp sensor fault
3 E04 Evaporator temp sensor fault
4 E05 Suction temp sensor fault
5 E06 Lower tank temp sensor fault
6 E07 High-pressure protection
7 E08 Discharge temp too high
8 E09 Low-voltage protection
9 E10 High-voltage protection
10 E11 Fan fault
11 E12 Communication fault

================================================================================
NOTES

  • The Tuya cloud spec only exposes DPS 1, 3, 5, 8, 12, 18 + a temp_current
    reading — no mode, no telemetry. Everything in the 100-block is local-only,
    which is why LocalTuya (or another local-protocol client) is required to
    see and control it.

  • DPS 3 and DPS 103 are the same physical tank reading exposed via two
    different DPS IDs. DPS 103 is what the app shows as “Tank Temp”.

  • Mode values are sent as uppercase strings exactly as listed. Verify the
    literal value by reading DPS 2 while the unit is in the target mode at
    the physical control panel — values may differ on other Rinnai SKUs.

  • DPS 107 (EEV Opening) is in expansion-valve steps, not watts. It sits at
    ~480 (wide open / idle) and modulates lower while the compressor runs.

  • DPS 114 reads single-digit jitter around mains voltage (e.g. 232–239 V on
    NZ supply) — useful as a “mains is alive” signal.

Thanks for posting. Im using most of these in homeseer at the moment, but wanted to share a fault condition that occurred without triggering the fault status flag.

Over the last month the unit was running on the element (despite being set in ECO mode) and I didnt detect it until the bill came in. I was watching the fault status flag for anthing > 0 and it never triggered.

When the Rinnai tech diagnosed the fault it turned out to be the ambient air temp was above the threshold for safe compressor usage (< -7deg or > 45deg) - it was reading 55deg at the time. Turns out the fault status bit 0 doesnt detect this type of issue (most likely just open circuit on the sensor cable)

Ive now modified my logic to test for more bad conditions (eg any of the temp readings not changing for more than 24hrs, electrical element running for more than 3hrs etc)

Hope thats of use to others.