ZG-105NTH (Excellux): probe_temperature expose missing device_class/state_class in HA discovery
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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