A Home Assistant custom integration for SinricPro that allows you to control your SinricPro devices from Home Assistant.
- 16 Device Types Supported - Comprehensive support for SinricPro devices
- UI-based Configuration - No YAML required
- Real-time Updates - Server-Sent Events (SSE) for instant state synchronization
- Automatic Reconnection - Exponential backoff for reliable connection
- Smart State Management - Pending state with SSE confirmation
- Alert Notifications - Receive SinricPro alerts as Home Assistant notifications
- Event Automation - Fire events for advanced automation scenarios
- Open HACS in your Home Assistant instance
- Click on "Integrations"
- Click the three dots in the top right corner and select "Custom repositories"
- Add the repository URL:
https://github.com/sinricpro/homeassistant-sinricpro - Select "Integration" as the category
- Click "Add"
- Search for "SinricPro" and install it
- Restart Home Assistant
- Download the latest release from the releases page
- Extract the
sinricprofolder to yourcustom_componentsdirectory - Restart Home Assistant
- Go to Settings > Devices & Services
- Click + Add Integration
- Search for "SinricPro"
- Enter your SinricPro API key
- Click Submit
- Log in to your SinricPro Dashboard
- Navigate to Credentials
- Copy your API key
This integration supports 16 SinricPro device types mapped to Home Assistant platforms:
| SinricPro Device Type | HA Platform | Features |
|---|---|---|
| Switch | switch |
On/Off control |
| Light | light |
On/Off, Brightness (0-100), RGB Color, Color Temperature (2200K-7000K) |
| Dimmable Switch | light |
On/Off, Power Level (0-100) - appears as dimmable light |
| Blinds | cover |
Open/Close, Position (0-100) |
| Doorbell | event + button + sensor |
Press event, Manual trigger button, Last ring timestamp sensor |
| Fan | fan |
On/Off, Speed control (1 to max speed levels) |
| Garage Door | cover |
Open/Close control |
| Smart Lock | lock |
Lock/Unlock control |
| Speaker | media_player |
On/Off, Volume (0-100), Mute/Unmute |
| TV | media_player |
On/Off, Volume, Mute, Channel Up/Down, Play/Pause |
| Thermostat | climate |
On/Off, Target Temperature, HVAC Mode (Heat/Cool/Auto/Off), Current Temperature, Humidity |
| Window AC Unit | climate |
All thermostat features + Fan Mode (Low/Medium/High), ECO mode support |
| Air Quality Sensor | sensor |
PM1.0, PM2.5, PM10 measurements (µg/m³) |
| Contact Sensor | binary_sensor |
Open/Closed state detection |
| Motion Sensor | binary_sensor |
Motion detected/not detected |
| Temperature Sensor | sensor |
Temperature (°C), Humidity (%) |
SinricPro's custom device types not yet supported
- Pending State Pattern: Shows "unknown" while waiting for SSE confirmation (10s timeout)
- AC Unit Extra: Fan speed control with 3 levels (Low/Medium/High)
- Retry Logic: Automatic retry on timeout errors
- TV Extra Features: Channel navigation and playback control
- Volume: Displayed as 0.0-1.0 in Home Assistant (converted from 0-100)
- Real-time Updates: All sensor values update via SSE events
- Air Quality: Individual sensors for each PM measurement
- Temperature Sensor: Provides both temperature and humidity entities
- Contact Sensor: Door/window open/close detection
- Motion Sensor: Motion presence detection with timestamp tracking
The integration also handles SinricPro alerts (warnings, errors):
- Persistent Notifications: Alerts appear in HA notification panel
- Event Firing:
sinricpro_alertevent for automation - Device Context: Shows device name when alert is device-specific
Example alert automation:
automation:
- alias: "SinricPro Alert Notification"
trigger:
- platform: event
event_type: sinricpro_alert
action:
- service: notify.mobile_app
data:
message: "{{ trigger.event.data.message }}"- Start the environment:
./dev.sh start - Open http://localhost:8123 and create an admin account
- Add the integration:
- Settings → Devices & Services → + Add Integration
- Search "SinricPro"
- Enter your API key
- Monitor logs:
./dev.sh logs - After code changes:
./dev.sh restart
- Verify your API key is correct
- Ensure you're using the API key from the SinricPro dashboard (not the App Key)
- Check that your API key hasn't expired
- Make sure your devices are properly configured in SinricPro
- Check that the devices are online in the SinricPro dashboard
- Try reloading the integration
- The integration uses SSE for real-time updates with a 5-minute polling fallback
- Check your network connection
- Review the Home Assistant logs for connection errors
Add the following to your configuration.yaml:
logger:
default: info
logs:
custom_components.sinricpro: debugIf you encounter issues:
- Check the existing issues
- Enable debug logging and capture relevant logs
- Open a new issue with:
- Integration version
- Home Assistant version
- Relevant logs
- Steps to reproduce
- Clone the repository
- Install dependencies:
pip install -r requirements.txt pip install -r requirements_test.txt
- Run tests:
pytest tests/
python -m pytest tests/test_switch.py -v --tb=line` - Run linting:
ruff check . ruff format --check . mypy custom_components/sinricpro
This project is licensed under the MIT License - see the LICENSE file for details.
- Home Assistant for the amazing home automation platform
- SinricPro for the IoT platform