Skip to content

Bump zha-quirks to 2.4.0 - #993

Merged
TheJulianJES merged 2 commits into
zigpy:devfrom
puddly:puddly/zha-quirks-bump-20261028
Oct 28, 2026
Merged

TheJulianJES merged 2 commits into
zigpy:devfrom
puddly:puddly/zha-quirks-bump-20261028

Conversation

@puddly

@puddly puddly commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Copilot AI balanced review requested due to automatic review settings October 28, 2026 21:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues block the zha-quirks 2.4.0 dependency update and accompanying device snapshot refresh.

No open issues 🎉

What changed in this PR

Updates ZHA’s test dependency to zha-quirks 2.4.0 and refreshes device diagnostic snapshots to reflect upstream device support and metadata changes.

Changes:

  • Raises the minimum quirks version, updates locked artifacts, and aligns the tagless fallback version to 2.4.0.
  • Refreshes snapshots for newly recognized devices and additional controls and sensors.
  • Records revised cluster mappings, entity metadata, and removal of unsupported entities.
File Description
uv.lock Locks zha-quirks 2.4.0 and updates dependency constraints.
tests/​data/​devices/​tze2841000000-3yp57tby-ts0601-0x0000006b.json Records thermostat support and configuration entities.
tests/​data/​devices/​tze2841000000-3mzb0sdz-ts0601-0x0000006b.json Records cover controls and limit-setting buttons.
tests/​data/​devices/​tze284-0ints6wl-ts0601-0x00000050.json Adds environmental sensors and calibration settings.
tests/​data/​devices/​tze200-f1pvdgoh-ts0601.json Records motion, battery, and illuminance support.
tests/​data/​devices/​tze200-f1pvdgoh-ts0601-0x00003102.json Records quirk recognition and illuminance support.
tests/​data/​devices/​tze200-a1ovdobn-ts0601-0x00000040.json Records dimmable-light support.
tests/​data/​devices/​tz3290-qazgdsae-ts1201-0x00000043.json Records infrared-blaster quirk and cluster mappings.
tests/​data/​devices/​tz3218-hdc8bbha-ts000f-0x00000080.json Adds power-on and external-switch settings.
tests/​data/​devices/​tz3210-tgvtvdoc-ts0207-0x00000043.json Corrects light-intensity sensor device classes.
tests/​data/​devices/​tz3210-mldzab8w-ts130f-0x00000041.json Records cover quirk and manufacturer-cluster mappings.
tests/​data/​devices/​tz3040-bb6xaihh-ts0202-0x00000048.json Updates the matched motion-sensor quirk.
tests/​data/​devices/​tz3000-tgddllx4-ts0001.json Updates quirk identity and exposed plug features.
tests/​data/​devices/​tz3000-mkhkxx1p-ts0001-0x00000048.json Adds backlight and power-on settings.
tests/​data/​devices/​tz3000-kqvb5akv-ts0001-0x0000004a.json Adds a power-on setting.
tests/​data/​devices/​tz3000-icoxotza-ts0726-0x00000048.json Records quirk recognition.
tests/​data/​devices/​tz3000-fa9mlvja-ts0041-0x00000048.json Records remote mapping and removes extra entities.
tests/​data/​devices/​tz3000-ajsypttg-ts0041-0x00000040.json Records remote classification and removes the switch entity.
tests/​data/​devices/​third-reality-inc-3rpl01084z-0x00000028.json Updates the radar quirk module path.
tests/​data/​devices/​sonoff-trv-zbt-0x00001009.json Adds thermostat mode and configuration controls.
tests/​data/​devices/​sonoff-dongle-lmg21-zbrouter.json Records router recognition and removes lighting entities.
tests/​data/​devices/​shelly-presence-0x01096300.json Adds a light-level sensor.
tests/​data/​devices/​securifi-ltd-unk-model.json Identifies Peanut Plug and removes unsupported measurements.
tests/​data/​devices/​securifi-ltd-none-0x00000000.json Identifies Peanut Plug and removes unsupported measurements.
tests/​data/​devices/​schneider-electric-wde002497-0x01004200.json Recognizes the thermostat’s Off status.
tests/​data/​devices/​schneider-electric-puck-dimmer-1.json Adds timing and dimmer-mode settings.
tests/​data/​devices/​schneider-electric-eko07259-0x01001d00.json Adds Off to thermostat status options.
tests/​data/​devices/​schneider-electric-ch10ax-switch-1-0x020a08ff.json Adds timing, switch-action, and indication settings.
tests/​data/​devices/​schneider-electric-ch-dimmer-1.json Adds dimmer timing and switch configuration.
tests/​data/​devices/​philips-915005987101-0x01000804.json Identifies the Hue Signe lamp and its custom cluster.
tests/​data/​devices/​namron-as-4512793-0x0000001d.json Records remote quirk and private-cluster mapping.
tests/​data/​devices/​inovelli-vzm36.json Adds a keep-alive cluster.
tests/​data/​devices/​inovelli-vzm35-sn-0x02020107.json Adds a keep-alive cluster.
tests/​data/​devices/​inovelli-vzm32-sn-0x0103000a.json Adds a keep-alive cluster.
tests/​data/​devices/​inovelli-vzm31-sn-0x01020212.json Adds a keep-alive cluster.
tests/​data/​devices/​inovelli-vzm30-sn.json Adds a keep-alive cluster.
tests/​data/​devices/​inovelli-vzm30-sn-0x01100100.json Adds a keep-alive cluster.
tests/​data/​devices/​innr-sp-242-0x17173685.json Records plug recognition and removes the level cluster.
tests/​data/​devices/​innr-sp-240.json Removes the level cluster.
tests/​data/​devices/​innr-sp-240-0x19223685.json Removes the level cluster.
tests/​data/​devices/​innr-sp-240-0x191e3685.json Removes the level cluster.
tests/​data/​devices/​hobeian-zg-102zm.json Adds contact, vibration, and sensitivity entities.
tests/​data/​devices/​heiman-s1-tl-0x00000010.json Adds smoke diagnostics and controls; uses basic siren support.
tests/​data/​devices/​frient-a-s-splzb-141-0x00020009.json Uses whole-degree device-temperature reporting.
tests/​data/​devices/​digi-xbee3.json Updates endpoint profile and device-type interpretation.
tests/​data/​devices/​ctm-lyng-tavlerele-25a-0x10006a30.json Adds relay diagnostics and custom-cluster mappings.
tests/​data/​devices/​ctm-lyng-mkomfy-0x0a006a30.json Adds cooktop status, alarm, and diagnostic sensors.
tests/​data/​devices/​ctm-lyng-ax-valve-controller-0x0000002a.json Updates controller classification and leak/power sensors.
tests/​data/​devices/​centralite-3300-0x1f075310.json Records thermostat quirk recognition.
tests/​data/​devices/​bosch-rbsh-mms-zb-eu.json Updates the relay quirk module path.
tests/​data/​devices/​bosch-rbsh-mms-zb-eu-0x11136760.json Updates the relay quirk module path.
tests/​data/​devices/​aqara-lumi-sensor-occupy-agl8-0x0000412a.json Identifies FP300 and adds motion/occupancy entities.
tests/​data/​devices/​aqara-lumi-sensor-occupy-agl8-0x00003a29.json Identifies FP300 and adds motion/occupancy entities.
tests/​data/​devices/​aqara-lumi-sensor-occupy-agl8-0x00003422.json Identifies FP300 and adds motion/occupancy entities.
tests/​data/​devices/​aqara-lumi-sensor-ht-agl001-0x00001029.json Identifies W100 and maps its custom cluster.
tests/​data/​devices/​aqara-aqara-feeder-acn001-0x00002621.json Records migrated feeder quirk, controls, and sensors.
pyproject.toml Raises quirks minimum and fallback version to 2.4.0.

Review effort: Balanced

@puddly

puddly commented Oct 28, 2026

Copy link
Copy Markdown
Member Author

@zigpy-review-bot Look at the changed diagnostics and see if anything looks odd.

One thing stands out: aqara-aqara-feeder-acn001-0x00002621.json: why is "manufacturer": null,?

@codecov

codecov Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.48%. Comparing base (d60052e) to head (d227da1).
⚠️ Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #993      +/-   ##
==========================================
- Coverage   97.58%   97.48%   -0.10%     
==========================================
  Files          61       61              
  Lines       10870    10870              
==========================================
- Hits        10607    10597      -10     
- Misses        263      273      +10     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@zigpy-review-bot

zigpy-review-bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

The feeder's "manufacturer": null is expected with the new v2 quirk, and I don't see anything else odd in the changed diagnostics.

Why manufacturer is null

  • The feeder was migrated to quirks v2 in Migrate Aqara pet feeder ACN001 to quirks v2 zha-device-handlers#5296, which is in 2.4.0. Its builder is QuirkBuilder(None, "aqara.feeder.acn001"), with the comment "The device does not provide a manufacturer during the interview". So the device itself reports no manufacturer, and the new quirk matches on model only.
  • The old v1 quirk had MANUFACTURER: "Aqara" in its replacement, which overwrote the missing value, hence "manufacturer": "Aqara" before. The v2 builder doesn't set it; it only sets friendly_manufacturer, which is still "Aqara" in the diagnostic. The quirk_class change to (None / aqara.feeder.acn001) is the same effect.
  • So the new value is the device's real, unpatched state. The only side effect is that anything reading the raw device.manufacturer now sees null instead of "Aqara"; friendly_manufacturer still carries the name. I didn't check how the HA device registry entry is populated for such devices, so that's the one place worth a look if it matters.

The rest of the diff

  • pyproject.toml / uv.lock bump zha-quirks to >=2.4.0. All 57 changed files are tests/data/devices/*.json.
  • 32 files go from quirk_applied: false / zigpy.device.ZigbeeDevice to an applied quirk, with new entities where the quirk adds them; the Aqara feeder gains the quirk's new entities too (error detected, feed button, portion weight, serving size, feeding mode).
  • Several quirk classes are only renamed or moved (tuya.ts0001_switch → tuya.builder, bosch.relay_rbsh-mms-zb-eu → relay_rbsh_mms_zb_eu, thirdreality.60g_radar → radar_60g), and the Schneider NHPB/SWITCH/1 device moves from dimmers to switches.
  • I only skimmed the entity-level changes outside the feeder and didn't diff them line by line.

@TheJulianJES

This comment was marked as resolved.

@zigpy-review-bot

This comment was marked as resolved.

Comment thread pyproject.toml Resolved

@TheJulianJES TheJulianJES left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage decrease seems to be expected: from_quirk shim + old endpoint and targets_cluster are no longer used by quirks (and must have no test coverage then).

@TheJulianJES
TheJulianJES merged commit c048c4a into zigpy:dev Oct 28, 2026
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants