Add Oura Ring integration and automations documentation
- Document HACS and Oura Ring v2 integration setup - Add OAuth credentials for Oura developer portal - Document 9 Oura automations: - Sleep/wake detection (HR-based thermostat control) - Health alerts (low readiness, SpO2, fever detection) - Sleep comfort (temperature-based thermostat adjustment) - Activity reminders (sedentary alert) - Add Nest thermostat to integrations list - Mark completed TODOs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -130,10 +130,13 @@ curl -s -H "Authorization: Bearer $HA_TOKEN" \
|
||||
|
||||
- **Philips Hue** - Lights
|
||||
- **Sonos** - Speakers
|
||||
- **Nest** - Thermostat (climate.thermostat)
|
||||
- **Motion Sensors** - Various locations
|
||||
- **NUT (Network UPS Tools)** - UPS monitoring (added 2025-12-21)
|
||||
- **VeSync** - Levoit humidifier control (added 2026-01-14)
|
||||
- **HomeKit Controller** - Homebridge bridge for Govee sensors (added 2026-01-14)
|
||||
- **Oura Ring v2** - Sleep/health tracking via HACS (added 2026-01-16)
|
||||
- **HACS** - Home Assistant Community Store for custom integrations
|
||||
|
||||
### NUT / UPS Integration
|
||||
|
||||
@@ -186,6 +189,35 @@ Controls the Levoit LV600S humidifier via VeSync cloud API.
|
||||
| `binary_sensor.lv600s_low_water` | Low water warning |
|
||||
| `binary_sensor.lv600s_water_tank_lifted` | Tank removed detection |
|
||||
|
||||
### Oura Ring Integration (HACS)
|
||||
|
||||
Monitors sleep, activity, and health metrics from Oura Ring via HACS custom integration.
|
||||
|
||||
**Installation:** HACS → Integrations → Oura Ring v2
|
||||
|
||||
**OAuth Credentials (Oura Developer Portal):**
|
||||
- Client ID: `e925a2a0-7767-4390-8b80-3a385a5b3ddc`
|
||||
- Client Secret: `xFSFSfUPihet1foWQRLAMUQbL9-kChqT_CjtHHpAxZs`
|
||||
- Redirect URI: `https://my.home-assistant.io/redirect/oauth`
|
||||
|
||||
**Key Entities:**
|
||||
| Entity ID | Description |
|
||||
|-----------|-------------|
|
||||
| `sensor.oura_ring_readiness_score` | Daily readiness (0-100) |
|
||||
| `sensor.oura_ring_sleep_score` | Sleep quality (0-100) |
|
||||
| `sensor.oura_ring_current_heart_rate` | Current HR (bpm) |
|
||||
| `sensor.oura_ring_average_sleep_heart_rate` | Average HR during sleep |
|
||||
| `sensor.oura_ring_lowest_sleep_heart_rate` | Lowest HR during sleep |
|
||||
| `sensor.oura_ring_temperature_deviation` | Body temp deviation (°C) |
|
||||
| `sensor.oura_ring_spo2_average` | Blood oxygen (%) |
|
||||
| `sensor.oura_ring_steps` | Daily step count |
|
||||
| `sensor.oura_ring_activity_score` | Activity score (0-100) |
|
||||
|
||||
**Troubleshooting:**
|
||||
- If sensors show "unavailable", check config entry state: `setup_retry` usually means API returned no data
|
||||
- Force sync the Oura app on your phone, then reload the integration
|
||||
- The integration polls Oura's API periodically; data updates after ring syncs to cloud
|
||||
|
||||
### HomeKit Controller / Homebridge Integration
|
||||
|
||||
Connects to Homebridge running on Mac Mini to access BLE devices (Govee sensors).
|
||||
@@ -241,10 +273,46 @@ Maintains 45-47% humidity for guitar storage (Lowden recommends 49% ±2%).
|
||||
- 45% turn-on, 47% turn-off creates a 2% buffer
|
||||
- Target range: 45-47% (conservatively below Lowden's 49% spec)
|
||||
|
||||
### Oura Ring Health & Sleep Automations
|
||||
|
||||
Uses Oura Ring biometrics for smart thermostat control and health alerts.
|
||||
|
||||
**Sleep/Wake Detection:**
|
||||
| Automation | Trigger | Conditions | Action |
|
||||
|------------|---------|------------|--------|
|
||||
| `oura_sleep_detected_bedtime_mode` | HR < 55 bpm | Home, after 10pm | Thermostat → 66°F, front door light off, Telegram notify |
|
||||
| `oura_wake_up_detected_morning_mode` | HR > 65 bpm | Home, 5-11am, thermostat < 68°F | Thermostat → 69°F, Telegram notify |
|
||||
|
||||
**Health Alerts:**
|
||||
| Automation | Trigger | Action |
|
||||
|------------|---------|--------|
|
||||
| `oura_low_readiness_alert` | 8am daily, readiness < 70 | Telegram: suggest rest day |
|
||||
| `oura_spo2_health_alert` | SpO2 < 94% | Urgent Telegram: health warning |
|
||||
| `oura_fever_detection_alert` | Temp deviation > 1°C | Telegram: possible illness alert |
|
||||
| `oura_sedentary_reminder` | 2pm weekdays, steps < 500 | Telegram: reminder to move |
|
||||
|
||||
**Sleep Comfort & Recovery:**
|
||||
| Automation | Trigger | Conditions | Action |
|
||||
|------------|---------|------------|--------|
|
||||
| `oura_poor_sleep_recovery_mode` | 7am daily | Home, sleep score < 70 | Thermostat → 71°F (warmer for recovery) |
|
||||
| `oura_sleep_temp_adjustment_too_hot` | Temp deviation > +0.5°C | Home, 10pm-6am, HR < 60 | Thermostat → 64°F |
|
||||
| `oura_sleep_temp_adjustment_too_cold` | Temp deviation < -0.3°C | Home, 10pm-6am, HR < 60 | Thermostat → 68°F |
|
||||
|
||||
**Notification Setup:**
|
||||
All notifications use `rest_command.notify_telegram` - ensure this is configured in `configuration.yaml`:
|
||||
```yaml
|
||||
rest_command:
|
||||
notify_telegram:
|
||||
url: "https://api.telegram.org/bot<TOKEN>/sendMessage"
|
||||
method: POST
|
||||
content_type: "application/json"
|
||||
payload: '{"chat_id": "<CHAT_ID>", "text": "{{ message }}"}'
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] Set static IP (currently DHCP at .210, should be .110)
|
||||
- [ ] Add API token to this document
|
||||
- [ ] Document installed integrations
|
||||
- [ ] Document automations
|
||||
- [x] Add API token to this document
|
||||
- [x] Document installed integrations
|
||||
- [x] Document automations
|
||||
- [ ] Set up Traefik reverse proxy (ha.htsn.io)
|
||||
|
||||
Reference in New Issue
Block a user