{"id":44386359,"url":"https://github.com/sinricpro/homeassistant-sinricpro","last_synced_at":"2026-02-12T00:45:53.342Z","repository":{"id":331297371,"uuid":"952866272","full_name":"sinricpro/homeassistant-sinricpro","owner":"sinricpro","description":"SinricPro Component for Home Assistant","archived":false,"fork":false,"pushed_at":"2026-01-04T11:48:32.000Z","size":196,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-05T21:44:24.545Z","etag":null,"topics":["home-assistant","sinricpro"],"latest_commit_sha":null,"homepage":"https://sinric.pro/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sinricpro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-22T03:22:45.000Z","updated_at":"2026-01-04T11:48:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sinricpro/homeassistant-sinricpro","commit_stats":null,"previous_names":["sinricpro/homeassistant-sinricpro"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/sinricpro/homeassistant-sinricpro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinricpro%2Fhomeassistant-sinricpro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinricpro%2Fhomeassistant-sinricpro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinricpro%2Fhomeassistant-sinricpro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinricpro%2Fhomeassistant-sinricpro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sinricpro","download_url":"https://codeload.github.com/sinricpro/homeassistant-sinricpro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinricpro%2Fhomeassistant-sinricpro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29351058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T20:11:40.865Z","status":"ssl_error","status_checked_at":"2026-02-11T20:10:41.637Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["home-assistant","sinricpro"],"created_at":"2026-02-12T00:45:48.493Z","updated_at":"2026-02-12T00:45:53.336Z","avatar_url":"https://github.com/sinricpro.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SinricPro Home Assistant Integration\n\n[![CI](https://github.com/sinricpro/homeassistant-sinricpro/actions/workflows/ci.yml/badge.svg)](https://github.com/sinricpro/homeassistant-sinricpro/actions/workflows/ci.yml)\n[![hacs_badge](https://img.shields.io/badge/HACS-Custom-41BDF5.svg)](https://github.com/hacs/integration)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA Home Assistant custom integration for [SinricPro](https://sinric.pro) that allows you to control your SinricPro devices from Home Assistant.\n\n## Features\n\n- **16 Device Types Supported** - Comprehensive support for SinricPro devices\n- **UI-based Configuration** - No YAML required\n- **Real-time Updates** - Server-Sent Events (SSE) for instant state synchronization\n- **Automatic Reconnection** - Exponential backoff for reliable connection\n- **Smart State Management** - Pending state with SSE confirmation\n- **Alert Notifications** - Receive SinricPro alerts as Home Assistant notifications\n- **Event Automation** - Fire events for advanced automation scenarios\n\n## Installation\n\n### HACS (Recommended)\n\n1. Open HACS in your Home Assistant instance\n2. Click on \"Integrations\"\n3. Click the three dots in the top right corner and select \"Custom repositories\"\n4. Add the repository URL: `https://github.com/sinricpro/homeassistant-sinricpro`\n5. Select \"Integration\" as the category\n6. Click \"Add\"\n7. Search for \"SinricPro\" and install it\n8. Restart Home Assistant\n\n### Manual Installation\n\n1. Download the latest release from the [releases page](https://github.com/sinricpro/homeassistant-sinricpro/releases)\n2. Extract the `sinricpro` folder to your `custom_components` directory\n3. Restart Home Assistant\n\n## Configuration\n\n1. Go to **Settings** \u003e **Devices \u0026 Services**\n2. Click **+ Add Integration**\n3. Search for \"SinricPro\"\n4. Enter your SinricPro API key\n5. Click **Submit**\n\n### Getting Your API Key\n\n1. Log in to your [SinricPro Dashboard](https://portal.sinric.pro)\n2. Navigate to **Credentials**\n3. Copy your API key\n\n## Supported Devices\n\nThis integration supports **16 SinricPro device types** mapped to Home Assistant platforms:\n\n| SinricPro Device Type | HA Platform | Features |\n|----------------------|-------------|----------|\n| **Switch** | `switch` | On/Off control |\n| **Light** | `light` | On/Off, Brightness (0-100), RGB Color, Color Temperature (2200K-7000K) |\n| **Dimmable Switch** | `light` | On/Off, Power Level (0-100) - appears as dimmable light |\n| **Blinds** | `cover` | Open/Close, Position (0-100) |\n| **Doorbell** | `event` + `button` + `sensor` | Press event, Manual trigger button, Last ring timestamp sensor |\n| **Fan** | `fan` | On/Off, Speed control (1 to max speed levels) |\n| **Garage Door** | `cover` | Open/Close control |\n| **Smart Lock** | `lock` | Lock/Unlock control |\n| **Speaker** | `media_player` | On/Off, Volume (0-100), Mute/Unmute |\n| **TV** | `media_player` | On/Off, Volume, Mute, Channel Up/Down, Play/Pause |\n| **Thermostat** | `climate` | On/Off, Target Temperature, HVAC Mode (Heat/Cool/Auto/Off), Current Temperature, Humidity |\n| **Window AC Unit** | `climate` | All thermostat features + Fan Mode (Low/Medium/High), ECO mode support |\n| **Air Quality Sensor** | `sensor` | PM1.0, PM2.5, PM10 measurements (µg/m³) |\n| **Contact Sensor** | `binary_sensor` | Open/Closed state detection |\n| **Motion Sensor** | `binary_sensor` | Motion detected/not detected |\n| **Temperature Sensor** | `sensor` | Temperature (°C), Humidity (%) |\n\n**SinricPro's custom device types not yet supported**\n\n### Device Features Details\n\n#### Climate Devices (Thermostat \u0026 AC Unit)\n- **Pending State Pattern**: Shows \"unknown\" while waiting for SSE confirmation (10s timeout)\n- **AC Unit Extra**: Fan speed control with 3 levels (Low/Medium/High)\n- **Retry Logic**: Automatic retry on timeout errors\n\n#### Media Players (Speaker \u0026 TV)\n- **TV Extra Features**: Channel navigation and playback control\n- **Volume**: Displayed as 0.0-1.0 in Home Assistant (converted from 0-100)\n\n#### Sensors\n- **Real-time Updates**: All sensor values update via SSE events\n- **Air Quality**: Individual sensors for each PM measurement\n- **Temperature Sensor**: Provides both temperature and humidity entities\n\n#### Binary Sensors\n- **Contact Sensor**: Door/window open/close detection\n- **Motion Sensor**: Motion presence detection with timestamp tracking\n\n### SinricPro Alerts\n\nThe integration also handles **SinricPro alerts** (warnings, errors):\n- **Persistent Notifications**: Alerts appear in HA notification panel\n- **Event Firing**: `sinricpro_alert` event for automation\n- **Device Context**: Shows device name when alert is device-specific\n\nExample alert automation:\n```yaml\nautomation:\n  - alias: \"SinricPro Alert Notification\"\n    trigger:\n      - platform: event\n        event_type: sinricpro_alert\n    action:\n      - service: notify.mobile_app\n        data:\n          message: \"{{ trigger.event.data.message }}\"\n```\n\n# Development\n\n1. Start the environment: `./dev.sh start`\n2. Open http://localhost:8123 and create an admin account\n3. Add the integration:\n   - Settings → Devices \u0026 Services → + Add Integration\n   - Search \"SinricPro\"\n   - Enter your API key\n4. Monitor logs: `./dev.sh logs`\n5. After code changes: `./dev.sh restart`\n\n\n\n## Troubleshooting\n\n### Common Issues\n\n#### \"Invalid API key\" error\n\n- Verify your API key is correct\n- Ensure you're using the API key from the SinricPro dashboard (not the App Key)\n- Check that your API key hasn't expired\n\n#### Devices not appearing\n\n- Make sure your devices are properly configured in SinricPro\n- Check that the devices are online in the SinricPro dashboard\n- Try reloading the integration\n\n#### State not updating\n\n- The integration uses SSE for real-time updates with a 5-minute polling fallback\n- Check your network connection\n- Review the Home Assistant logs for connection errors\n\n### Enabling Debug Logging\n\nAdd the following to your `configuration.yaml`:\n\n```yaml\nlogger:\n  default: info\n  logs:\n    custom_components.sinricpro: debug\n```\n\n### Getting Help\n\nIf you encounter issues:\n\n1. Check the [existing issues](https://github.com/sinricpro/homeassistant-sinricpro/issues)\n2. Enable debug logging and capture relevant logs\n3. Open a [new issue](https://github.com/sinricpro/homeassistant-sinricpro/issues/new/choose) with:\n   - Integration version\n   - Home Assistant version\n   - Relevant logs\n   - Steps to reproduce\n\n### Development Setup\n\n1. Clone the repository\n2. Install dependencies:\n   ```bash\n   pip install -r requirements.txt\n   pip install -r requirements_test.txt\n   ```\n3. Run tests:\n   ```bash\n   pytest tests/\n   ```\n   ```bash\n   python -m pytest tests/test_switch.py -v --tb=line`\n   ```\n4. Run linting:\n   ```bash\n   ruff check .\n   ruff format --check .\n   mypy custom_components/sinricpro\n   ```\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n## Acknowledgements\n\n- [Home Assistant](https://www.home-assistant.io/) for the amazing home automation platform\n- [SinricPro](https://sinric.pro) for the IoT platform\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinricpro%2Fhomeassistant-sinricpro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsinricpro%2Fhomeassistant-sinricpro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinricpro%2Fhomeassistant-sinricpro/lists"}