Skip to content

Add STIPS IR Remote integration (climate platform) for stips.tech#168264

Open
hanyNaji wants to merge 60 commits intohome-assistant:devfrom
hanyNaji:stips-ir-remote-climate
Open

Add STIPS IR Remote integration (climate platform) for stips.tech#168264
hanyNaji wants to merge 60 commits intohome-assistant:devfrom
hanyNaji:stips-ir-remote-climate

Conversation

@hanyNaji
Copy link
Copy Markdown

@hanyNaji hanyNaji commented Apr 15, 2026

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:

  • single platform: climate
  • config flow included
  • support for protocol AC remotes and learned AC remotes
  • local host resolution for command dispatch

Type of change

  • New integration (thank you!)
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (which adds functionality to an existing integration)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests
  • Dependency upgrade
  • Deprecation (breaking change to happen in the future)

Additional information

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass.
  • There is no commented out code in this PR.
  • I have followed the development checklist.
  • I have followed the perfect PR recommendations.
  • The code has been formatted using Ruff.
  • Tests have been added to verify that the new code works.
  • Documentation added/updated for www.home-assistant.io
  • The manifest file has all fields filled out correctly.
  • Updated and included derived files by running: python3 -m script.hassfest
  • New or updated dependencies have been added to requirements_all.txt

Copilot AI review requested due to automatic review settings April 15, 2026 02:57
Copy link
Copy Markdown
Contributor

@home-assistant home-assistant Bot left a comment

Choose a reason for hiding this comment

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

Hi @hanyNaji

It seems you haven't yet signed a CLA. Please do so here.

Once you do that we will be able to review and accept this pull request.

Thanks!

@home-assistant
Copy link
Copy Markdown
Contributor

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

Copy link
Copy Markdown
Contributor

@home-assistant home-assistant Bot left a comment

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 climate entities 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.

Comment thread homeassistant/components/stips_iru1/const.py Outdated
Comment thread homeassistant/components/stips_iru1/const.py Outdated
Comment thread homeassistant/components/stips_iru1/const.py Outdated
Comment thread homeassistant/components/stips_iru1/config_flow.py Outdated
Comment thread homeassistant/components/stips_iru1/config_flow.py
Comment thread homeassistant/components/stips_iru1/climate.py Outdated
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py Outdated
Comment thread homeassistant/components/stips_iru1/manifest.json Outdated
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.
Copilot AI review requested due to automatic review settings April 15, 2026 14:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 14 out of 15 changed files in this pull request and generated 6 comments.

Comment thread homeassistant/components/stips_iru1/config_flow.py Outdated
Comment thread tests/components/stips_iru1/test_init.py Outdated
Comment thread homeassistant/components/stips_iru1/const.py Outdated
Comment thread homeassistant/components/stips_iru1/const.py
Comment thread homeassistant/components/stips_iru1/climate.py Outdated
Comment thread homeassistant/components/stips_iru1/climate.py
Copilot AI review requested due to automatic review settings April 15, 2026 19:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 16 out of 18 changed files in this pull request and generated 9 comments.

Comment thread tests/components/stips_iru1/test_init.py Outdated
Comment thread tests/components/stips_iru1/test_config_flow.py Outdated
Comment thread homeassistant/components/stips_iru1/const.py
Comment thread homeassistant/components/stips_iru1/api.py Outdated
Comment thread homeassistant/components/stips_iru1/local_http.py Outdated
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py Outdated
Comment thread homeassistant/components/stips_iru1/climate.py Outdated
Comment thread homeassistant/components/stips_iru1/climate.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 16, 2026 20:06
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 23 changed files in this pull request and generated 2 comments.

Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Copilot AI review requested due to automatic review settings April 16, 2026 21:25
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 23 changed files in this pull request and generated 3 comments.

Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/strings.json
Copilot AI review requested due to automatic review settings April 16, 2026 22:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 23 changed files in this pull request and generated 2 comments.

Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/config_flow.py
@hanyNaji hanyNaji marked this pull request as ready for review April 16, 2026 23:50
@hanyNaji hanyNaji requested review from a team and allenporter as code owners April 16, 2026 23:50
Copilot AI review requested due to automatic review settings April 16, 2026 23:50
@home-assistant home-assistant Bot dismissed stale reviews from themself April 16, 2026 23:50

Stale

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 22 out of 24 changed files in this pull request and generated 3 comments.

Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/local_http.py
Copilot AI review requested due to automatic review settings April 17, 2026 03:26
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 24 out of 26 changed files in this pull request and generated 8 comments.

Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread tests/components/stips_iru1/test_climate.py
Comment thread homeassistant/components/stips_iru1/climate.py
Comment thread homeassistant/components/stips_iru1/local_http.py
Comment thread homeassistant/components/stips_iru1/local_http.py
@hanyNaji hanyNaji changed the title Add STIPS IR Remote integration (climate platform) for https://stips.tech Add STIPS IR Remote integration (climate platform) for stips.tech Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants