Add STIPS IR Remote integration (climate platform) for stips.tech#168264
Open
hanyNaji wants to merge 60 commits intohome-assistant:devfrom
Open
Add STIPS IR Remote integration (climate platform) for stips.tech#168264hanyNaji wants to merge 60 commits intohome-assistant:devfrom
hanyNaji wants to merge 60 commits intohome-assistant:devfrom
Conversation
Contributor
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
Contributor
There was a problem hiding this comment.
This PR includes a brand folder inside the component. Brand assets should not be part of the core repository. Please refer to the brand images documentation for the correct approach.
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a new Home Assistant core integration (stips_iru1) for STIPS IR Remote with an initial climate-only scope, using STIPS cloud for setup/catalog discovery and local LAN HTTP for command dispatch.
Changes:
- Introduces config flow, constants, manifest, translations, and local HTTP helpers for STIPS IRU1.
- Implements
climateentities for protocol AC remotes and LearnedAc remotes. - Adds initial test coverage for setup forwarding, config flow, and climate helper utilities.
Reviewed changes
Copilot reviewed 12 out of 16 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/components/stips_iru1/test_init.py | Verifies config entry setup forwards only the climate platform. |
| tests/components/stips_iru1/test_config_flow.py | Covers basic config flow form display and successful entry creation. |
| tests/components/stips_iru1/test_climate_helpers.py | Unit-tests helper functions for mode/fan/swing and learned-signal selection. |
| homeassistant/components/stips_iru1/strings.json | Adds config flow strings and error/abort translations. |
| homeassistant/components/stips_iru1/manifest.json | Declares the new integration and its external dependency. |
| homeassistant/components/stips_iru1/local_http.py | Adds DNS/IP host candidate logic and live IP probing via /device_info. |
| homeassistant/components/stips_iru1/const.py | Defines integration constants and remote-type helpers. |
| homeassistant/components/stips_iru1/config_flow.py | Implements single-step cloud login and catalog download for setup. |
| homeassistant/components/stips_iru1/climate.py | Implements protocol AC + LearnedAc climate entities and LAN send logic. |
| homeassistant/components/stips_iru1/catalog.py | Wraps stips_api_bridge catalog helpers for use in core integration code. |
| homeassistant/components/stips_iru1/api.py | Wraps stips_api_bridge API client and error types. |
| homeassistant/components/stips_iru1/init.py | Registers devices and forwards entry setups/unloads for the integration. |
Remove bundled brand images and refactor local auth and availability handling for the stips_iru1 integration. Key changes: - Removed brand image assets (logo/icon PNGs). - Replace hardcoded local HTTP credentials and OAuth secrets with an optional _local_http_auth() hook; local creds removed from const.py. - Normalize DEFAULT_API_HOST and update manifest documentation URL. - Improve availability handling in climate and learned-AC entities: initialize from device_online, return actual availability, update _attr_available and write state when local calls succeed/fail, and tighten error messages when hosts are missing. - Use _local_http_auth() for local requests and strengthen JSON/content-type error handling when fetching device info. - Harden signal matching (skip invalid temp values) and adjust data types for HVAC/fan mode attributes (use lists instead of tuples where appropriate). - Config flow: tighten types, use FlowResult, include api_host in unique_id to allow same username across hosts, and omit saved password from created entry data. - Add/adjust tests for config flow (new tests module and updated expectations) and add stips-api-bridge to license exceptions. These changes remove hardcoded secrets, make availability accurate, improve robustness against malformed responses, and ensure config entries are unique per API host.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.
Breaking change
Proposed change
This PR adds a new built-in Home Assistant integration for STIPS IR Remote (
stips_iru1) with an initial climate-only scope.It uses the STIPS cloud during config flow for account and catalog discovery, then sends climate commands locally over LAN to the IRU1 device.
Scope of this PR:
climateType of change
Additional information
stips_iru1integration.Checklist
python3 -m script.hassfestrequirements_all.txt