11static constexpr uint16_t TOSHIBA_HEADER_MARK = 4380;
12static constexpr uint16_t TOSHIBA_HEADER_SPACE = 4370;
13static constexpr uint16_t TOSHIBA_GAP_SPACE = 5480;
14static constexpr uint16_t TOSHIBA_BIT_MARK = 540;
15static constexpr uint8_t TOSHIBA_HEADER_LENGTH = 4;
16static constexpr uint8_t TOSHIBA_HEADER_BYTE_0 = 0xF2;
17static constexpr uint8_t TOSHIBA_HEADER_BYTE_1 = 0x0D;
18static constexpr uint8_t TOSHIBA_COMMAND_DEFAULT = 0x01;
19static constexpr uint8_t TOSHIBA_COMMAND_TIMER = 0x02;
20static constexpr uint8_t TOSHIBA_COMMAND_POWER = 0x08;
21static constexpr uint8_t TOSHIBA_FAN_SPEED_AUTO = 0x00;
22static constexpr uint8_t TOSHIBA_FAN_SPEED_QUIET = 0x20;
23static constexpr uint8_t TOSHIBA_FAN_SPEED_1 = 0x40;
24static constexpr uint8_t TOSHIBA_FAN_SPEED_2 = 0x60;
25static constexpr uint8_t TOSHIBA_FAN_SPEED_3 = 0x80;
26static constexpr uint8_t TOSHIBA_FAN_SPEED_4 = 0xA0;
27static constexpr uint8_t TOSHIBA_FAN_SPEED_5 = 0xC0;
28static constexpr uint8_t TOSHIBA_POWER_HIGH = 0x01;
29static constexpr uint8_t TOSHIBA_POWER_ECO = 0x03;
30static constexpr uint8_t TOSHIBA_MOTION_SWING = 0x04;
31static constexpr uint8_t TOSHIBA_MOTION_VANE_STEP = 0x00;
61 void setup()
override;
98 return message[0] == TOSHIBA_HEADER_BYTE_0 &&
message[1] == TOSHIBA_HEADER_BYTE_1 &&
117 optional<climate::ClimateFanMode> last_fan_mode_{};
118 float last_target_temperature_{24.0f};
120 float temperature_max_() {
138 void decode_mode_fan_temperature_(
const uint8_t *
message);
139 uint8_t seiya_swing_code_()
const;
140 void seiya_decode_swing_(uint8_t code);
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())
static bool frame_header_valid(const uint8_t *message)
void encode_(remote_base::RemoteTransmitData *data, const uint8_t *message, uint8_t nbytes, uint8_t repeat)
virtual void transmit_current_temperature()
static void finalize_frame(uint8_t *message, uint8_t length)
bool compare_rac_pt1411hwru_packets_(const uint8_t *message1, const uint8_t *message2)
virtual float temperature_min()
virtual void sanitize_restore_state(climate::ClimateDeviceRestoreState &restore)
bool is_valid_rac_pt1411hwru_message_(const uint8_t *message)
static climate::ClimateFanMode decode_fan(uint8_t code)
void transmit_ras_2819t_()
uint8_t is_valid_rac_pt1411hwru_header_(const uint8_t *message)
uint8_t encode_fan_() const
void transmit_rac_pt1411hwru_()
uint8_t encode_mode_() const
void set_model(Model model)
bool process_ras_2819t_command_(const remote_base::ToshibaAcData &toshiba_data)
bool decode_(remote_base::RemoteReceiveData *data, uint8_t *message, uint8_t nbytes)
void decode_mode_(const uint8_t *message)
climate::ClimateSwingMode last_swing_mode_
void transmit_rac_pt1411hwru_temp_(bool cs_state=true, bool cs_send_update=true)
void transmit_state() override
bool on_receive(remote_base::RemoteReceiveData data) override
static bool frame_checksum_valid(const uint8_t *message, uint8_t length)
const LogString * message
FiniteSetMask< ClimateSwingMode, DefaultBitPolicy< ClimateSwingMode, CLIMATE_SWING_HORIZONTAL+1 > > ClimateSwingModeMask
ClimateSwingMode
Enum for all modes a climate swing can be in NOTE: If adding values, update ClimateSwingModeMask in c...
@ CLIMATE_SWING_OFF
The swing mode is set to Off.
@ CLIMATE_SWING_HORIZONTAL
The fan mode is set to Horizontal.
@ CLIMATE_SWING_VERTICAL
The fan mode is set to Vertical.
@ CLIMATE_SWING_BOTH
The fan mode is set to Both.
ClimateMode
Enum for all modes a climate device can be in.
@ CLIMATE_MODE_OFF
The climate device is off.
ClimateFanMode
NOTE: If adding values, update ClimateFanModeMask in climate_traits.h to use the new last value.
@ 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_QUIET
The fan mode is set to Quiet.
@ CLIMATE_FAN_HIGH
The fan mode is set to High.
const float TOSHIBA_RAS_2819T_TEMP_C_MAX
const float TOSHIBA_RAC_PT1411HWRU_TEMP_F_MIN
const float TOSHIBA_GENERIC_TEMP_C_MAX
const float TOSHIBA_GENERIC_TEMP_C_MIN
const float TOSHIBA_RAC_PT1411HWRU_TEMP_C_MAX
const float TOSHIBA_RAS_2819T_TEMP_C_MIN
const float TOSHIBA_RAC_PT1411HWRU_TEMP_C_MIN
const float TOSHIBA_RAC_PT1411HWRU_TEMP_F_MAX
constexpr uint8_t xor_bytes(const uint8_t *data, size_t len, uint8_t init=0)
XOR the bytes of data with size len, starting from init.
Struct used to save the state of the climate device in restore memory.