Skip to content

temperature_sensor (Thread): Feature ID 5001 mapped to wrong cluster 0x0406 instead of 0x0402 #35

@herrniffler

Description

@herrniffler

Checklist

  • Checked the issue tracker for similar issues to ensure this is not a duplicate
  • Read the documentation to confirm the issue is not addressed there and your configuration is set correctly
  • Tested with the latest version to ensure the issue hasn't been fixed

How often does this bug occurs?

always

Expected behavior

Calling low_code_feature_update_to_system() with LOW_CODE_FEATURE_ID_TEMPERATURE_SENSOR_VALUE (5001) writes to Cluster 0x0402 (TemperatureMeasurement), so a temperature entity appears in Matter controllers like Home Assistant.

Actual behavior (suspected bug)

The value is written to Cluster 0x0406 (OccupancySensing) which does not exist in the data model, resulting in:

E esp_matter_core: Cluster cannot be NULL.
E esp_matter_attribute: Could not find Endpoint 0x0001's Cluster 0x00000406's Attribute 0x00000000

No temperature entity appears in Home Assistant. The data_model_thread.zap and generated data_model.bin correctly contain TemperatureMeasurement (0x0402), so the bug is in the pre-built binary (low_code_lp_core_maincore.bin, Dec 15 2025) which incorrectly maps Feature ID 5001 to Cluster 0x0406.

Hardware: ESP32-C6-DevKitM-1, Firmware: 1.1.0-b3023eed, Connection: Thread, Matter Controller: Home Assistant OHF Matter Server. Note: socket product works correctly over Thread.

Error logs or terminal output

app_driver: Fake temperature: 2743 (x100 C)
E esp_matter_core: Cluster cannot be NULL.
E esp_matter_core: Attribute cannot be NULL
E esp_matter_core: Cluster cannot be NULL.
E esp_matter_attribute: Could not find Endpoint 0x0001's Cluster 0x00000406's Attribute 0x00000000
W esp_matter_attribute: Endpoint 0x0001's Cluster 0x00000406's Attribute 0x00000000 is <invalid type: 0>

Steps to reproduce the behavior

  1. Select product: temperature_sensor, chip: ESP32-C6: Thread
  2. Click Prepare Device
  3. Click Upload Configuration
  4. Click Upload Code (with LOW_CODE_FEATURE_ID_TEMPERATURE_SENSOR_VALUE in app_driver.cpp)
  5. Commission device via Matter (Home Assistant)
  6. Wait 10 seconds for the timer callback to fire
  7. See error in console - cluster 0x0406 instead of 0x0402

Project release version

1.1.0-b3023eed (main branch, latest)

System architecture

Intel/AMD 64-bit (modern PC, older Mac)

Operating system

Windows

Operating system version

Windows 11

Shell

ZSH

Additional context

  • The data_model_thread.zap correctly defines TemperatureMeasurement (Cluster 1026 = 0x0402) on Endpoint 1 with device type MA-tempsensor (code 770)
  • The generated data_model.json and data_model.matter also correctly contain TemperatureMeasurement
  • LOW_CODE_FEATURE_ID_TEMPERATURE_SENSOR_VALUE = 5001 in low_code.h
  • LOW_CODE_FEATURE_ID_OCCUPANCY_SENSOR_VALUE = 6001 in low_code.h
  • The bug maps 5001 -> 0x0406 (Occupancy) instead of 0x0402 (Temperature)
  • The socket product works correctly over Thread (ON/OFF confirmed in Home Assistant)
  • Matter controller: Home Assistant with OHF Matter Server (Beta)
  • OTBR: Home Assistant OpenThread Border Router (ha-thread-1cea, Channel 15)
  • Subcore compiled: Dec 19 2025 09:08:36
  • Maincore compiled: Dec 15 2025 10:38:58

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions