Koenkk / Koenkk/zigbee2mqtt

ZG-105NTH (Excellux): probe_temperature expose missing device_class/state_class in HA discovery

Open
#32,615 1 comment 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?

On the Excellux ZG-105NTH (temperature/humidity sensor with external probe), the probe_temperature expose is published to Home Assistant MQTT discovery without device_class and state_class. The regular temperature expose on the same device includes both properties. As a result, Home Assistant does not offer a "Show in statistics" option for probe_temperature, and the Statistics Graph Card shows "No statistics found" for it. (But it works for the temperature sensor.)

Observed discovery payloads (same device, captured via MQTT Explorer, same Z2M restart):

temperature (includes both properties):

json
{
  "device_class": "temperature",
  "state_class": "measurement",
  "unit_of_measurement": "°C",
  "value_template": "{{ value_json.temperature }}",
  ...
}

probe_temperature (both properties absent):

json
{
  "unit_of_measurement": "°C",
  "value_template": "{{ value_json[\"probe_temperature\"] }}",
  ...
}
Applied the following per-device override in configuration.yaml for confirmation:
yaml
devices:
  'id-of-device:
    homeassistant:
      probe_temperature:
        device_class: temperature
        state_class: measurement

After restarting Zigbee2MQTT, the discovery payload for probe_temperature included the added properties, and Home Assistant began recording Long-Term Statistics for the entity within the next compilation cycle. No other changes were made.

What did you expect to happen?

Expected to be able to use statistics in Home Assistant for both temperature and probe_temperature

How to reproduce it (minimal and precise)

Compare payloads for discovery messages between temperature and probe_temperature (same device).

Zigbee2MQTT version

2.12.1

Adapter firmware version

2026010601

Adapter

Sonoff ZBDongle-E (Ember)

Setup

Zigbee2MQTT version: 2.12.1
Device: Excellux ZG-105NTH ("Temperature and humidity sensor with probe")
Zigbee model: Excellux NTCHT01
IEEE OUI: Telink Semiconductor (Taipei) Co. Ltd.
Firmware ID: 2026010601
Adapter: Sonoff ZBDongle-E (Ember)
Support status: Supported (native)

Device database.db entry

No response

Debug log

No response

Notes

I can see the exact same issue with a second device I bought at the same time (same model).

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 Excellux NTCHT01 device definition and the Home Assistant MQTT discovery generation for the probe_temperature expose. Compare its metadata with the regular temperature expose and verify the generated discovery payload includes device_class: temperature and state_class: measurement, while preserving the reported probe value template.

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
Mostly clear
Newbie friendliness
66/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.