← Back to Skills
Cron

sensibo

omere2 By omere2 👁 13 views ▲ 0 votes

Control Sensibo smart AC devices via their REST API.

GitHub
---
name: sensibo
description: Control Sensibo smart AC devices via their REST API. Use when the user asks to turn on/off AC, change temperature, set modes, check room temperature/humidity, or manage climate schedules. Triggers on phrases like "turn on AC", "set bedroom to 22", "how hot is it", "AC off", "cooling mode".
---

# Sensibo AC Control

Control smart AC units via the Sensibo REST API.

## First-Time Setup

1. Get API key from https://home.sensibo.com/me/api
2. List devices to get IDs:
   ```bash
   curl --compressed "https://home.sensibo.com/api/v2/users/me/pods?fields=id,room&apiKey={API_KEY}"
   ```
3. Store in TOOLS.md:
   ```markdown
   ## Sensibo
   API Key: `{your_key}`
   
   | Room | Device ID |
   |------|-----------|
   | Living Room | abc123 |
   | Bedroom | xyz789 |
   ```

## API Reference

**Base URL:** `https://home.sensibo.com/api/v2`  
**Auth:** `?apiKey={key}` query parameter  
**Always use:** `--compressed` flag for better rate limits

### Turn ON/OFF

```bash
curl --compressed -X POST "https://home.sensibo.com/api/v2/pods/{device_id}/acStates?apiKey={key}" \
  -H "Content-Type: application/json" -d '{"acState":{"on":true}}'
```

### Set Temperature

```bash
curl --compressed -X PATCH "https://home.sensibo.com/api/v2/pods/{device_id}/acStates/targetTemperature?apiKey={key}" \
  -H "Content-Type: application/json" -d '{"newValue":23}'
```

### Set Mode

Options: `cool`, `heat`, `fan`, `auto`, `dry`

```bash
curl --compressed -X PATCH "https://home.sensibo.com/api/v2/pods/{device_id}/acStates/mode?apiKey={key}" \
  -H "Content-Type: application/json" -d '{"newValue":"cool"}'
```

### Set Fan Level

Options: `low`, `medium`, `high`, `auto`

```bash
curl --compressed -X PATCH "https://home.sensibo.com/api/v2/pods/{device_id}/acStates/fanLevel?apiKey={key}" \
  -H "Content-Type: application/json" -d '{"newValue":"auto"}'
```

### Full State Change

```bash
curl --compressed -X POST "https://home.sensibo.com/api/v2/pods/{device_id}/acStates?apiKey={key}" \
  -H "Content-Type: application/json" \
  -d '{"acState":{"on":true,"mode":"cool","targetTemperature":22,"fanLevel":"auto","temperatureUnit":"C"}}'
```

## AC State Properties

| Property | Type | Values |
|----------|------|--------|
| on | boolean | true, false |
| mode | string | cool, heat, fan, auto, dry |
| targetTemperature | integer | varies by AC unit |
| temperatureUnit | string | C, F |
| fanLevel | string | low, medium, high, auto |
| swing | string | stopped, rangeful |

## Reading Sensor Data

### Current Measurements

Include `measurements` in fields:
```bash
curl --compressed "https://home.sensibo.com/api/v2/pods/{device_id}?fields=measurements&apiKey={key}"
```

Response includes:
```json
{"measurements": {"temperature": 24.5, "humidity": 55, "time": "2024-01-15T12:00:00Z"}}
```

### Historical Data

```bash
curl --compressed "https://home.sensibo.com/api/v2/pods/{device_id}/historicalMeasurements?days=1&apiKey={key}"
```

## Climate React (Smart Automation)

### Enable/Disable

```bash
curl --compressed -X PUT "https://home.sensibo.com/api/v2/pods/{device_id}/smartmode?apiKey={key}" \
  -H "Content-Type: application/json" -d '{"enabled":true}'
```

### Configure Thresholds

```bash
curl --compressed -X POST "https://home.sensibo.com/api/v2/pods/{device_id}/smartmode?apiKey={key}" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "lowTemperatureThreshold": 20,
    "lowTemperatureState": {"on": true, "mode": "heat"},
    "highTemperatureThreshold": 26,
    "highTemperatureState": {"on": true, "mode": "cool"}
  }'
```

## Schedules

**Note:** Schedules use API v1 base URL: `https://home.sensibo.com/api/v1`

### List Schedules

```bash
curl --compressed "https://home.sensibo.com/api/v1/pods/{device_id}/schedules/?apiKey={key}"
```

### Create Schedule

```bash
curl --compressed -X POST "https://home.sensibo.com/api/v1/pods/{device_id}/schedules/?apiKey={key}" \
  -H "Content-Type: application/json" \
  -d '{
    "targetTimeLocal": "22:00",
    "timezone": "Europe/London",
    "acState": {"on": false},
    "recurOnDaysOfWeek": ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"]
  }'
```

### Delete Schedule

```bash
curl --compressed -X DELETE "https://home.sensibo.com/api/v1/pods/{device_id}/schedules/{schedule_id}/?apiKey={key}"
```

## Timer

Set a one-time delayed action:

```bash
curl --compressed -X PUT "https://home.sensibo.com/api/v1/pods/{device_id}/timer/?apiKey={key}" \
  -H "Content-Type: application/json" \
  -d '{"minutesFromNow": 30, "acState": {"on": false}}'
```

## Usage Tips

1. **Match room names:** When user says "living room" or "bedroom", look up device ID in TOOLS.md
2. **Check response:** Verify `"status": "success"` in API response
3. **Temperature ranges:** Depend on the specific AC unit's capabilities
4. **Rate limits:** Use `--compressed` to get higher rate limits
5. **Bulk operations:** Loop through device IDs for "turn off all ACs"
cron

Comments

Sign in to leave a comment

Loading comments...