TapHome

Jablotron Futura L+

Modbus TCP
Submitted by
Last updated: 06. 2026
Jablotron Futura L+

The Jablotron Futura L+ is a heat-recovery ventilation unit (MVHR) with an enthalpy counter-current exchanger, built by JABLOTRON LIVING TECHNOLOGY CZ for residential buildings. TapHome connects directly to the unit via Modbus TCP over Ethernet — no gateway or accessory module is required.

The template exposes ventilation mode selection, timed boost/circulation/overpressure functions, filter wear, supply/exhaust/outdoor temperature and humidity, heat-recovery and power metrics, feature enable switches (bypass, heating, cooling, anti-radon, auto-circulation), a temperature setpoint and read/write access to the 8 external-sensor and 8 external-button zones.

The Futura L+ has a condensed register address space that differs from the Futura L/M/S. A separate TapHome template (Jablotron Futura L, M, S) exists for the older models. Importing the wrong template will produce ILLEGAL_DATA_ADDRESS errors or silently read junk. Verify the unit model before import.

Hardware connection

The Futura unit has a single RJ45 Ethernet connector on the main control board (X1 — LAN). Connect it to the same local network as TapHome Core using a standard Ethernet cable — no additional gateway, converter or accessory is required for TapHome integration.

Only the LAN connector (X1) is relevant for TapHome. The RS-485 buses (X2, X3) and AA bus (X6) are reserved for Jablotron’s own accessories (Alfa control panels, wall sensors, CoolBreeze, VarioBreeze) and are not exposed for external BMS use.

Control board connectors
Jablotron Futura control board connector layout (X1-X6 and T1 button)
ConnectorTypeFunction
X1RJ45LAN — Modbus TCP to TapHome, MyJABLOTRON cloud
X2Phoenix Contact 3-pinRS-485 bus — reserved / unused
X3Phoenix Contact 4-pinRS-485 bus for Alfa panels, CO2 sensors, CoolBreeze
X4Phoenix Contact 2-pinNTC 10 kΩ outdoor-temperature sensor
X5Phoenix Contact 5-pinIN/OUT: LED, BST (boost), IN2, IN1 (0–10 V or contact), GND
X6Phoenix Contact 2-pinAA bus (legacy single-panel bus)
T1PCB buttonShort press = filter init, long press = Bluetooth service mode

Analog inputs IN1/IN2 on X5 (0–10 V or potential-free contact) are an optional parallel BMS channel. Per the installation manual, analog control is superior to CO2 sensors (overrides them) — useful when Modbus TCP is not feasible, but TapHome integration uses only the LAN port.

Configuration

No activation, DIP switch or service menu is required to enable Modbus TCP on the Futura L+. The TCP server is active by default once the unit is powered and connected to the LAN.

When importing the template in TapHome, provide:

  • IP Address — the unit’s IP on the local network
  • Device address (Unit ID) — Modbus slave address (fixed value: 1)

Connection parameters:

ParameterValue
ProtocolModbus TCP
Port502
Device address1
Available sockets1 (single concurrent client)
Firmware minimumFLA.P.01.06
Register rangeIR:0–IR:26, HR:0–HR:273

The Futura L+ accepts only one Modbus TCP client at a time. If another system (Home Assistant, custom Modbus client, second TapHome Core) is already connected, TapHome will be unable to open the socket. Disconnect other Modbus TCP clients before importing the template. The MyJABLOTRON cloud link uses outbound HTTPS and does not occupy the Modbus socket.

Assign a static IP address to the Futura L+ in the router’s DHCP reservation table. The unit does not advertise itself via mDNS/Zeroconf, so a stable IP is required for reliable reconnection after power cycles.

Composite registers (uint32, int32) must be read and written in a single Modbus operation — partial reads return ILLEGAL_DATA_ADDRESS. The TapHome template batches reads correctly; this error during normal operation typically indicates the wrong template variant (L/M/S vs L+) was imported.

Optional password protection

Holding register HR:920 (user_password) is 65535 = disabled by default, meaning Modbus writes are accepted without authentication. If an installer has enabled password protection via the MyJABLOTRON / MyCOMPANY app, Modbus writes will silently fail until the access code is written to HR:900 within the password timeout (default 300 s, HR:922). For typical TapHome installations, leave the password disabled.

Device capabilities

The template exposes 84 devices covering unit-wide metrics, timed functions, feature toggles, the temperature setpoint and the 8 external-sensor and 8 external-button zones.

Ventilation mode
  • Ventilation Mode — selector for fan power via holding register HR:0. Exposed values: Off (0), manual Level 1–5 (1–5), Automatic (6). The template additionally exposes numeric values 7–9 that have no documented meaning in the register map and should be treated as reserved.
Timed functions

Three timed functions are exposed as multi-value switches with 10 preset durations (Off, 30 s, 60 s, 5 min, 10 min, 15 min, 30 min, 1 h, 1.5 h, 2 h). Each function also exposes a Remaining Time [s] service attribute and a service action accepting a custom countdown value (1–7200 s):

  • Boost Function (HR:1) — maximum ventilation for the selected period
  • Circulation Function (HR:2) — air recirculation (internal loop) without heat recovery
  • Overpressure Function (HR:3) — supply > exhaust, useful during fireplace ignition

Reading the register returns the remaining countdown in seconds; writing arms the function.

Air path sensors

Three of the unit’s air-path sensor positions are exposed, each combining temperature and humidity from separate input registers:

DeviceTemperatureHumidityDescription
Outdoor AirIR:12IR:16Ambient air before heat recovery
Supply AirIR:13IR:17Fresh air delivered into the building
Exhaust AirIR:15IR:19Waste air leaving the building
External NTC SensorIR:20Optional NTC 10 kΩ outdoor probe on X4

Temperatures are stored as 0.1 °C (int16) and scaled to °C in the template; humidity values are scaled to fractions (0–1) from the raw 0.1 % reading.

The External NTC Sensor reports -99 when no probe is connected to the X4 connector. The template maps this sentinel to NaN so the value does not appear as a valid temperature in TapHome.

Performance monitoring
  • Heat Recovery (IR:23) — instantaneous heat recovered from exhaust into supply, in W
  • Power Consumption (IR:22) — total electrical power draw of the unit, in W
  • Heating Power (IR:24) — current draw of the internal 350 W electric post-heater, in W
  • Air Flow (IR:25) — combined supply + exhaust volumetric flow, in m³/h
  • Filter Wear Level (IR:21) — filter contamination level: 0 % = clean, 100 % = replacement needed. Exposed as a dimmer-style level (0.0–1.0).
Temperature setpoint
  • Preferred Temperature (HR:4) — indoor temperature setpoint for the unit’s internal control loop, in °C. Reads and writes are scaled ×10 (0.1 °C resolution).
Feature enable switches

Binary on/off switches controlling unit behavior:

  • Bypass Enable (HR:7) — automatic bypass of the heat exchanger when free cooling is useful
  • Cooling Enable (HR:9) — enables the CoolBreeze cooling module (requires accessory)
  • Heating Enable (HR:15) — enables the internal 350 W electric post-heater
  • Anti-Radon Protection Enable (HR:6) — reduced recirculation to prevent radon accumulation
  • Auto Circulation (HR:10) — automatic air-recirculation function
  • Time Program (HR:5) — weekly time-program scheduling
External zone sensors (zones 1–8)

The Futura L+ supports up to 8 external CO2/temperature/humidity sensors. For each of the 8 zones the template exposes:

  • Sensor Present — enables the sensor input for the zone
  • Temperature — external temperature value (−20 °C to 100 °C, 0.1 °C resolution)
  • Humidity — relative humidity (0–100 %)
  • CO2 — CO2 level (0–10 000 ppm)

Zone sensor holding-register blocks are at HR:100–175 (10 registers per zone, stride 10).

External zone buttons (zones 1–8)

The Futura L+ also supports 8 external wall buttons for quick boost or kitchen-hood activation. Per zone:

  • Button Present — enables the button input
  • Button Mode — selects between Boost (0) and Kitchen Hood / Digestoř (1)
  • Button Timer — countdown (0–10 800 s)
  • Button Activation — triggers the button action (3-hour time limit)

Zone button holding-register blocks are at HR:200–273 (10 registers per zone, stride 10).

Module service attributes

Two diagnostic attributes are exposed at module level:

  • MAC Address (IR:2–IR:4) — the unit’s Ethernet MAC, assembled from three 16-bit registers and formatted as a hex string
  • Firmware Version (IR:0) — the L+ firmware revision (uint32)

Troubleshooting

No Modbus communication
  1. Verify the Ethernet cable is connected to X1 (LAN) on the main board — not to any Phoenix Contact terminal
  2. Confirm the unit’s IP address via the router’s DHCP lease table or the MyJABLOTRON app; ensure TapHome Core and the Futura are on the same subnet
  3. Check that no firewall is blocking TCP port 502 between TapHome and the unit
  4. Ensure no other Modbus TCP client (Home Assistant, diagnostic tool, second TapHome Core) is holding the single available socket — disconnect any such client and retry
  5. Verify firmware is FLA.P.01.06 or newer (visible in MyJABLOTRON)
ILLEGAL_DATA_ADDRESS errors

Composite registers (uint32 bitmaps, int32 timestamps) must be read in a single Modbus operation. In practice this error during normal TapHome polling indicates the wrong template variant was imported. The L/M/S template addresses registers at IR:30–52 / HR:0–17 which do not exist in the L+ map (L+ starts at IR:0 and HR:0 with a condensed layout). Re-import the correct Jablotron Futura L+ template.

Modbus writes have no effect

If the unit responds to reads but ignores writes (mode changes, timer starts, enable toggles), the installer may have enabled the user password in MyJABLOTRON. Either disable the password (write 65535 to HR:920 while logged in) or keep HR:900 authenticated by writing the access code within the HR:922 timeout window. For typical TapHome installations the password should remain disabled.

Mode or timer values look wrong

The Futura L+ uses 0.1 °C and 0.1 % encoding for temperatures and humidity. The TapHome template already applies the correct scaling (÷10 for temperature, ÷1000 for humidity in the supply/exhaust/outdoor devices). If values appear 10× or 1000× off, the wrong template (L/M/S) was imported — the scaling factors differ between variants.

Available devices

Jablotron Futura L+ Module
Service Attributes
MAC Address
Firmware Version

Jablotron Futura L+

Read (module)
var Code := MODBUSR(A,6, UInt32);
IF (GETBIT(Code,0), ADDINFO(0,"Aktivní funkce Boost"));
IF (GETBIT(Code,1), ADDINFO(1,"Aktivní funkce Cirkulace"));
IF (GETBIT(Code,2), ADDINFO(2,"Aktivní časový program"));
IF (GETBIT(Code,3), ADDINFO(3,"Aktivní funkce Přetlak"));
IF (GETBIT(Code,4), ADDINFO(4,"Aktivní funkce Dovolená"));
IF (GETBIT(Code,5), ADDINFO(5,"Aktivní funkce Párty"));
IF (GETBIT(Code,6), ADDINFO(6,"Aktivní funkce Noční režim"));
IF (GETBIT(Code,7), ADDINFO(7,"Aktivní funkce Protiradonová ochrana"));
IF (GETBIT(Code,8), ADDINFO(8,"Zařízení je zapnuto, není v režimu snížené spotřeby"));
IF (GETBIT(Code,9), ADDINFO(9,"Probíhá kontrola filtrů"));
IF (GETBIT(Code,10), ADDINFO(10,"Probíhá vysoušení"));
IF (GETBIT(Code,11), ADDINFO(11,"Otevřený Bypass"));
IF (GETBIT(Code,12), ADDINFO(12,"Nízká venkovní teplota, omezená funkce větrání"));
IF (GETBIT(Code,13), ADDINFO(13,"Odstavení po chybě"));
IF (GETBIT(Code,14), ADDINFO(14,"Zařízení se spouští"));
IF (GETBIT(Code,15), ADDINFO(15,"Aktivní servisní režim"));
IF (GETBIT(Code,16), ADDINFO(16,"Teplota odpadního vzduchu < -3°C (splněna podmínka ochrany před zamrznutím)"));
IF (GETBIT(Code,17), ADDINFO(17,"Nouzové vypnutí"));
IF (GETBIT(Code,18), ADDINFO(18,"Nouzové vypnutí"));
IF (GETBIT(Code,19), ADDINFO(19,"Odměřování tlakové ztráty"));
IF (GETBIT(Code,20), ADDINFO(20,"Stand-by"));
IF (GETBIT(Code,21), ADDINFO(21,"Zónový boost"));
IF (GETBIT(Code,22), ADDINFO(22,"Odměřování tlakové ztráty zón"));

Code := MODBUSR(A,8, UInt32);
IF (GETBIT(Code,0), ADDERROR(0,"Chyba senzoru ambient"));
IF (GETBIT(Code,1), ADDERROR(1,"Chyba senzoru indoor"));
IF (GETBIT(Code,2), ADDERROR(2,"Chyba senzoru fresh"));
IF (GETBIT(Code,3), ADDERROR(3,"Chyba senzoru waste"));
IF (GETBIT(Code,4), ADDERROR(4,"Chyba přívodního ventilátoru"));
IF (GETBIT(Code,5), ADDERROR(5,"Chyba odtahového ventilátoru"));
IF (GETBIT(Code,6), ADDERROR(6,"Chyba komunikace s výměníkem"));
IF (GETBIT(Code,7), ADDERROR(7,"Chyba polohy klapek výměníku"));
IF (GETBIT(Code,8), ADDERROR(8,"Chyba komunikace s IO deskou"));
IF (GETBIT(Code,9), ADDERROR(9,"Zablokovaný přívodní ventilátor"));
IF (GETBIT(Code,10), ADDERROR(10,"Zablokovaný odtahový ventilátor"));
IF (GETBIT(Code,11), ADDERROR(11,"Chyba komunikace s Coolbreeze"));
IF (GETBIT(Code,12), ADDERROR(12,"Chyba venkovní jednotky Coolbreeze"));

Code := MODBUSR(A,10, UInt32);
IF (GETBIT(Code,0), ADDWARNING(0,"Neinicializovaný filtr"));
IF (GETBIT(Code,1), ADDWARNING(1,"Filtr je příliš zanesený"));
IF (GETBIT(Code,2), ADDWARNING(2,"Filtr se používá příliš dlouho"));
IF (GETBIT(Code,3), ADDWARNING(3,"Nízké napětí RTC baterie"));
IF (GETBIT(Code,4), ADDWARNING(4,"Příliš vysoké otáčky přívodního ventilátoru"));
IF (GETBIT(Code,5), ADDWARNING(5,"Příliš vysoké otáčky odtahového ventilátoru"));
IF (GETBIT(Code,8), ADDWARNING(8,"Příliš nízká venkovní teplota, omezená funkce větrání"));
IF (GETBIT(Code,9), ADDWARNING(9,"Nesprávná konfigurace zónového větrání - přívod"));
IF (GETBIT(Code,10), ADDWARNING(10,"Nesprávná konfigurace zónového větrání - odtah"));
IF (GETBIT(Code,11), ADDWARNING(11,"Nouzové vypnutí"));
IF (GETBIT(Code,12), ADDWARNING(12,"Chyba komunikace se SuperBreeze"));
IF (GETBIT(Code,13), ADDWARNING(13,"Obecná chyba SuperBreeze"));
Service Attributes
MAC adresa
var macA := MODBUSR(A, 2, Uint16);
var macB := MODBUSR(A, 3, Uint16);
var macC := MODBUSR(A, 4, Uint16);
TOSTRING(GETBYTE(macA, 0), "X2") + ":" +
TOSTRING(GETBYTE(macA, 1), "X2") + ":" +
TOSTRING(GETBYTE(macB, 0), "X2") + ":" +
TOSTRING(GETBYTE(macB, 1), "X2") + ":" +
TOSTRING(GETBYTE(macC, 0), "X2") + ":" +
TOSTRING(GETBYTE(macC, 1), "X2");
Verze firmware
MODBUSR(A, 0, Uint32)
Heat Recovery Variable Read-only

Instantaneous heat recovered from exhaust air into the supply stream, in watts

Register: IR:23 UInt16 Unit: W

Heat Recovery

Read
MODBUSR(A, 23, Uint16)
Power Consumption Variable Read-only

Instantaneous electrical power draw of the unit (fans + electronics + post-heater), in watts

Register: IR:22 UInt16 Unit: W

Power Consumption

Read
MODBUSR(A, 22, Uint16)
Air Flow Variable Read-only

Combined supply and exhaust air flow volume, in m³/h

Register: IR:25 UInt16 Unit: m3/h

Air Flow

Read
MODBUSR(A, 25, Uint16)
Auto Circulation Switch

Enables automatic air recirculation (internal loop) when conditions require it

Register: HR:10 Bool boolean
Values / States: ON · OFF

Auto Circulation

Read switch state
MODBUSR(H, 10, Bool)
Write switch state
MODBUSW(H, 10, Bool, St)
Time Program Switch

Enables the weekly time-program schedule configured on the unit

Register: HR:5 UInt16 boolean
Values / States: ON · OFF

Time Program

Read switch state
MODBUSR(H, 5, Uint16)
Write switch state
MODBUSW(H, 5, Uint16, St)
Supply Air Temperature Sensor Read-only

Fresh air temperature and humidity delivered into the building (after heat recovery)

Register: IR:13 Int16 Unit: °C direct, /10

Supply Air

Read humidity
MODBUSR(A, 17, Int16) / 1000
Read temperature
MODBUSR(A, 13, Int16) / 10
External NTC Sensor Temperature Sensor Read-only

Optional external NTC 10 kΩ outdoor-temperature probe on connector X4; reads -99 when disconnected

Register: IR:20 Int16 Unit: °C direct, /10

External NTC Sensor

Read temperature
var x:= MODBUSR(A, 20, Int16) / 10;
if (x = -99, NaN, x)
Boost Function Multi-value Switch

Timed maximum ventilation — select a preset duration; reading returns the remaining countdown

Register: HR:1 UInt16 Unit: s numeric
Values / States: Off · 30 s · 60 s · 5 min · 10 min · 15 min · 30 min · 1 h · 1.5 h · 2 h
Service Actions
Boost Function

Boost Function

Read switch state
var x := MODBUSR(H, 1, Uint16);
IF(x = 0, RETURN(0));
IF(x > 5400, RETURN(9));
IF(x > 3600, RETURN(8));
IF(x > 1800, RETURN(7));
IF(x > 900, RETURN(6));
IF(x > 600, RETURN(5));
IF(x > 300, RETURN(4));
IF(x > 60, RETURN(3));
IF(x > 30, RETURN(2));
IF(x > 0, RETURN(1));
Write switch state
IF(Mu = 0, MODBUSW(H, 1, Uint16, 0));
IF(Mu = 1, MODBUSW(H, 1, Uint16, 30));
IF(Mu = 2, MODBUSW(H, 1, Uint16, 60));
IF(Mu = 3, MODBUSW(H, 1, Uint16, 300));
IF(Mu = 4, MODBUSW(H, 1, Uint16, 600));
IF(Mu = 5, MODBUSW(H, 1, Uint16, 900));
IF(Mu = 6, MODBUSW(H, 1, Uint16, 1800));
IF(Mu = 7, MODBUSW(H, 1, Uint16, 3600));
IF(Mu = 8, MODBUSW(H, 1, Uint16, 5400));
IF(Mu = 9, MODBUSW(H, 1, Uint16, 7200));
Service Attributes
Zbývající čas [s]
MODBUSR(H, 1, Uint16)
Service Actions
Funkce Boost
Parameters: Čas (1–7200 sec)
MODBUSW(H, 1, Uint16, sec)
Circulation Function Multi-value Switch

Timed air recirculation (internal loop, no heat recovery); reading returns the remaining countdown

Register: HR:2 UInt16 Unit: s numeric
Values / States: Off · 30 s · 60 s · 5 min · 10 min · 15 min · 30 min · 1 h · 1.5 h · 2 h
Service Actions
Circulation Function

Circulation Function

Read switch state
var x := MODBUSR(H, 2, Uint16);
IF(x = 0, RETURN(0));
IF(x > 5400, RETURN(9));
IF(x > 3600, RETURN(8));
IF(x > 1800, RETURN(7));
IF(x > 900, RETURN(6));
IF(x > 600, RETURN(5));
IF(x > 300, RETURN(4));
IF(x > 60, RETURN(3));
IF(x > 30, RETURN(2));
IF(x > 0, RETURN(1));
Write switch state
IF(Mu = 0, MODBUSW(H, 2, Uint16, 0));
IF(Mu = 1, MODBUSW(H, 2, Uint16, 30));
IF(Mu = 2, MODBUSW(H, 2, Uint16, 60));
IF(Mu = 3, MODBUSW(H, 2, Uint16, 300));
IF(Mu = 4, MODBUSW(H, 2, Uint16, 600));
IF(Mu = 5, MODBUSW(H, 2, Uint16, 900));
IF(Mu = 6, MODBUSW(H, 2, Uint16, 1800));
IF(Mu = 7, MODBUSW(H, 2, Uint16, 3600));
IF(Mu = 8, MODBUSW(H, 2, Uint16, 5400));
IF(Mu = 9, MODBUSW(H, 2, Uint16, 7200));
Service Attributes
Zbývající čas [s]
MODBUSR(H, 2, Uint16)
Service Actions
Funkce Cirkulace
Parameters: Čas (1–7200 sec)
MODBUSW(H, 2, Uint16, sec)
Overpressure Function Multi-value Switch

Timed overpressure mode (supply > exhaust) — useful during fireplace ignition; reading returns the remaining countdown

Register: HR:3 UInt16 Unit: s numeric
Values / States: Off · 30 s · 60 s · 5 min · 10 min · 15 min · 30 min · 1 h · 1.5 h · 2 h
Service Actions
Overpressure Function

Overpressure Function

Read switch state
var x := MODBUSR(H, 3, Uint16);
IF(x = 0, RETURN(0));
IF(x > 5400, RETURN(9));
IF(x > 3600, RETURN(8));
IF(x > 1800, RETURN(7));
IF(x > 900, RETURN(6));
IF(x > 600, RETURN(5));
IF(x > 300, RETURN(4));
IF(x > 60, RETURN(3));
IF(x > 30, RETURN(2));
IF(x > 0, RETURN(1));
Write switch state
IF(Mu = 0, MODBUSW(H, 3, Uint16, 0));
IF(Mu = 1, MODBUSW(H, 3, Uint16, 30));
IF(Mu = 2, MODBUSW(H, 3, Uint16, 60));
IF(Mu = 3, MODBUSW(H, 3, Uint16, 300));
IF(Mu = 4, MODBUSW(H, 3, Uint16, 600));
IF(Mu = 5, MODBUSW(H, 3, Uint16, 900));
IF(Mu = 6, MODBUSW(H, 3, Uint16, 1800));
IF(Mu = 7, MODBUSW(H, 3, Uint16, 3600));
IF(Mu = 8, MODBUSW(H, 3, Uint16, 5400));
IF(Mu = 9, MODBUSW(H, 3, Uint16, 7200));
Service Attributes
Zbývající čas [s]
MODBUSR(H, 3, Uint16)
Service Actions
Funkce Přetlak
Parameters: Čas (1–7200 sec)
MODBUSW(H, 3, Uint16, sec)
Filter Wear Level Dimmer Read-only

Filter contamination level — 0 % = clean, 100 % = replacement needed

Register: IR:21 UInt16 Unit: % numeric, /100

Filter Wear Level

Read level
MODBUSR(A, 21, Uint16) / 100
Exhaust Air Temperature Sensor Read-only

Waste air temperature and humidity leaving the building (before the heat exchanger)

Register: IR:15 Int16 Unit: °C direct, /10

Exhaust Air

Read humidity
MODBUSR(A, 19, Int16) / 1000
Read temperature
MODBUSR(A, 15, Int16) / 10
Bypass Enable Switch

Enables automatic bypass of the heat exchanger when free cooling is useful

Register: HR:7 UInt16 boolean
Values / States: Povoleno · Zakázáno

Bypass Enable

Read switch state
MODBUSR(H, 7, Uint16)
Write switch state
MODBUSW(H, 7, Uint16, St)
Cooling Enable Switch

Enables the CoolBreeze active cooling module (requires accessory)

Register: HR:9 UInt16 boolean
Values / States: ON · OFF

Cooling Enable

Read switch state
MODBUSR(H, 9, Uint16)
Write switch state
MODBUSW(H, 9, Uint16, St)
Anti-Radon Protection Enable Switch

Enables anti-radon protection — reduced recirculation to prevent radon accumulation

Register: HR:6 UInt16 boolean
Values / States: Povoleno · Zakázáno

Anti-Radon Protection Enable

Read switch state
MODBUSR(H, 6, Uint16)
Write switch state
MODBUSW(H, 6, Uint16, St)
Heating Enable Switch

Enables the internal 350 W electric post-heater for supply air temperature control

Register: HR:15 UInt16 boolean
Values / States: ON · OFF

Heating Enable

Read switch state
MODBUSR(H, 15, Uint16)
Write switch state
MODBUSW(H, 15, Uint16, St)
Preferred Temperature Thermostat

Indoor temperature setpoint for the unit's internal control loop

Register: HR:4 UInt16 Unit: °C direct, /10

Preferred Temperature

Read desired temperature
MODBUSR(H, 4, Uint16) / 10
Write desired temperature
MODBUSW(H, 4, Uint16, Se * 10)
Outdoor Air Temperature Sensor Read-only

Outdoor/ambient air temperature and humidity (before heat recovery)

Register: IR:12 Int16 Unit: °C direct, /10

Outdoor Air

Read humidity
MODBUSR(A, 16, Int16) / 1000
Read temperature
MODBUSR(A, 12, Int16) / 10
Heating Power Variable Read-only

Current power drawn by the internal 350 W electric post-heater, in watts

Register: IR:24 UInt16 Unit: W

Heating Power

Read
MODBUSR(A, 24, Uint16)
Ventilation Mode Multi-value Switch

Fan power selector — Off, manual Level 1–5, or Automatic (CO2/humidity controlled)

Register: HR:0 UInt16 numeric
Values / States: Off · Level 1 · Level 2 · Level 3 · Level 4 · Level 5 · Automatic

Ventilation Mode

Read switch state
MODBUSR(H, 0, Uint16)
Write switch state
MODBUSW(H, 0, Uint16, Mu)
Zone 1 — CO2 Variable
Register: HR:104 UInt16 Unit: ppm

Zone 1 — CO2

Read
MODBUSR(H, 104, Uint16)
Write
MODBUSW(H, 104, Uint16, round(Va))
Zone 1 — Sensor Present Switch
Register: HR:100 Bool boolean
Values / States: ON · OFF

Zone 1 — Sensor Present

Read switch state
MODBUSR(H, 100, Bool)
Write switch state
MODBUSW(H, 100, Bool, St)
Zone 1 — Temperature Variable
Register: HR:102 Int16 Unit: °C direct, /10

Zone 1 — Temperature

Read
MODBUSR(H, 102, Int16) / 10
Write
MODBUSW(H, 102, Int16, round(Va * 10))
Zone 1 — Humidity Variable
Register: HR:103 UInt16 Unit: %

Zone 1 — Humidity

Read
MODBUSR(H, 103, Uint16)
Write
MODBUSW(H, 103, Uint16, round(Va))
Zone 2 — CO2 Variable
Register: HR:114 UInt16 Unit: ppm

Zone 2 — CO2

Read
MODBUSR(H, 114, Uint16)
Write
MODBUSW(H, 114, Uint16, round(Va))
Zone 2 — Sensor Present Switch
Register: HR:110 Bool boolean
Values / States: ON · OFF

Zone 2 — Sensor Present

Read switch state
MODBUSR(H, 110, Bool)
Write switch state
MODBUSW(H, 110, Bool, St)
Zone 2 — Temperature Variable
Register: HR:112 Int16 Unit: °C direct, /10

Zone 2 — Temperature

Read
MODBUSR(H, 112, Int16) / 10
Write
MODBUSW(H, 112, Int16, round(Va * 10))
Zone 2 — Humidity Variable
Register: HR:113 UInt16 Unit: %

Zone 2 — Humidity

Read
MODBUSR(H, 113, Uint16)
Write
MODBUSW(H, 113, Uint16, round(Va))
Zone 3 — CO2 Variable
Register: HR:124 UInt16 Unit: ppm

Zone 3 — CO2

Read
MODBUSR(H, 124, Uint16)
Write
MODBUSW(H, 124, Uint16, round(Va))
Zone 3 — Sensor Present Switch
Register: HR:120 Bool boolean
Values / States: ON · OFF

Zone 3 — Sensor Present

Read switch state
MODBUSR(H, 120, Bool)
Write switch state
MODBUSW(H, 120, Bool, St)
Zone 3 — Temperature Variable
Register: HR:122 Int16 Unit: °C direct, /10

Zone 3 — Temperature

Read
MODBUSR(H, 122, Int16) / 10
Write
MODBUSW(H, 122, Int16, round(Va * 10))
Zone 3 — Humidity Variable
Register: HR:123 UInt16 Unit: %

Zone 3 — Humidity

Read
MODBUSR(H, 123, Uint16)
Write
MODBUSW(H, 123, Uint16, round(Va))
Zone 4 — CO2 Variable
Register: HR:134 UInt16 Unit: ppm

Zone 4 — CO2

Read
MODBUSR(H, 134, Uint16)
Write
MODBUSW(H, 134, Uint16, round(Va))
Zone 4 — Sensor Present Switch
Register: HR:130 Bool boolean
Values / States: ON · OFF

Zone 4 — Sensor Present

Read switch state
MODBUSR(H, 130, Bool)
Write switch state
MODBUSW(H, 130, Bool, St)
Zone 4 — Temperature Variable
Register: HR:132 Int16 Unit: °C direct, /10

Zone 4 — Temperature

Read
MODBUSR(H, 132, Int16) / 10
Write
MODBUSW(H, 132, Int16, round(Va * 10))
Zone 4 — Humidity Variable
Register: HR:133 UInt16 Unit: %

Zone 4 — Humidity

Read
MODBUSR(H, 133, Uint16)
Write
MODBUSW(H, 133, Uint16, round(Va))
Zone 5 — CO2 Variable
Register: HR:144 UInt16 Unit: ppm

Zone 5 — CO2

Read
MODBUSR(H, 144, Uint16)
Write
MODBUSW(H, 144, Uint16, round(Va))
Zone 5 — Sensor Present Switch
Register: HR:140 Bool boolean
Values / States: ON · OFF

Zone 5 — Sensor Present

Read switch state
MODBUSR(H, 140, Bool)
Write switch state
MODBUSW(H, 140, Bool, St)
Zone 5 — Temperature Variable
Register: HR:142 Int16 Unit: °C direct, /10

Zone 5 — Temperature

Read
MODBUSR(H, 142, Int16) / 10
Write
MODBUSW(H, 142, Int16, round(Va * 10))
Zone 5 — Humidity Variable
Register: HR:143 UInt16 Unit: %

Zone 5 — Humidity

Read
MODBUSR(H, 143, Uint16)
Write
MODBUSW(H, 143, Uint16, round(Va))
Zone 6 — CO2 Variable
Register: HR:154 UInt16 Unit: ppm

Zone 6 — CO2

Read
MODBUSR(H, 154, Uint16)
Write
MODBUSW(H, 154, Uint16, round(Va))
Zone 6 — Sensor Present Switch
Register: HR:150 Bool boolean
Values / States: ON · OFF

Zone 6 — Sensor Present

Read switch state
MODBUSR(H, 150, Bool)
Write switch state
MODBUSW(H, 150, Bool, St)
Zone 6 — Temperature Variable
Register: HR:152 Int16 Unit: °C direct, /10

Zone 6 — Temperature

Read
MODBUSR(H, 152, Int16) / 10
Write
MODBUSW(H, 152, Int16, round(Va * 10))
Zone 6 — Humidity Variable
Register: HR:153 UInt16 Unit: %

Zone 6 — Humidity

Read
MODBUSR(H, 153, Uint16)
Write
MODBUSW(H, 153, Uint16, round(Va))
Zone 7 — CO2 Variable
Register: HR:164 UInt16 Unit: ppm

Zone 7 — CO2

Read
MODBUSR(H, 164, Uint16)
Write
MODBUSW(H, 164, Uint16, round(Va))
Zone 7 — Sensor Present Switch
Register: HR:160 Bool boolean
Values / States: ON · OFF

Zone 7 — Sensor Present

Read switch state
MODBUSR(H, 160, Bool)
Write switch state
MODBUSW(H, 160, Bool, St)
Zone 7 — Temperature Variable
Register: HR:162 Int16 Unit: °C direct, /10

Zone 7 — Temperature

Read
MODBUSR(H, 162, Int16) / 10
Write
MODBUSW(H, 162, Int16, round(Va * 10))
Zone 7 — Humidity Variable
Register: HR:163 UInt16 Unit: %

Zone 7 — Humidity

Read
MODBUSR(H, 163, Uint16)
Write
MODBUSW(H, 163, Uint16, round(Va))
Zone 8 — CO2 Variable
Register: HR:174 UInt16 Unit: ppm

Zone 8 — CO2

Read
MODBUSR(H, 174, Uint16)
Write
MODBUSW(H, 174, Uint16, round(Va))
Zone 8 — Sensor Present Switch
Register: HR:170 Bool boolean
Values / States: ON · OFF

Zone 8 — Sensor Present

Read switch state
MODBUSR(H, 170, Bool)
Write switch state
MODBUSW(H, 170, Bool, St)
Zone 8 — Temperature Variable
Register: HR:172 Int16 Unit: °C direct, /10

Zone 8 — Temperature

Read
MODBUSR(H, 172, Int16) / 10
Write
MODBUSW(H, 172, Int16, round(Va * 10))
Zone 8 — Humidity Variable
Register: HR:173 UInt16 Unit: %

Zone 8 — Humidity

Read
MODBUSR(H, 173, Uint16)
Write
MODBUSW(H, 173, Uint16, round(Va))
Zone 1 — Button Activation Switch
Register: HR:203 UInt16 boolean
Values / States: ON · OFF

Zone 1 — Button Activation

Read switch state
MODBUSR(H, 203, Uint16)
Write switch state
MODBUSW(H, 203, Uint16, St)
Zone 1 — Button Timer Variable
Register: HR:202 UInt16 Unit: s

Zone 1 — Button Timer

Read
MODBUSR(H, 202, Uint16)
Write
MODBUSW(H, 202, Uint16, Va)
Zone 1 — Button Present Switch
Register: HR:200 UInt16 boolean
Values / States: ON · OFF

Zone 1 — Button Present

Read switch state
MODBUSR(H, 200, Uint16)
Write switch state
MODBUSW(H, 200, Uint16, St)
Zone 1 — Button Mode Switch
Register: HR:201 UInt16 boolean
Values / States: Digestoř · Boost

Zone 1 — Button Mode

Read switch state
MODBUSR(H, 201, Uint16)
Write switch state
MODBUSW(H, 201, Uint16, St)
Zone 2 — Button Activation Switch
Register: HR:213 UInt16 boolean
Values / States: ON · OFF

Zone 2 — Button Activation

Read switch state
MODBUSR(H, 213, Uint16)
Write switch state
MODBUSW(H, 213, Uint16, St)
Zone 2 — Button Timer Variable
Register: HR:212 UInt16 Unit: s

Zone 2 — Button Timer

Read
MODBUSR(H, 212, Uint16)
Write
MODBUSW(H, 212, Uint16, Va)
Zone 2 — Button Present Switch
Register: HR:210 UInt16 boolean
Values / States: ON · OFF

Zone 2 — Button Present

Read switch state
MODBUSR(H, 210, Uint16)
Write switch state
MODBUSW(H, 210, Uint16, St)
Zone 2 — Button Mode Switch
Register: HR:211 UInt16 boolean
Values / States: Digestoř · Boost

Zone 2 — Button Mode

Read switch state
MODBUSR(H, 211, Uint16)
Write switch state
MODBUSW(H, 211, Uint16, St)
Zone 3 — Button Activation Switch
Register: HR:223 UInt16 boolean
Values / States: ON · OFF

Zone 3 — Button Activation

Read switch state
MODBUSR(H, 223, Uint16)
Write switch state
MODBUSW(H, 223, Uint16, St)
Zone 3 — Button Timer Variable
Register: HR:222 UInt16 Unit: s

Zone 3 — Button Timer

Read
MODBUSR(H, 222, Uint16)
Write
MODBUSW(H, 222, Uint16, Va)
Zone 3 — Button Present Switch
Register: HR:220 UInt16 boolean
Values / States: ON · OFF

Zone 3 — Button Present

Read switch state
MODBUSR(H, 220, Uint16)
Write switch state
MODBUSW(H, 220, Uint16, St)
Zone 3 — Button Mode Switch
Register: HR:221 UInt16 boolean
Values / States: Digestoř · Boost

Zone 3 — Button Mode

Read switch state
MODBUSR(H, 221, Uint16)
Write switch state
MODBUSW(H, 221, Uint16, St)
Zone 4 — Button Activation Switch
Register: HR:233 UInt16 boolean
Values / States: ON · OFF

Zone 4 — Button Activation

Read switch state
MODBUSR(H, 233, Uint16)
Write switch state
MODBUSW(H, 233, Uint16, St)
Zone 4 — Button Timer Variable
Register: HR:232 UInt16 Unit: s

Zone 4 — Button Timer

Read
MODBUSR(H, 232, Uint16)
Write
MODBUSW(H, 232, Uint16, Va)
Zone 4 — Button Present Switch
Register: HR:230 UInt16 boolean
Values / States: ON · OFF

Zone 4 — Button Present

Read switch state
MODBUSR(H, 230, Uint16)
Write switch state
MODBUSW(H, 230, Uint16, St)
Zone 4 — Button Mode Switch
Register: HR:231 UInt16 boolean
Values / States: Digestoř · Boost

Zone 4 — Button Mode

Read switch state
MODBUSR(H, 231, Uint16)
Write switch state
MODBUSW(H, 231, Uint16, St)
Zone 5 — Button Activation Switch
Register: HR:243 UInt16 boolean
Values / States: ON · OFF

Zone 5 — Button Activation

Read switch state
MODBUSR(H, 243, Uint16)
Write switch state
MODBUSW(H, 243, Uint16, St)
Zone 5 — Button Timer Variable
Register: HR:242 UInt16 Unit: s

Zone 5 — Button Timer

Read
MODBUSR(H, 242, Uint16)
Write
MODBUSW(H, 242, Uint16, Va)
Zone 5 — Button Present Switch
Register: HR:240 UInt16 boolean
Values / States: ON · OFF

Zone 5 — Button Present

Read switch state
MODBUSR(H, 240, Uint16)
Write switch state
MODBUSW(H, 240, Uint16, St)
Zone 5 — Button Mode Switch
Register: HR:241 UInt16 boolean
Values / States: Digestoř · Boost

Zone 5 — Button Mode

Read switch state
MODBUSR(H, 241, Uint16)
Write switch state
MODBUSW(H, 241, Uint16, St)
Zone 6 — Button Activation Switch
Register: HR:253 UInt16 boolean
Values / States: ON · OFF

Zone 6 — Button Activation

Read switch state
MODBUSR(H, 253, Uint16)
Write switch state
MODBUSW(H, 253, Uint16, St)
Zone 6 — Button Timer Variable
Register: HR:252 UInt16 Unit: s

Zone 6 — Button Timer

Read
MODBUSR(H, 252, Uint16)
Write
MODBUSW(H, 252, Uint16, Va)
Zone 6 — Button Present Switch
Register: HR:250 UInt16 boolean
Values / States: ON · OFF

Zone 6 — Button Present

Read switch state
MODBUSR(H, 250, Uint16)
Write switch state
MODBUSW(H, 250, Uint16, St)
Zone 6 — Button Mode Switch
Register: HR:251 UInt16 boolean
Values / States: Digestoř · Boost

Zone 6 — Button Mode

Read switch state
MODBUSR(H, 251, Uint16)
Write switch state
MODBUSW(H, 251, Uint16, St)
Zone 7 — Button Activation Switch
Register: HR:263 UInt16 boolean
Values / States: ON · OFF

Zone 7 — Button Activation

Read switch state
MODBUSR(H, 263, Uint16)
Write switch state
MODBUSW(H, 263, Uint16, St)
Zone 7 — Button Timer Variable
Register: HR:262 UInt16 Unit: s

Zone 7 — Button Timer

Read
MODBUSR(H, 262, Uint16)
Write
MODBUSW(H, 262, Uint16, Va)
Zone 7 — Button Present Switch
Register: HR:260 UInt16 boolean
Values / States: ON · OFF

Zone 7 — Button Present

Read switch state
MODBUSR(H, 260, Uint16)
Write switch state
MODBUSW(H, 260, Uint16, St)
Zone 7 — Button Mode Switch
Register: HR:261 UInt16 boolean
Values / States: Digestoř · Boost

Zone 7 — Button Mode

Read switch state
MODBUSR(H, 261, Uint16)
Write switch state
MODBUSW(H, 261, Uint16, St)
Zone 8 — Button Activation Switch
Register: HR:273 UInt16 boolean
Values / States: ON · OFF

Zone 8 — Button Activation

Read switch state
MODBUSR(H, 273, Uint16)
Write switch state
MODBUSW(H, 273, Uint16, St)
Zone 8 — Button Timer Variable
Register: HR:272 UInt16 Unit: s

Zone 8 — Button Timer

Read
MODBUSR(H, 272, Uint16)
Write
MODBUSW(H, 272, Uint16, Va)
Zone 8 — Button Present Switch
Register: HR:270 UInt16 boolean
Values / States: ON · OFF

Zone 8 — Button Present

Read switch state
MODBUSR(H, 270, Uint16)
Write switch state
MODBUSW(H, 270, Uint16, St)
Zone 8 — Button Mode Switch
Register: HR:271 UInt16 boolean
Values / States: Digestoř · Boost

Zone 8 — Button Mode

Read switch state
MODBUSR(H, 271, Uint16)
Write switch state
MODBUSW(H, 271, Uint16, St)
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (12)
  • IR:6-7 Operation Mode Bitmap (fut_mode) — UInt32, bitmap of 24 active mode/status bits — template parses this in readscript for info/error/warning ADDINFO calls but does not expose a dedicated device
  • IR:8-9 Error Bitmap (fut_error) — UInt32, 22 error bits (sensor errors, fan errors, exchanger errors) — parsed in readscript as ADDERROR, not exposed as device
  • IR:10-11 Warning Bitmap (fut_warning) — UInt32, 18 warning bits (filter, battery, zone config) — parsed in readscript as ADDWARNING, not exposed as device
  • IR:14 Indoor Air Temperature (fut_temp_indoor) — Int16, 0.1°C — indoor/extract air temperature upstream of the exchanger
  • IR:18 Indoor Air Humidity (fut_humi_indoor) — Int16, 0.1% — indoor/extract air humidity
  • IR:26 Heating/Cooling Status (fut_heat_cool_status) — UInt16, bitmask: inner heating, CoolBreeze heating/cooling active; L+ only
  • HR:8 Heating Enable (cfg_heating_enable, per register map) — UInt16, 0/1 — register map documents L+ cfg_heating_enable at HR:8. Template uses HR:15 instead (see Inconsistency Report)
  • HR:101, 111, …, 171 External Sensor Invalidate (ext_sens_invalidate[1–8]) — UInt16 bitmask per zone — bit0=temp, bit1=humidity, bit2=CO2, bit3=floor temp invalidation flags
  • HR:105, 115, …, 175 External Floor Temperature (ext_sens_t_floor[1–8]) — Int16, 0.1°C per zone — floor temperature sensor channel, R/W
  • HR:900 Access Code — UInt16 — write to unlock service registers after user_password is set
  • HR:920 User Password — UInt16, 65535 = disabled — gates Modbus writes when enabled by installer
  • HR:922 Password Timeout — UInt16, default 300 s — auto-logout after inactivity

Sources

  • Jablotron Futura Modbus TCP Register Map
    2026-04-22
    PDF
  • Jablotron Futura Installation Manual (EN, v6.2)
    PDF
  • Home Assistant Jablotron Futura Integration
    github.com 2026-04-22

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