TapHome

Sensibo Air Conditioner Smart Control

Packet Parser → HTTP
Submitted by
Last updated: 06. 2026
Sensibo Air Conditioner Smart Control

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 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:

ValueMode
0OFF
1Cool
2Heat
3Fan
4Dry
5Auto

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:

ValueFan Level
0None
1Low
2Medium
3High
4Auto
5Strong

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:

ValuePosition
0Stopped
1Fixed Top
2Fixed Middle Top
3Fixed Middle
4Fixed Middle Bottom
5Fixed Bottom
6Range Top
7Range Middle
8Range Bottom
9Range Full

Available swing positions depend on the paired air conditioner. Many AC units support only a subset of these positions.

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.

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

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)

Sensibo Air Conditioner Smart Control

Read (module)
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()

Current Temperature & Humidity

Read humidity
PARSEJSON(responseJson,"$.result.measurements.humidity")/100.0;
Read temperature
PARSEJSON(responseJson,"$.result.measurements.temperature");
Fan Level Multi-value Switch

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

Fan Level

Read switch state
VAR fanLevel := PARSEJSON(responseJson,"$.result.acState.fanLevel");
SWITCH(fanLevel, "low", 1, "medium", 2, "high", 3, "auto", 4, "strong", 5, 0);
Write switch state
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

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

string/boolean JSON parsejson() + IF comparison
Values / States: ON · OFF

Display Light

Read switch state
IF(PARSEJSON(responseJson,"$.result.acState.light")="on",1,0)
Write switch state
SENDHTTPREQUEST("/api/v2/pods/"+pod+"/acStates/light?apiKey="+apiKey, "PATCH", "{\"newValue\": "+IF(St,"true","false")+"}");
AC Mode Multi-value Switch

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

AC Mode

Read switch state
SWITCH(mode, "cool", 1, "heat", 2, "fan", 3, "dry", 4, "auto", 5, 0);
Write switch state
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

AC power on/off control via IR command

boolean JSON parsejson() + IF
Values / States: ON · OFF

Power

Read switch state
IF(PARSEJSON(responseJson,"$.result.acState.on"),1,0)
Write switch state
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

Filter Clean Required

Read
IF(PARSEJSON(responseJson,"$.result.filtersCleaning.shouldCleanFilters"),1,0)
Vertical Swing Multi-value Switch

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

Vertical Swing

Read switch state
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
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

Temperature setpoint control with current temperature and humidity readings

numeric Unit: °C JSON parsejson()

Thermostat

Read temperature
PARSEJSON(responseJson,"$.result.measurements.temperature");
Read humidity
PARSEJSON(responseJson,"$.result.measurements.humidity")/100.0;
Read desired temperature
PARSEJSON(responseJson,"$.result.acState.targetTemperature");
Write desired temperature
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)

Sources

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Verified by TapHome

Want to use this in your TapHome Core?

Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog.

Open in portal