Skip to content

liranbg/esphome-components

Repository files navigation

ESPHome Tadiran IR Components

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

It is based on the main protocol from arikfe/IRTadiran, adapted to ESPHome's climate_ir::ClimateIR component model.

Status

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 model option (currently only tac490, default tac490)
  • Original remote receive support through ESPHome remote_receiver
  • receiver_id support

Not implemented yet:

  • The separate IRTadiranSakal protocol variant
  • Hardware-verified frame fixtures for specific Tadiran models

Usage

Use this repository directly from Git:

external_components:
  - source:
      type: git
      url: https://github.com/liranbg/esphome-components
      ref: main
    components:
      - tadiran

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

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

For a complete local compile example, see test_components.yaml.

Protocol Notes

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
  • 1 bit timing: 1618/545
  • 0 bit 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.

Development

Validate the example config:

.venv/bin/esphome config test_components.yaml

Compile it:

.venv/bin/esphome compile test_components.yaml

Run YAML lint:

make lint

Format the C++ files:

make fmt

Attribution

Protocol logic is adapted from arikfe/IRTadiran, which is MIT licensed.

About

ESPHome component for controlling Tadiran air conditioners via IR

Topics

Resources

Stars

Watchers

Forks

Contributors