Koenkk / Koenkk/zigbee2mqtt

Tuya M9Pro (_TZE284_iwyqtclw): screen stays on after weather update when show_screen is set to motion

Open
#32,850 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

problem
Dominant language
TypeScript
Stars
15.7k
Forks
2k
Avg merge
18h 55m
Merged PRs (30d)
35

Description

What happened?

I am using a Tuya M9Pro (TS0601, manufacturer _TZE284_iwyqtclw).

When show_screen is set to motion, the display normally turns off when no motion is detected.

However, after weather data is sent to the device using the native Zigbee2MQTT M9Pro implementation, the screen stays on continuously and no longer turns off as expected.

The issue only appears after weather synchronization. Without sending weather data, show_screen: motion works correctly.

I currently use an external converter as a workaround. It replaces the native weather synchronization with a custom tuyaWeatherSync payload. With this workaround, weather is displayed and the screen continues to turn off normally.

The relevant workaround is TS0601_safe_weather_sync in the attached external converter.

Device: M9Pro
Model ID: TS0601
Manufacturer: _TZE284_iwyqtclw

M9Pro.js

What did you expect to happen?

Sending/updating weather data should not change the configured screen behavior. With show_screen set to motion, the screen should still turn off after no motion is detected.

How to reproduce it (minimal and precise)
  1. Use the native Zigbee2MQTT definition for M9Pro _TZE284_iwyqtclw (no external converter).
  2. Set show_screen to motion.
  3. Enable weather display.
  4. Send/update weather data (temperature_1, condition_1, etc.).
  5. Move away from the panel and wait for the normal screen timeout.
  6. The display remains on indefinitely instead of turning off.

If weather data is not sent, motion-controlled screen blanking works normally.

Using my external converter with a custom TS0601_safe_weather_sync implementation also makes the screen blank normally after weather has been sent.

Zigbee2MQTT version

2.13.0

Adapter firmware version

20260310

Adapter

SMLIGHT SLZB-06P7 (CC2652P7), Ethernet/TCP

Setup

Zigbee2MQTT Home Assistant add-on running on Home Assistant OS x86-64 in a virtual machine on Proxmox.

Host CPU: AMD Ryzen 9 7950X
Home Assistant OS kernel: 6.18.39-haos
Zigbee2MQTT version: 2.13.0
zigbee-herdsman-converters: 26.90.0
zigbee-herdsman: 10.8.0

Coordinator: SMLIGHT SLZB-06P7
Radio: Texas Instruments CC2652P7
Adapter: ZStack3x0 over Ethernet/TCP
Coordinator revision reported by Zigbee2MQTT: 20260310

Affected device:
Tuya M9Pro
Model ID: TS0601
Manufacturer: _TZE284_iwyqtclw

The issue is reproducible with the native Zigbee2MQTT device definition. I currently use an external converter only as a workaround for the weather synchronization issue.

Device database.db entry

No response

Debug log

No response

Notes

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the native M9Pro weather synchronization with the attached M9Pro.js converter, especially TS0601_safe_weather_sync. Reproduce the issue with show_screen set to motion, then verify that weather updates leave motion-controlled screen blanking functional without relying on the external converter.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, typescript
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.