Koenkk / Koenkk/zigbee2mqtt

[TS130F (MS-108ZR) / _TZ3000_1dd0d5yi] ???

Open
#32,610 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

What happened?

TS130F / MS-108ZR - Unable to write moesCalibrationTime (INVALID_DATA_TYPE)

What happened?

I can read moesCalibrationTime successfully on my Moes MS-108ZR (TS130F), but any write operation fails with INVALID_DATA_TYPE.

This used to work a few weeks ago.

Environment:

  • Zigbee2MQTT: 2.12.1
  • Home Assistant: 2026.7.2

Device:

  • Moes MS-108ZR
  • TS130F

Read works:

Read result:
{"moesCalibrationTime":220}

Write fails:

closuresWindowCovering.write({"moesCalibrationTime":220})

Result:
Status 'INVALID_DATA_TYPE'

I also tested:

  • 150
  • 180
  • 220

All fail with the same error.

The issue occurs:

  • From Exposes (Calibration time)
  • From MQTT
  • From Developer Console

Reading always works.
Writing always fails.

Additional information:

In Developer Console the attribute is shown as:

moesCalibrationTime (ENUM8)

The device correctly reports calibration_time values such as 19, 22 and 31 seconds.

The problem affects multiple TS130F devices.

Expected behavior:

Calibration time should be writable as it was in previous versions.

LOG:
Read result:

[20/07/2026 11:53:59] Read result of 'closuresWindowCovering':
{"moesCalibrationTime":220}

Write result:

[20/07/2026 12:00:32]
closuresWindowCovering.write({"moesCalibrationTime":220})
failed (Status 'INVALID_DATA_TYPE')

What did you expect to happen?

No response

How to reproduce it (minimal and precise)

No response

Zigbee2MQTT version

2.12.1 (unknown)

Adapter firmware version

{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20240716,"transportrev":2}

Adapter

ZStack3x0

Setup

os: #1 SMP PREEMPT_DYNAMIC Wed Jul 1 07:35:33 UTC 2026 - 6.18.37-haos - x64
node: v22.23.0
ha: true

Device database.db entry

No response

Debug log

No response

Notes
Device

definition: MS-108ZR - Moes (v0.0.0)
software_build_id: undefined
date_code: ``
endpoints:

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

time: Mon Jul 20 2026 12:14:02 GMT+0200 (heure d’été d’Europe centrale)
os.load_average: 0, 0, 0
os.memory_percent: 25.0002
process.memory_percent: 2.9723
process.uptime_sec: 13205

{"leave_count":0,"messages":233,"messages_per_sec":0.0178,"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 reproducing the failure through Developer Console with closuresWindowCovering.write and compare it with reads from Exposes and MQTT. Trace how moesCalibrationTime is handled as an ENUM8 for the MS-108ZR definition. Done means valid calibration-time writes succeed on the affected TS130F devices without INVALID_DATA_TYPE.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.