feat: add core:IntrusionDetectedState for Somfy IntelliTAG air#2142
Merged
Conversation
Adds the somfy_europe cloud IntelliTAG air setup as a fixture and regenerates enums from it, surfacing the missing core:IntrusionDetectedState exposed by io:SomfyIDEOIIntrusionSensor (ContactSensor). Also picks up core:VibrationLevelThresholdState, setVibrationLevelThreshold, and a few manufacturer-data attributes from the same setup. Closes #2141
iMicknl
added a commit
that referenced
this pull request
Jun 21, 2026
## Problem Changelog entries render the Conventional-Commit prefix that's already implied by the section — e.g. under 🚀 New Features: > - **feat:** add core:IntrusionDetectedState for Somfy IntelliTAG air (#2142) The `feat:` is redundant ("doubled") with the section heading. ## Change The prefix can't simply be dropped from the PR title — it's the signal the autolabeler uses to sort entries into sections. Instead, strip it from the *rendered* entry via a Release Drafter `replacers` rule: ```yaml replacers: - search: '/\* (build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(.+?\))?!?:\s*/g' replace: '* ' ``` Now `feat: add X` renders as `Add X` while the title keeps driving labeling/sectioning. Also documents this in AGENTS.md (keep the prefix in titles; it's stripped on publish) and drops two now-obvious comments from the workflow. Follow-up to #2143.
iMicknl
added a commit
that referenced
this pull request
Jun 21, 2026
## Why Now that #2144 strips the Conventional-Commit prefix, the summary becomes the first word the reader sees in the changelog. Conventional Commits' default lowercase summary renders as: > - add core:IntrusionDetectedState for Somfy IntelliTAG air (#2142) Capitalizing the summary gives the expected: > - Add core:IntrusionDetectedState for Somfy IntelliTAG air (#2142) ## Why a convention, not config Release Drafter `replacers` can find/replace text but **cannot transform case** (no callback / uppercase function), so forcing the capital via regex isn't possible. The only route is writing the title capitalized: `feat: Add X`. Documents this in AGENTS.md. Follow-up to #2143 / #2144.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #2141 — the
core:IntrusionDetectedStateenum was missing for Somfy IntelliTAG airContactSensordevices (io:SomfyIDEOIIntrusionSensor).Adds a real
somfy_europecloud setup containing all three IntelliTAG air device types as a test fixture, then regenerates the enums from it viautils/generate_enums.py.Changes
tests/fixtures/setup/setup_tahoma_intellitag.json(29 devices, somfy_europe cloud, HA-redacted).pyoverkiz/enums/state.pyCORE_INTRUSION_DETECTED = "core:IntrusionDetectedState"— the missing state from Missing core:IntrusionDetectedState enum for Somfy IntelliTAG air ContactSensor devices #2141CORE_VIBRATION_LEVEL_THRESHOLD = "core:VibrationLevelThresholdState"CORE_SUPPORTED_MANUFACTURER_PROCEDURES,CORE_SUPPORTED_READABLE_MANUFACTURER_DATA,IO_FEATURESattributespyoverkiz/enums/command.py:SET_VIBRATION_LEVEL_THRESHOLD = "setVibrationLevelThreshold"tests/test_client.py: added the fixture to thetest_get_setupparametrize list.Notes
definition.states, so it contributes nothing to enum generation.core:VibrationLevelThresholdStateas already present, but it wasn't — it's picked up here too.Testing
uv run pytest— 547 passed.Closes #2141