ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
mistral_ir.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace esphome::mistral_ir {
6
7// Temperature range, Celsius
8constexpr uint8_t MISTRAL_TEMP_MIN = 16;
9constexpr uint8_t MISTRAL_TEMP_MAX = 30;
10
11constexpr uint16_t MISTRAL_ADDRESS = 0x322C;
12constexpr size_t MISTRAL_FRAME_SIZE = 12;
13
14/* Reverse-engineered protocol for a "Mistral" (Belgian brand, model MHFE1126A / MR112C) split AC unit
15 from the 2000-2010 era, likely a rebadged OEM design. It is carried over AEHA IR timing (address
16 0x322C) but does not match any protocol already implemented in ESPHome, so it is decoded/encoded
17 directly here rather than through the generic AEHA helper.
18
19 Frame layout (12 bytes): 56 xx 08 xx xx xx xx 00 E8 00 60 xx
20 byte[1] / byte[6] -- fan speed
21 byte[3] -- power: 0x20 on, 0x00 off
22 byte[4] -- mode
23 byte[5] -- target temperature (bit-reversed offset from 0x9F)
24 byte[11] -- checksum: bit-reverse the sum of bit-reversed bytes 1, 3, 4, 5, 6, 8
25*/
27 public:
32
33 protected:
34 void transmit_state() override;
36};
37
38} // namespace esphome::mistral_ir
ClimateIR(float minimum_temperature, float maximum_temperature, float temperature_step=1.0f, bool supports_dry=false, bool supports_fan_only=false, climate::ClimateFanModeMask fan_modes=climate::ClimateFanModeMask(), climate::ClimateSwingModeMask swing_modes=climate::ClimateSwingModeMask(), climate::ClimatePresetMask presets=climate::ClimatePresetMask())
Definition climate_ir.h:25
bool on_receive(remote_base::RemoteReceiveData data) override
@ CLIMATE_FAN_MEDIUM
The fan mode is set to Medium.
@ CLIMATE_FAN_AUTO
The fan mode is set to Auto.
@ CLIMATE_FAN_LOW
The fan mode is set to Low.
@ CLIMATE_FAN_HIGH
The fan mode is set to High.
constexpr size_t MISTRAL_FRAME_SIZE
Definition mistral_ir.h:12
constexpr uint8_t MISTRAL_TEMP_MAX
Definition mistral_ir.h:9
constexpr uint8_t MISTRAL_TEMP_MIN
Definition mistral_ir.h:8
constexpr uint16_t MISTRAL_ADDRESS
Definition mistral_ir.h:11