← Back to Calendar & Scheduling

sensibo

Control Sensibo smart AC devices via their REST API

0
Source Code

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:
    curl --compressed "https://home.sensibo.com/api/v2/users/me/pods?fields=id,room&apiKey={API_KEY}"
    
  3. Store in TOOLS.md:
    ## 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

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

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

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

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

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:

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

Response includes:

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

Historical Data

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

Climate React (Smart Automation)

Enable/Disable

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

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

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

Create Schedule

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

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:

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"