Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/hassfest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# https://developers.home-assistant.io/blog/2020/04/16/hassfest/
name: Validate with HomeAssistant's hassfest
on:
push:
pull_request:
schedule:
- cron: "42 1 28 * *"

jobs:
validate:
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v3"
- uses: home-assistant/actions/hassfest@master
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
Home Assistant custom component using pytouchline_extended lib.

# Custom Home Assistant component for Roth Touchline

This component overrides the bundled [touchline][1] component in Home Assistant.

### Why this is better than the bundled integration
- **Modern Configuration:** Supports Home Assistant's UI-based configuration (Config Flow), eliminating the need to edit `configuration.yaml` manually.
- **Asynchronous Execution:** Built using `asyncio`, ensuring that it doesn't block the Home Assistant main thread during network operations, leading to better overall performance and stability.
- **Enhanced Library:** Uses `pytouchline_extended`, providing improved communication with Roth Touchline devices.
- **Seamless Override:** Automatically takes precedence over the built-in integration while maintaining the same `touchline` domain.

[1]: https://www.home-assistant.io/integrations/touchline
3 changes: 3 additions & 0 deletions custom_components/touchline/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from typing import override

import homeassistant.helpers.config_validation as cv
from homeassistant import config_entries
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, Platform
Expand All @@ -20,6 +21,8 @@

PLATFORMS = [Platform.CLIMATE]

CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)


async def _async_import(hass: HomeAssistant, base_config: ConfigType) -> None:
"""Import a config entry from configuration.yaml."""
Expand Down
16 changes: 8 additions & 8 deletions custom_components/touchline/manifest.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"domain": "touchline",
"name": "Roth Touchline",
"version": "0.1.3",
"integration_type": "hub",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/touchline",
"requirements": [
"pytouchline_extended==1.1.2"
],
"codeowners": [],
"config_flow": true,
"documentation": "https://github.com/hackmann/hass-touchline",
"integration_type": "hub",
"iot_class": "local_polling",
"issue_tracker": "https://github.com/hackmann/hass-touchline/issues",
"loggers": [
"pytouchline"
]
],
"requirements": [
"pytouchline_extended==1.1.2"
],
"version": "0.1.3"
}
Loading