Koenkk / Koenkk/zigbee2mqtt

Manhot BL82-TYZ1 curtain state does not match position in home assistant, no option to invert_cover

Open
#32,382 2 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?

The state of the curtain (open, close, stop) is 0 = open, 100 = closed, while home assistant recognises the position as the opposite.

This leads to a very frustrating interaction in home assistant, where the open and close buttons get disabled when the curtain is closed and open respectively:

Image

so you can only press "open" when the curtain is already open, producing no movement at all.

This seems to be a disagreement between vendor and HA, not a bug, but it leads to people needing to create additional templates just to control their curtains, and is very unnecessary.

There are a lot of posts about this issue, with some people suggesting setting "invert_cover" to true, but this specific converter (if i understand z2m correctly) does not have that option exposed. Manually setting it in yaml lead to the motor being bricked untill i disassembled it and pulled the battery.

What did you expect to happen?

I need the ability to configure the motor to home assistant standards - with 0% being closed - making the controls work as intended.

How to reproduce it (minimal and precise)
  • Add the Manhot BL82-TYZ1 curtain to home assistant;
  • Try to use the provided controls.
Zigbee2MQTT version

2.12.0 (unknown)

Adapter firmware version

{"build":0,"ezsp":13,"major":7,"minor":4,"patch":4,"revision":"7.4.4 [GA]","special":0,"type":170}

Adapter

EmberZNet

Setup

os: #4 SMP Fri Jun 7 11:12:10 CST 2024 - 4.19.232-bigtree-cb2 - arm64
node: v22.22.2
ha: true

Device database.db entry

No response

Debug log

No response

Notes
Device

definition: BL82-TYZ1 - Manhot (v0.0.0)
software_build_id: undefined
date_code: ``
endpoints:

{"1":{"bindings":[],"clusters":{"input":["genGroups","genScenes","manuSpecificTuya","genBasic","60672"],"output":["genOta","genTime"]},"configured_reportings":[],"scenes":[]}}
Health

time: Tue Jun 23 2026 13:28:46 GMT+0500 (Екатеринбург, стандартное время)
os.load_average: 0.41, 0.5, 0.5
os.memory_percent: 63.5478
process.memory_percent: 5.1296
process.uptime_sec: 9055

{"leave_count":0,"messages":45,"messages_per_sec":0.0876,"network_address_changes":0}

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 locating the TypeScript converter for the Manhot BL82-TYZ1 device definition and inspect how its curtain state and position are mapped. Check how the converter exposes cover options, then verify that inversion can be configured safely and that Home Assistant controls report 0% closed and 100% open without reproducing the motor-bricking behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
embedded-iot
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.