---
title: "Sensibo Air Conditioner Smart Control"
description: "Control IR air conditioners via Sensibo Sky, Air or Air Pro and the Sensibo Cloud API: power, mode, fan, swing, setpoint. Needs an API key and POD ID."
url: "https://taphome.com/en/compatibility/sensibo-air-conditioner-smart-control/"
language: en
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["http","air-conditioning","cloud-api","thermostat","hvac-control","smart-home"]
  questions: ["How to integrate Sensibo with TapHome via the Cloud API?","What data does the Sensibo TapHome template provide?","How to obtain the Sensibo API key for TapHome?","Can I control fan speed and swing position through TapHome with Sensibo?","Does the Sensibo template work with any air conditioner?","How to set up the Sensibo POD ID in TapHome?"]
---

# Sensibo Air Conditioner Smart Control

Communication: Packet Parser → HTTP

- [Sensibo Official Website](https://www.sensibo.com)

## Integration guide

The Sensibo Air Conditioner Smart Control template connects TapHome to any IR-controlled air conditioner through a Sensibo smart AC controller (Sky, Air or Air Pro). The Sensibo device sits near the AC unit, learns its IR remote codes, and exposes full AC control through the Sensibo Cloud API v2. TapHome queries the Sensibo servers via HTTPS and receives real-time state data in JSON format — no physical wiring to the air conditioner is required.

The template provides 8 devices covering power on/off, operating mode selection, fan speed, vertical swing position, thermostat with setpoint control, temperature and humidity monitoring, display light control, and filter maintenance alerts. The only requirements are a Sensibo account, a Sensibo device connected to Wi-Fi, and an API key.

## Configuration

### Sensibo account and device setup

The Sensibo device (Sky, Air or Air Pro) must be installed, paired with your air conditioner through the Sensibo mobile app, and connected to your Wi-Fi network. The device must appear as online in the Sensibo app before proceeding with TapHome integration.

### Obtaining the API key

1. Open [home.sensibo.com/me/api](https://home.sensibo.com/me/api) in a web browser
2. Sign in with your Sensibo account credentials
3. Click **Generate API Key** if you do not already have one
4. Copy the API key — this is a long alphanumeric string

The API key grants access to all Sensibo devices on your account.

### Finding the POD identifier

The POD is a unique identifier for each Sensibo device. Where to find it:

- **In the Sensibo app** — open device settings and look for the Device ID
- **Via the API** — call `GET https://home.sensibo.com/api/v2/users/me/pods?apiKey={apiKey}` and note the `id` field for each device

Each Sensibo device has a different POD. If you have multiple Sensibo devices, you need to import the template separately for each one with its own POD.

### Import parameters

When importing the template in TapHome, enter:

- **API Key** — the API key from the Sensibo developer portal
- **POD** — the unique device identifier for the specific Sensibo unit

### Internet dependency

This is a cloud-only integration. All data flows through Sensibo servers (`home.sensibo.com:443`). The template will not work without an active internet connection on both the TapHome Core and the Sensibo device.

## Device capabilities

### Temperature and humidity monitoring

The **Current Temperature & Humidity** sensor reads the built-in temperature and humidity sensors on the Sensibo device. Temperature is reported in the unit configured on the Sensibo device (typically Celsius). Humidity is divided by 100 for the TapHome 0--1 analog input range (e.g. 60% becomes 0.60).

### Thermostat control

The **Thermostat** provides full climate control with temperature setpoint. It reads the current room temperature, humidity, and the target temperature from the AC state. Writing a new setpoint sends a PATCH request to the Sensibo API, which then transmits the corresponding IR command to the air conditioner. The available temperature range depends on the paired AC model (typically 16--32 °C).

### Power control

The **Power** switch turns the air conditioner on or off. When turned off, Sensibo sends the power-off IR command to the AC unit. When turned on, the AC resumes in the last active mode.

### AC mode selection

The **AC Mode** multi-value switch controls the operating mode with 6 states:

| Value | Mode |
|-------|------|
| 0 | OFF |
| 1 | Cool |
| 2 | Heat |
| 3 | Fan |
| 4 | Dry |
| 5 | Auto |

Setting the mode to 0 (OFF) sends a power-off command instead of a mode change. Available modes depend on the paired air conditioner — not all AC units support every mode.

### Fan speed control

The **Fan Level** multi-value switch controls the fan speed with 6 levels:

| Value | Fan Level |
|-------|-----------|
| 0 | None |
| 1 | Low |
| 2 | Medium |
| 3 | High |
| 4 | Auto |
| 5 | Strong |

Available fan levels depend on the paired air conditioner model.

### Vertical swing control

The **Vertical Swing** multi-value switch controls the vertical louver position with 10 states:

| Value | Position |
|-------|----------|
| 0 | Stopped |
| 1 | Fixed Top |
| 2 | Fixed Middle Top |
| 3 | Fixed Middle |
| 4 | Fixed Middle Bottom |
| 5 | Fixed Bottom |
| 6 | Range Top |
| 7 | Range Middle |
| 8 | Range Bottom |
| 9 | Range Full |

Available swing positions depend on the paired air conditioner. Many AC units support only a subset of these positions. The TapHome app shows the Sensibo API value names (for example `fixedTop`, `rangeFull`, `low`).

### Display light control

The **Display Light** switch controls the LED display panel on the air conditioner. Not all AC models support display light control through IR — if the paired unit does not support this feature, the command will have no effect.

### Filter maintenance alert

The **Filter Clean Required** sensor (reed contact) indicates when the AC filters need cleaning. It reads the `shouldCleanFilters` flag from the Sensibo API — the value is 1 when filters need cleaning and 0 when they are clean. The filter indicator can be reset through the Sensibo mobile app.

### Additional capabilities

The Sensibo API also exposes horizontal swing control, timer functions, Climate React (automatic climate control based on thresholds), historical measurements, and air quality sensors (TVOC, CO2 on Air Pro). These can be added in a future template update.

## Troubleshooting

### API returns error or no data

1. Verify the Sensibo device is online — check the status LED and the Sensibo mobile app
2. Confirm the API key is correct and has not been regenerated
3. Ensure the POD parameter matches the device identifier exactly (case-sensitive)
4. Check that both the TapHome Core and the Sensibo device have active internet connections

### "API Key is empty" or "Pod is empty" error

The template validates that both parameters are set before making API requests. If you see this error, open the module variables in TapHome and verify that the API Key and POD fields contain the correct values.

### Commands have no effect on the AC

The Sensibo device controls the air conditioner via IR (infrared) signals. Ensure the Sensibo device has a clear line of sight to the AC unit's IR receiver. If a specific function (display light, swing position) does not work, the paired air conditioner may not support that feature through its IR protocol.

> [!WARNING]
> The Sensibo Cloud API requires an active internet connection and depends on Sensibo server availability. During cloud outages or internet disruptions, the template will not receive updated data or send commands. There is no local fallback — all communication goes through Sensibo servers.

## Available devices 8

These devices appear in TapHome after import.

Sensibo Air Conditioner Smart Control Module

Custom Variables

|                   |                                                                     |
|-------------------|---------------------------------------------------------------------|
| `apiKey` (string) | Sensibo Cloud API key (obtain from https://home.sensibo.com/me/api) |
| `pod` (string)    | Sensibo device identifier (POD ID, unique per Sensibo device)       |

Read (module)

```taphome
responseJson := "error";
IF LENGTH(apiKey) = 0
    ADDERROR("API Key is empty. Fill API Key in module variables");
	RETURN(0);
END

IF LENGTH(pod) = 0
    ADDERROR("Pod is empty. Fill pod in module variables");
	RETURN(0);
END

VAR response := SENDHTTPREQUEST("/api/v2/pods/"+pod+"/?fields=*&apiKey="+apiKey, "GET", "");

IF(response.IsSuccess)
    responseJson := response.Content;
    mode := PARSEJSON(responseJson,"$.result.acState.mode");
ELSE
    VAR contentJson := response.Content;
    VAR errCode := response.StatusCode;
    VAR message := PARSEJSON(contentJson, "message", 1);
	IF ISNULL(message)
		message := PARSETEXT(response.Content, "<title>", "</title>");
	END
    ADDERROR("Failed to read data - (" + errCode + ") " + message);
END
```

Current Temperature & Humidity Temperature Sensor Read-only

Built-in temperature and humidity sensors — humidity divided by 100 for TapHome 0–1 range

numeric Unit: °C / % JSON parsejson()

Read humidity

```taphome
PARSEJSON(responseJson,"$.result.measurements.humidity")/100.0;
```

Read temperature

```taphome
PARSEJSON(responseJson,"$.result.measurements.temperature");
```

Fan Level Multi-value Switch Read and write

AC fan speed control — low, medium, high, auto, strong (available levels depend on paired AC model)

string → numeric JSON parsejson() + SWITCH mapping

Values / States: low · medium · high · auto · strong

Read switch state

```taphome
VAR fanLevel := PARSEJSON(responseJson,"$.result.acState.fanLevel");
SWITCH(fanLevel, "low", 1, "medium", 2, "high", 3, "auto", 4, "strong", 5, 0);
```

Write switch state

```taphome
VAR localfan := SWITCH(Mu, 1, "low", 2, "medium", 3, "high", 4, "auto", 5, "strong", "");

SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/fanLevel?apiKey="+apiKey, "PATCH", "{\"newValue\": \""+localfan+"\"}");
```

Display Light Switch Read and write

AC display panel LED on/off control — not all AC models support this feature

string/boolean JSON parsejson() + IF comparison

Values / States: ON · OFF

Read switch state

```taphome
IF(PARSEJSON(responseJson,"$.result.acState.light")="on",1,0)
```

Write switch state

```taphome
SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/light?apiKey="+apiKey, "PATCH", "{\"newValue\": "+IF(St,"true","false")+"}");
```

AC Mode Multi-value Switch Read and write

AC operating mode — OFF, Cool, Heat, Fan, Dry, Auto (available modes depend on paired AC model)

string → numeric Custom variable + SWITCH mapping

Values / States: OFF · Cool · Heat · Fan · Dry · Auto

Read switch state

```taphome
SWITCH(mode, "cool", 1, "heat", 2, "fan", 3, "dry", 4, "auto", 5, 0);
```

Write switch state

```taphome
VAR localmode := SWITCH(Mu, 1, "cool", 2, "heat", 3, "fan", 4, "dry", 5, "auto", "");

IF (Mu > 0)
SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/mode?apiKey="+apiKey, "PATCH", "{\"newValue\": \""+localmode+"\"}");

ELSE

SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/on?apiKey="+apiKey, "PATCH", "{\"newValue\": false}");

END
```

Power Switch Read and write

AC power on/off control via IR command

boolean JSON parsejson() + IF

Values / States: ON · OFF

Read switch state

```taphome
IF(PARSEJSON(responseJson,"$.result.acState.on"),1,0)
```

Write switch state

```taphome
SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/on?apiKey="+apiKey, "PATCH", "{\"newValue\": "+IF(St,"true","false")+"}");
```

Filter Clean Required Reed Contact Read-only

Filter maintenance alert — indicates when AC filters need cleaning

boolean JSON parsejson() + IF

Read

```taphome
IF(PARSEJSON(responseJson,"$.result.filtersCleaning.shouldCleanFilters"),1,0)
```

Vertical Swing Multi-value Switch Read and write

Vertical louver position control — 10 positions from fixed to range sweep (available positions depend on paired AC model)

string → numeric JSON parsejson() + SWITCH mapping

Values / States: stopped · fixedTop · fixedMiddleTop · fixedMiddle · fixedMiddleBottom · fixedBottom · rangeTop · rangeMiddle · rangeBottom · rangeFull

Read switch state

```taphome
VAR swing := PARSEJSON(responseJson,"$.result.acState.swing");
SWITCH(swing, 
"stopped", 0, 
"fixedTop", 1, 
"fixedMiddleTop", 2, 
"fixedMiddle", 3, 
"fixedMiddleBottom", 4, 
"fixedBottom", 5, 
"rangeTop", 6, 
"rangeMiddle", 7, 
"rangeBottom", 8, 
"rangeFull", 9, 
0);
```

Write switch state

```taphome
VAR localswing := SWITCH(Mu, 

0, "stopped", 
1, "fixedTop", 
2, "fixedMiddleTop", 
3, "fixedMiddle", 
4, "fixedMiddleBottom", 
5, "fixedBottom", 
6, "rangeTop", 
7, "rangeMiddle", 
8, "rangeBottom", 
9, "rangeFull"

, "");

SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/swing?apiKey="+apiKey, "PATCH", "{\"newValue\": \""+localswing+"\"}");
```

Thermostat Thermostat Read and write

Temperature setpoint control with current temperature and humidity readings

numeric Unit: °C JSON parsejson()

Read temperature

```taphome
PARSEJSON(responseJson,"$.result.measurements.temperature");
```

Read humidity

```taphome
PARSEJSON(responseJson,"$.result.measurements.humidity")/100.0;
```

Read desired temperature

```taphome
PARSEJSON(responseJson,"$.result.acState.targetTemperature");
```

Write desired temperature

```taphome
SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/targetTemperature?apiKey="+apiKey, "PATCH", "{\"newValue\": "+Se+"}");
```

**Connection:** Packet Parser → HTTP

Possible improvements (10)

- Horizontal Swing — Horizontal swing/louver position control. Available values vary by AC model. Present in acState but not implemented in TapHome template
- Timer — GET/PUT/DELETE /pods/{pod}/timer — set countdown timer for AC on/off. Available in HA as 10-minute timer toggle
- Schedules — GET/POST/PUT/DELETE /pods/{pod}/schedules — create and manage recurring AC schedules
- Climate React — GET/PUT/POST /pods/{pod}/smartMode — automatic climate control based on temperature/humidity thresholds. Configurable high/low triggers with independent AC states
- Historical Measurements — GET /pods/{pod}/historicalMeasurements — temperature and humidity history over time
- TVOC Sensor — Total Volatile Organic Compounds sensor. Available on Sensibo Air Pro only
- CO2 Sensor — Carbon dioxide level sensor. Available on Sensibo Air Pro only
- Feels-Like Temperature — Computed feels-like temperature based on temperature and humidity. Available on Sky, Air, Air Pro
- Filter Last Reset — Timestamp of last filter cleaning indicator reset
- Filter Reset — Button to reset filter cleaning indicator (currently template only reads shouldCleanFilters, cannot reset)

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default         |
|------------------|-----------------|
| API Key          | Enter at import |
| POD              | Enter at import |

## Sources

- Sensibo API v2 Reference
  
  [support.sensibo.com](https://support.sensibo.com/api/) 2026-04-19
- Home Assistant Sensibo Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/sensibo/) 2026-04-19

## Related Documentation

- [Packet Parser Integration](https://taphome.com/en/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/en/docs/integration/packet-parser/)
- [Packet parser functions](https://taphome.com/en/docs/script/packet-parser/)
- [Parsing functions](https://taphome.com/en/docs/script/parsing-functions/)

