External ESPHome components for Tadiran air conditioners.
The current implementation provides a transmit-only climate platform:
climate:
- platform: tadiran
name: "Tadiran AC"
transmitter_id: ir_transmitter
model: tac490It is based on the main protocol from arikfe/IRTadiran, adapted to ESPHome's climate_ir::ClimateIR component model.
Implemented:
platform: tadiran- IR transmit support through ESPHome
remote_transmitter - Cool, heat, dry, fan-only, off
- Fan auto, low, medium, high
- Vertical swing on/off
- Temperature range 16C to 30C
- Platform-level
modeloption (currently onlytac490, defaulttac490) - Original remote receive support through ESPHome
remote_receiver receiver_idsupport
Not implemented yet:
- The separate
IRTadiranSakalprotocol variant - Hardware-verified frame fixtures for specific Tadiran models
Use this repository directly from Git:
external_components:
- source:
type: git
url: https://github.com/liranbg/esphome-components
ref: main
components:
- tadiranref is optional, but recommended so you can pin to a known branch/tag/commit.
If you prefer working from a local checkout, you can also use:
external_components:
- source:
type: local
path: components
components:
- tadiranConfigure a transmitter and the Tadiran climate entity:
remote_transmitter:
- pin:
number: GPIOXX
carrier_duty_percent: 50%
id: ir_transmitter
remote_receiver:
- pin:
number: GPIOYY
id: ir_receiver
climate:
- platform: tadiran
name: "Tadiran AC"
transmitter_id: ir_transmitter
receiver_id: ir_receiver
model: tac490For a complete local compile example, see test_components.yaml.
The current tadiran implementation follows the main IRTadiran protocol:
- 8-byte state frame
- 38 kHz carrier
- Header mark/space around
8000/4000 - Two repeated frames
- LSB-first byte encoding
1bit timing:1618/5450bit timing:545/1618- Temperature encoded as
2 * temperature - Mode and fan packed into byte
1 - Original remote capture for cool 22C auto fan decodes to
01 41 2C 00 00 30 00 17 - Swing flag in byte
6 - Checksum in byte
7
The source repository also includes IRTadiranSakal, which appears to use a
different frame layout and timing. That variant is intentionally not mixed into
this component until it can be modelled cleanly.
Validate the example config:
.venv/bin/esphome config test_components.yamlCompile it:
.venv/bin/esphome compile test_components.yamlRun YAML lint:
make lintFormat the C++ files:
make fmtProtocol logic is adapted from arikfe/IRTadiran, which is MIT licensed.