fashberg / WThermostatBeca

Open Source firmware replacement for Tuya Wifi Thermostate from Beca and Moes with Home Assistant Autodiscovery
331 stars 69 forks source link

Adding MYQ-HY09RF? #204

Closed Stoatwblr closed 8 months ago

Stoatwblr commented 1 year ago

I've picked up one of these beasties off Aliexpress and flashed it with Wthermostat

It seems to work ok (and be using the same standardised commandset) however temperatures are not being recorded so it's obviously just slightly different enough to trip things up

What information do you need?

Stoatwblr commented 1 year ago

Hopefully this helps

Current display: Set 07C, current 22C, Thu, Auto P1 (heating off)

warning: MCU: unknown;55 aa 00 07 00 08 68 02 00 04 00 00 00 01 warning: MCU: unknown;55 aa 00 07 00 08 69 02 00 04 00 00 00 0f warning: MCU: unknown;55 aa 00 07 00 05 6a 01 00 01 00 warning: MCU: unknown;55 aa 00 07 00 05 6b 01 00 01 01 warning: MCU: unknown;55 aa 00 07 00 05 6c 01 00 01 01 warning: MCU: unknown;55 aa 00 07 00 08 6e 02 00 04 00 00 00 0a warning: MCU: unknown;55 aa 00 07 00 08 72 02 00 04 00 00 00 1b warning: MCU: unknown;55 aa 00 07 00 08 73 02 00 04 00 00 00 05 warning: MCU: unknown;55 aa 00 07 00 05 74 04 00 01 00 warning: MCU: unknown;55 aa 00 07 00 05 75 04 00 01 00 warning: MCU: unknown;55 aa 00 07 00 05 76 04 00 01 00

time 15:00

notice: Ignoring, starts not with our topic 'BOILER/SWITCH' warning: MCU: unknown;55 aa 00 07 00 08 68 02 00 04 00 00 00 01 warning: MCU: unknown;55 aa 00 07 00 08 69 02 00 04 00 00 00 0f warning: MCU: unknown;55 aa 00 07 00 05 6a 01 00 01 00 warning: MCU: unknown;55 aa 00 07 00 05 6b 01 00 01 01 trace: Received MQTT callback: 'devices/logging'->'{"url":"http://192.168.178.219/things/logging","ip":"192.168.178.219","topic":"BOILER/SWITCH/stat/things/logging"}' notice: Ignoring, starts not with our topic 'BOILER/SWITCH' warning: MCU: unknown;55 aa 00 07 00 05 6c 01 00 01 01 warning: MCU: unknown;55 aa 00 07 00 08 6d 02 00 04 ff ff ff fb warning: MCU: unknown;55 aa 00 07 00 08 6e 02 00 04 00 00 00 0a warning: MCU: unknown;55 aa 00 07 00 08 6f 02 00 04 00 00 00 02 warning: MCU: unknown;55 aa 00 07 00 08 70 02 00 04 00 00 00 2d warning: MCU: unknown;55 aa 00 07 00 08 71 02 00 04 00 00 00 05 warning: MCU: unknown;55 aa 00 07 00 08 72 02 00 04 00 00 00 1b warning: MCU: unknown;55 aa 00 07 00 08 73 02 00 04 00 00 00 05 warning: MCU: unknown;55 aa 00 07 00 05 74 04 00 01 00 warning: MCU: unknown;55 aa 00 07 00 05 75 04 00 01 00 warning: MCU: unknown;55 aa 00 07 00 05 76 04 00 01 00 warning: MCU: unknown;55 aa 00 07 00 0d 77 00 00 09 05 00 15 09 00 07 90 1e 10 warning: MCU: unknown;55 aa 00 07 00 0d 78 00 00 09 15 02 0a 15 03 13 17 00 0f warning: MCU: unknown;55 aa 00 07 00 0d 79 00 00 09 08 00 15 0b 01 0a 0c 1e 0a warning: MCU: unknown;55 aa 00 07 00 0d 7a 00 00 09 0d 1f 0a 13 00 13 17 00 0f trace: Clock Recalc Timezone 1690470000

ionut-stefan commented 11 months ago

Hi,

Is there any chance of implementing this type of thermostat in the near future? I bought this one because I needed a battery-powered version.

The firmware uploads okay, but the log is full of MCU warnings. On the info page, I noticed that the temperatures are not being read correctly from the MCU. For example, a set temperature of 20 degrees is displayed as 100.

If this information helps:

I found another similar topic on the klausahrenberg/WThermostatBeca repository: https://github.com/klausahrenberg/WThermostatBeca/issues/84. I tried their firmware, and when I choose the Minco Heat MK70GB-H thermostat, the temperatures display correctly, but there are still a lot of errors.

Is there any possibility of implementing this thermostat in your code?

Thank you!

github-actions[bot] commented 8 months ago

Message to comment on stale issues. If none provided, will not mark issues stale

Stoatwblr commented 3 months ago

Long time, but I have a dpid set for this (also posted to Klaus git https://github.com/klausahrenberg/ )

This appears to be common across Hysen thermostats (Hy02/Hy08 in addition to Hy09)

These DPids are all emitted every couple of minutes (settable in the B menu on the panel - B5 0-30min, B6 3-30 seconds - default is 20 mins, DON'T change it if using batteries in the panel or they will drain quickly)

OR whenever the clock is updated by Homeassistant, or if the panel mode/temperature, etc is changed

There's what appears to be a heartbeat as well, this is using type 1C clock reports (I'm ignoring it)

Tuya:

0x01: Datapoint 1: switch (value: ON) - remote panel active (power led on wifi) 0x02: Datapoint 2: int value (value: 150) - target temperature Cx10, 0.5C step (1/70, but see user settable limits below) 0x03: Datapoint 3: int value (value: 215) - current temperature Cx10 0.5C step (readonly) 0x04: Datapoint 4: enum (value: 1) - Mode (0=Manual, 1=Auto, 2=Vacation, 3=Auto+override ("override" temperature will revert to Auto (schedule) at next Timer boundary ) 0x06: Datapoint 6: switch (value: OFF) - Panel child lock 0x0c: Datapoint 12: bitmask (value: 0) - UNKNOWN (readonly?) 0x65: Datapoint 101: switch (value: OFF) - UNKNOWN (readonly? 0x66: Datapoint 102: switch (value: OFF) - Heating relay (read only) 0x67: Datapoint 103: int value (value: 0) - UNKNOWN (readonly?) 0x68: Datapoint 104: int value (value: 3) - Vacation timer days 1/30 (will revert to auto after this period) 0x69: Datapoint 105: int value (value: 8) - Vacation temperature C 1/70 1C steps (within user settable limits) 0x6a: Datapoint 106: switch (value: OFF) - "A5" Overtemp protection (interlock with DPID 112) 0x6b: Datapoint 107: switch (value: ON) - "A6" Frost protection (interlock with DPID 113) 0x6c: Datapoint 108: switch (value: ON) - UNKNOWN (readonly?) 0x6d: Datapoint 109: int value (value: 0) - "A1" internal sensor offset temp Cx10 -9/+9 0.5C step 0x6e: Datapoint 110: int value (value: 15) - "A2" int sensor temp hysteresis Cx10 0.5/5 0.5C step 0x6f: Datapoint 111: int value (value: 5) - "A3" ext sensor temp hysteresis C 1/9 1C step (NOT FITTED on HY09) 0x70: Datapoint 112: int value (value: 40) - "A5" ext sensor overtemp threshold C 35/70 1C step (under 35 = disabled ()) 0x71: Datapoint 113: int value (value: 10) - "A6" int sensor frost protection temp C 1/10 1C step (Over 10 = disabled ()) 0x72: Datapoint 114: int value (value: 30) - "A8" Maximum user-settable tmperature C 20/70 1C step 0x73: Datapoint 115: int value (value: 5) - "A7" Minimum user-settable temperature C 1/10 1C steps 0x74: Datapoint 116: enum (value: 0) - "B4" Sensor state 0=N1(int sensor),1=N2(ext sensor),N3(int+ext sensor)(**) Overtemp protection disabled for sensor state 0,1 0x75: Datapoint 117: enum (value: 0) - "AA" Power off recovery: 0=resume 1=relay off 2=relay on 0x76: Datapoint 118: enum (value: 0) - "AB" Auto mode - 0=P1(5+2), 1=P2(6+1), 2=P3(7 days)

0x77: Datapoint 119: raw (value: 04.1E.14.08.00.0F.0B.1E.0F (9))

(*) Interlocks on panel, not on remote access 1a: Setting A5 on the panel under 35c (DPID 112) automatically toggles DPID 106 off and changes the display to "[--]" 1b: Setting A6 on the panel over 11C (DPID 113) automatically toggles DPID 107 off and changes display to "[--]" 1c: There is no such interlock on remote access. Temperatures can be set arbitrarily high/low and the protection toggled

(**) Detected and automatically set (readonly) on HY09, programmable on other models 2: DPid 116 is assumed from HY02 decoding (see next comment). It's not adjustable if no external sensor circuitry is installed (ie: could be used to interlock internal/external sensor viewability)

The original app has commands to adjust panel display contrast/viewing angle, which I haven't yet managed to replicate

The original app also reported low battery on the remote panel but (so far) I haven't worked out where this is reported I assumed it would be one of the unknown DPids but with the low battery icon flashing on the panel none of these have altered