Skip to content

Value sensors display 'off' instead of the reading — SupportsSensorValue missing from creation props #56

Description

@simons-plugins

Reported by CliveS (with his Claude doing the write-up) after Thread-validating the plugin with an Aqara FP300 presence multi-sensor — commissioning via the share model worked first time (~10s join, all four endpoints, battery fan-out, live attribute reports).

Bug

Value sensors (temperature, humidity, illuminance, etc.) hold readings correctly in sensorValue, but the Indigo device list shows "off" instead of the reading:

"deviceTypeId": "matterTemperatureSensor",
"displayStateId": "onOffState",
"displayStateValUi": "off",
"states": { "batteryLevel": 100, "onOffState": false, "sensorValue": 24.0 },
"supportsOnState": true,
"supportsSensorValue": false

Cause

Same as the colour lesson (HANDOVER 2026-06-09 item 4): Indigo applies Supports* capabilities via creation props, not Devices.xml statics, for API-created devices. It was caught for locks (IsLockSubType), colour (SupportsColor) and meters (SupportsPowerMeter/SupportsEnergyMeter), but the sensor family slipped through — _SensorHandler.create_indigo_devices passes no SupportsSensorValue/SupportsOnState, so Indigo defaults to SupportsOnState=True and derives displayStateId=onOffState. The XML <UiDisplayStateId>sensorValue</UiDisplayStateId> is ignored; the sensorValue that does populate is the XML-declared custom state shadowing the disabled built-in.

Affected types (display = sensorValue): matterTemperatureSensor, matterHumiditySensor, matterIlluminanceSensor, matterPressureSensor, matterFlowSensor, matterAirQualitySensor, matterCO2Sensor, matterPM25Sensor, matterTVOCSensor. Binary sensors (motion, contact, smoke/CO) display correctly via the SupportsOnState default but should set it explicitly.

Fix

Follow-ups (not this fix)

  • matterButton (display should be lastButtonEvent) and the air-quality string display (airQuality) depend on whether UiDisplayStateId can ever apply to API-created sensor devices — needs hardware testing.
  • Thread can be promoted from "expected to work" to validated (Aqara FP300, matter-server 0.6.8).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions