IRremoteESP8266
ir_LG.h
Go to the documentation of this file.
1 // Copyright 2017-2021 David Conran
2 
7 
8 // Supports:
9 // Brand: LG, Model: 6711A20083V remote (LG)
10 // Brand: LG, Model: AKB74395308 remote (LG2)
11 // Brand: LG, Model: S4-W12JA3AA A/C (LG2)
12 // Brand: LG, Model: AKB75215403 remote (LG2)
13 // Brand: LG, Model: AKB74955603 remote (LG2 - AKB74955603)
14 // Brand: LG, Model: A4UW30GFA2 A/C (LG2 - AKB74955603 & AKB73757604)
15 // Brand: LG, Model: AMNW09GSJA0 A/C (LG2 - AKB74955603)
16 // Brand: LG, Model: AMNW24GTPA1 A/C (LG2 - AKB73757604)
17 // Brand: LG, Model: AKB73757604 remote (LG2 - AKB73757604)
18 // Brand: LG, Model: AKB73315611 remote (LG2 - AKB74955603)
19 // Brand: LG, Model: MS05SQ NW0 A/C (LG2 - AKB74955603)
20 // Brand: General Electric, Model: AG1BH09AW101 Split A/C (LG)
21 // Brand: General Electric, Model: 6711AR2853M A/C Remote (LG)
22 
23 #ifndef IR_LG_H_
24 #define IR_LG_H_
25 
26 #define __STDC_LIMIT_MACROS
27 #include <stdint.h>
28 #ifndef UNIT_TEST
29 #include <Arduino.h>
30 #endif
31 #include "IRremoteESP8266.h"
32 #include "IRsend.h"
33 #include "IRutils.h"
34 #ifdef UNIT_TEST
35 #include "IRsend_test.h"
36 #endif
37 
39 union LGProtocol{
40  uint32_t raw;
41  struct {
42  uint32_t Sum :4;
43  uint32_t Fan :4;
44  uint32_t Temp :4;
45  uint32_t Mode :3;
46  uint32_t :3;
47  uint32_t Power:2;
48  uint32_t Sign :8;
49  };
50 };
51 
52 const uint8_t kLgAcFanLowest = 0; // 0b0000
53 const uint8_t kLgAcFanLow = 1; // 0b0001
54 const uint8_t kLgAcFanMedium = 2; // 0b0010
55 const uint8_t kLgAcFanMax = 4; // 0b0100
56 const uint8_t kLgAcFanAuto = 5; // 0b0101
57 const uint8_t kLgAcFanLowAlt = 9; // 0b1001
58 const uint8_t kLgAcFanHigh = 10; // 0b1010
59 // Nr. of slots in the look-up table
60 const uint8_t kLgAcFanEntries = kLgAcFanHigh + 1;
61 const uint8_t kLgAcTempAdjust = 15;
62 const uint8_t kLgAcMinTemp = 16; // Celsius
63 const uint8_t kLgAcMaxTemp = 30; // Celsius
64 const uint8_t kLgAcCool = 0; // 0b000
65 const uint8_t kLgAcDry = 1; // 0b001
66 const uint8_t kLgAcFan = 2; // 0b010
67 const uint8_t kLgAcAuto = 3; // 0b011
68 const uint8_t kLgAcHeat = 4; // 0b100
69 const uint8_t kLgAcPowerOff = 3; // 0b11
70 const uint8_t kLgAcPowerOn = 0; // 0b00
71 const uint8_t kLgAcSignature = 0x88;
72 
73 const uint32_t kLgAcOffCommand = 0x88C0051;
74 const uint32_t kLgAcLightToggle = 0x88C00A6;
75 
76 const uint32_t kLgAcSwingSignature = 0x8813;
77 const uint32_t kLgAcSwingVLowest = 0x8813048;
78 const uint32_t kLgAcSwingVLow = 0x8813059;
79 const uint32_t kLgAcSwingVMiddle = 0x881306A;
80 const uint32_t kLgAcSwingVUpperMiddle = 0x881307B;
81 const uint32_t kLgAcSwingVHigh = 0x881308C;
82 const uint32_t kLgAcSwingVHighest = 0x881309D;
83 const uint32_t kLgAcSwingVSwing = 0x8813149;
85 const uint32_t kLgAcSwingVOff = 0x881315A;
86 const uint8_t kLgAcSwingVLowest_Short = 0x04;
87 const uint8_t kLgAcSwingVLow_Short = 0x05;
88 const uint8_t kLgAcSwingVMiddle_Short = 0x06;
89 const uint8_t kLgAcSwingVUpperMiddle_Short = 0x07;
90 const uint8_t kLgAcSwingVHigh_Short = 0x08;
91 const uint8_t kLgAcSwingVHighest_Short = 0x09;
92 const uint8_t kLgAcSwingVSwing_Short = 0x14;
94 const uint8_t kLgAcSwingVOff_Short = 0x15;
95 
96 // AKB73757604 Constants
97 // SwingH
98 const uint32_t kLgAcSwingHAuto = 0x881316B;
99 const uint32_t kLgAcSwingHOff = 0x881317C;
100 // SwingV
101 const uint8_t kLgAcVaneSwingVHighest = 1;
102 const uint8_t kLgAcVaneSwingVHigh = 2;
103 const uint8_t kLgAcVaneSwingVUpperMiddle = 3;
104 const uint8_t kLgAcVaneSwingVMiddle = 4;
105 const uint8_t kLgAcVaneSwingVLow = 5;
106 const uint8_t kLgAcVaneSwingVLowest = 6;
107 const uint8_t kLgAcVaneSwingVSize = 8;
108 const uint8_t kLgAcSwingVMaxVanes = 4;
109 
110 // Classes
112 class IRLgAc {
113  public:
114  explicit IRLgAc(const uint16_t pin, const bool inverted = false,
115  const bool use_modulation = true);
116  void stateReset(void);
117  static uint8_t calcChecksum(const uint32_t state);
118  static bool validChecksum(const uint32_t state);
119  bool isValidLgAc(void) const;
120 #if SEND_LG
121  void send(const uint16_t repeat = kLgDefaultRepeat);
126  int8_t calibrate(void) { return _irsend.calibrate(); }
127 #endif // SEND_LG
128  void begin(void);
129  void on(void);
130  void off(void);
131  void setPower(const bool on);
132  bool getPower(void) const;
133  bool isOffCommand(void) const;
134  void setTemp(const uint8_t degrees);
135  uint8_t getTemp(void) const;
136  void setFan(const uint8_t speed);
137  uint8_t getFan(void) const;
138  void setMode(const uint8_t mode);
139  uint8_t getMode(void) const;
140  void setLight(const bool on);
141  bool getLight(void) const;
142  bool isLightToggle(void) const;
143  bool isSwing(void) const;
144  void setSwingH(const bool on);
145  bool getSwingH(void) const;
146  bool isSwingV(void) const;
147  bool isVaneSwingV(void) const;
148  void setSwingV(const uint32_t position);
149  uint32_t getSwingV(void) const;
150  void setVaneSwingV(const uint8_t vane, const uint8_t position);
151  uint8_t getVaneSwingV(const uint8_t vane) const;
152  static uint32_t calcVaneSwingV(const uint8_t vane, const uint8_t position);
153  static uint8_t getVaneCode(const uint32_t raw);
154  bool isSwingH(void) const;
155  void updateSwingPrev(void);
156  uint32_t getRaw(void);
157  void setRaw(const uint32_t new_code,
158  const decode_type_t protocol = decode_type_t::UNKNOWN);
159  static uint8_t convertMode(const stdAc::opmode_t mode);
160  static stdAc::opmode_t toCommonMode(const uint8_t mode);
161  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
162  static stdAc::swingv_t toCommonSwingV(const uint32_t code);
163  static stdAc::swingv_t toCommonVaneSwingV(const uint8_t pos);
164  static uint8_t convertFan(const stdAc::fanspeed_t speed);
165  static uint32_t convertSwingV(const stdAc::swingv_t swingv);
166  static uint8_t convertVaneSwingV(const stdAc::swingv_t swingv);
167  stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
168  String toString(void) const;
169  void setModel(const lg_ac_remote_model_t model);
170  lg_ac_remote_model_t getModel(void) const;
171 #ifndef UNIT_TEST
172 
173  private:
175 #else // UNIT_TEST
176  IRsendTest _irsend;
178 #endif // UNIT_TEST
181  uint8_t _temp;
182  bool _light;
183  uint32_t _swingv;
184  uint32_t _swingv_prev;
187  bool _swingh;
191  void checksum(void);
192  void _setTemp(const uint8_t value);
193  bool _isAKB74955603(void) const;
194  bool _isAKB73757604(void) const;
195  bool _isNormal(void) const;
196 };
197 
198 #endif // IR_LG_H_
kLgAcFanMedium
const uint8_t kLgAcFanMedium
Definition: ir_LG.h:54
IRLgAc::_setTemp
void _setTemp(const uint8_t value)
Set the temperature.
Definition: ir_LG.cpp:446
IRLgAc::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_LG.cpp:635
IRLgAc::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_LG.cpp:502
kLgAcSwingVLowest
const uint32_t kLgAcSwingVLowest
Definition: ir_LG.h:77
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:866
IRLgAc::getSwingV
uint32_t getSwingV(void) const
Get the Vertical Swing position setting of the A/C.
Definition: ir_LG.cpp:585
IRLgAc::getRaw
uint32_t getRaw(void)
Get a copy of the internal state/code for this protocol.
Definition: ir_LG.cpp:343
IRLgAc::setVaneSwingV
void setVaneSwingV(const uint8_t vane, const uint8_t position)
Set the per Vane Vertical Swing mode of the A/C.
Definition: ir_LG.cpp:590
IRLgAc::_protocol
decode_type_t _protocol
Protocol version.
Definition: ir_LG.h:189
IRLgAc::getTemp
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_LG.cpp:459
IRLgAc::setSwingV
void setSwingV(const uint32_t position)
Set the Vertical Swing mode of the A/C.
Definition: ir_LG.cpp:563
UNKNOWN
@ UNKNOWN
Definition: IRremoteESP8266.h:867
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
IRLgAc::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_LG.h:126
kLgAcLightToggle
const uint32_t kLgAcLightToggle
Definition: ir_LG.h:74
kLgAcVaneSwingVMiddle
const uint8_t kLgAcVaneSwingVMiddle
0b100
Definition: ir_LG.h:104
kLgAcFanAuto
const uint8_t kLgAcFanAuto
Definition: ir_LG.h:56
kLgAcSwingVOff
const uint32_t kLgAcSwingVOff
Definition: ir_LG.h:85
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
IRLgAc::isSwing
bool isSwing(void) const
Check if the stored code is a Swing message.
Definition: ir_LG.cpp:526
kLgAcPowerOff
const uint8_t kLgAcPowerOff
Definition: ir_LG.h:69
kLgAcFanLowest
const uint8_t kLgAcFanLowest
Definition: ir_LG.h:52
IRLgAc::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_LG.cpp:465
kLgAcVaneSwingVHigh
const uint8_t kLgAcVaneSwingVHigh
0b010
Definition: ir_LG.h:102
IRLgAc::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_LG.cpp:423
LGProtocol::Temp
uint32_t Temp
Definition: ir_LG.h:44
IRLgAc::isLightToggle
bool isLightToggle(void) const
Is the message a Light Toggle message?
Definition: ir_LG.cpp:441
kLgAcSwingVOff_Short
const uint8_t kLgAcSwingVOff_Short
Definition: ir_LG.h:94
kLgAcFanHigh
const uint8_t kLgAcFanHigh
Definition: ir_LG.h:58
kLgAcSwingVSwing_Short
const uint8_t kLgAcSwingVSwing_Short
Definition: ir_LG.h:92
IRsend.h
IRLgAc::updateSwingPrev
void updateSwingPrev(void)
Definition: ir_LG.cpp:577
IRLgAc::isSwingV
bool isSwingV(void) const
Check if the stored code is a non-vane SwingV message.
Definition: ir_LG.cpp:532
LGProtocol::Sign
uint32_t Sign
Definition: ir_LG.h:48
IRLgAc::toString
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_LG.cpp:780
kLgAcSwingVLow
const uint32_t kLgAcSwingVLow
Definition: ir_LG.h:78
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:208
kLgAcDry
const uint8_t kLgAcDry
Definition: ir_LG.h:65
kLgAcVaneSwingVHighest
const uint8_t kLgAcVaneSwingVHighest
0b001
Definition: ir_LG.h:101
IRLgAc::setTemp
void setTemp(const uint8_t degrees)
Set the temperature.
Definition: ir_LG.cpp:450
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
kLgAcFanEntries
const uint8_t kLgAcFanEntries
Definition: ir_LG.h:60
IRLgAc::_isNormal
bool _isNormal(void) const
Is the current message a normal (non-special) message?
Definition: ir_LG.cpp:292
IRLgAc::_
LGProtocol _
Definition: ir_LG.h:180
kLgAcSwingVSwing
const uint32_t kLgAcSwingVSwing
Definition: ir_LG.h:83
kLgAcFanLowAlt
const uint8_t kLgAcFanLowAlt
Definition: ir_LG.h:57
kLgAcOffCommand
const uint32_t kLgAcOffCommand
Definition: ir_LG.h:73
IRLgAc::getVaneSwingV
uint8_t getVaneSwingV(const uint8_t vane) const
Get the Vertical Swing position for the given vane of the A/C.
Definition: ir_LG.cpp:598
String
std::string String
Definition: IRremoteESP8266.h:1309
IRLgAc::_swingh
bool _swingh
Definition: ir_LG.h:187
IRLgAc::calcChecksum
static uint8_t calcChecksum(const uint32_t state)
Calculate the checksum for a given state.
Definition: ir_LG.cpp:387
kLgAcFanLow
const uint8_t kLgAcFanLow
Definition: ir_LG.h:53
IRLgAc::setModel
void setModel(const lg_ac_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_LG.cpp:304
kLgDefaultRepeat
const uint16_t kLgDefaultRepeat
Definition: IRremoteESP8266.h:1105
kLgAcMaxTemp
const uint8_t kLgAcMaxTemp
Definition: ir_LG.h:63
IRLgAc::isOffCommand
bool isOffCommand(void) const
Is the message a Power Off message?
Definition: ir_LG.cpp:429
IRLgAc::_vaneswingv_prev
uint8_t _vaneswingv_prev[kLgAcSwingVMaxVanes]
Definition: ir_LG.h:186
kLgAcSwingVMiddle
const uint32_t kLgAcSwingVMiddle
Definition: ir_LG.h:79
IRLgAc::_swingv_prev
uint32_t _swingv_prev
Definition: ir_LG.h:184
IRLgAc::IRLgAc
IRLgAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_LG.cpp:231
kLgAcSignature
const uint8_t kLgAcSignature
Definition: ir_LG.h:71
kLgAcSwingSignature
const uint32_t kLgAcSwingSignature
Definition: ir_LG.h:76
IRremoteESP8266.h
IRLgAc::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_LG.cpp:648
IRLgAc::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_LG.cpp:506
kLgAcSwingVHigh
const uint32_t kLgAcSwingVHigh
Definition: ir_LG.h:81
IRLgAc::_isAKB73757604
bool _isAKB73757604(void) const
Check if the stored code must belong to a AKB73757604 model.
Definition: ir_LG.cpp:337
IRLgAc::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_LG.cpp:662
kLgAcSwingVLow_Short
const uint8_t kLgAcSwingVLow_Short
Definition: ir_LG.h:87
IRLgAc::convertSwingV
static uint32_t convertSwingV(const stdAc::swingv_t swingv)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_LG.cpp:677
IRLgAc::_swingv
uint32_t _swingv
Definition: ir_LG.h:183
IRLgAc::setSwingH
void setSwingH(const bool on)
Set the Horizontal Swing mode of the A/C.
Definition: ir_LG.cpp:550
LGProtocol::raw
uint32_t raw
The state of the IR remote in IR code form.
Definition: ir_LG.h:40
kLgAcCool
const uint8_t kLgAcCool
Definition: ir_LG.h:64
kLgAcSwingVLowest_Short
const uint8_t kLgAcSwingVLowest_Short
Definition: ir_LG.h:86
kLgAcSwingVMaxVanes
const uint8_t kLgAcSwingVMaxVanes
Max Nr. of Vanes.
Definition: ir_LG.h:108
kLgAcSwingVAuto_Short
const uint8_t kLgAcSwingVAuto_Short
Definition: ir_LG.h:93
IRLgAc::getSwingH
bool getSwingH(void) const
Get the Horizontal Swing position setting of the A/C.
Definition: ir_LG.cpp:546
kLgAcHeat
const uint8_t kLgAcHeat
Definition: ir_LG.h:68
kLgAcSwingVHighest_Short
const uint8_t kLgAcSwingVHighest_Short
Definition: ir_LG.h:91
IRLgAc::calcVaneSwingV
static uint32_t calcVaneSwingV(const uint8_t vane, const uint8_t position)
Calculate the Vane specific Vertical Swing code for the A/C.
Definition: ir_LG.cpp:611
kLgAcFanMax
const uint8_t kLgAcFanMax
Definition: ir_LG.h:55
kLgAcSwingVUpperMiddle
const uint32_t kLgAcSwingVUpperMiddle
Definition: ir_LG.h:80
IRLgAc::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_LG.cpp:248
IRLgAc::_swingh_prev
bool _swingh_prev
Definition: ir_LG.h:188
IRLgAc::setRaw
void setRaw(const uint32_t new_code, const decode_type_t protocol=decode_type_t::UNKNOWN)
Set the internal state from a valid code for this protocol.
Definition: ir_LG.cpp:351
kLgAcVaneSwingVLow
const uint8_t kLgAcVaneSwingVLow
0b101
Definition: ir_LG.h:105
kLgAcVaneSwingVSize
const uint8_t kLgAcVaneSwingVSize
Definition: ir_LG.h:107
IRLgAc::toCommon
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_LG.cpp:742
IRLgAc::_isAKB74955603
bool _isAKB74955603(void) const
Check if the stored code must belong to a AKB74955603 model.
Definition: ir_LG.cpp:329
IRLgAc
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:112
kLgAcSwingVAuto
const uint32_t kLgAcSwingVAuto
Definition: ir_LG.h:84
IRutils.h
IRLgAc::getModel
lg_ac_remote_model_t getModel(void) const
Get the model of the A/C.
Definition: ir_LG.cpp:322
kLgAcSwingHAuto
const uint32_t kLgAcSwingHAuto
Definition: ir_LG.h:98
LGProtocol::Fan
uint32_t Fan
Definition: ir_LG.h:43
IRLgAc::_light
bool _light
Definition: ir_LG.h:182
IRLgAc::_vaneswingv
uint8_t _vaneswingv[kLgAcSwingVMaxVanes]
Definition: ir_LG.h:185
IRLgAc::convertVaneSwingV
static uint8_t convertVaneSwingV(const stdAc::swingv_t swingv)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_LG.cpp:729
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:194
kLgAcSwingHOff
const uint32_t kLgAcSwingHOff
Definition: ir_LG.h:99
kLgAcSwingVUpperMiddle_Short
const uint8_t kLgAcSwingVUpperMiddle_Short
Definition: ir_LG.h:89
IRLgAc::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_LG.cpp:510
IRLgAc::_model
lg_ac_remote_model_t _model
Model type.
Definition: ir_LG.h:190
IRLgAc::_temp
uint8_t _temp
Definition: ir_LG.h:181
IRLgAc::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint32_t code)
Convert a native Vertical Swing into its stdAc equivalent.
Definition: ir_LG.cpp:692
kLgAcAuto
const uint8_t kLgAcAuto
Definition: ir_LG.h:67
kLgAcPowerOn
const uint8_t kLgAcPowerOn
Definition: ir_LG.h:70
kLgAcVaneSwingVLowest
const uint8_t kLgAcVaneSwingVLowest
0b110
Definition: ir_LG.h:106
IRLgAc::isSwingH
bool isSwingH(void) const
Check if the stored code is a SwingH message.
Definition: ir_LG.cpp:540
IRLgAc::off
void off(void)
Change the power setting to Off.
Definition: ir_LG.cpp:409
IRLgAc::getVaneCode
static uint8_t getVaneCode(const uint32_t raw)
Get the vane code of a Vane Vertical Swing message.
Definition: ir_LG.cpp:605
IRLgAc::checksum
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition: ir_LG.cpp:401
IRLgAc::setLight
void setLight(const bool on)
Change the light/led/display setting.
Definition: ir_LG.cpp:433
IRLgAc::stateReset
void stateReset(void)
Reset the internals of the object to a known good state.
Definition: ir_LG.cpp:236
kLgAcMinTemp
const uint8_t kLgAcMinTemp
Definition: ir_LG.h:62
kLgAcTempAdjust
const uint8_t kLgAcTempAdjust
Definition: ir_LG.h:61
LGProtocol::Mode
uint32_t Mode
Definition: ir_LG.h:45
LGProtocol::Sum
uint32_t Sum
Definition: ir_LG.h:42
kLgAcVaneSwingVUpperMiddle
const uint8_t kLgAcVaneSwingVUpperMiddle
0b011
Definition: ir_LG.h:103
IRLgAc::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_LG.cpp:622
kLgAcSwingVMiddle_Short
const uint8_t kLgAcSwingVMiddle_Short
Definition: ir_LG.h:88
IRLgAc::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_LG.cpp:413
kLgAcSwingVHigh_Short
const uint8_t kLgAcSwingVHigh_Short
Definition: ir_LG.h:90
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
IRLgAc::send
void send(const uint16_t repeat=kLgDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_LG.cpp:253
IRLgAc::validChecksum
static bool validChecksum(const uint32_t state)
Verify the checksum is valid for a given state.
Definition: ir_LG.cpp:394
kLgAcFan
const uint8_t kLgAcFan
Definition: ir_LG.h:66
IRLgAc::on
void on(void)
Change the power setting to On.
Definition: ir_LG.cpp:406
LGProtocol::Power
uint32_t Power
Definition: ir_LG.h:47
IRLgAc::toCommonVaneSwingV
static stdAc::swingv_t toCommonVaneSwingV(const uint8_t pos)
Convert a native Vane specific Vertical Swing into its stdAc equivalent.
Definition: ir_LG.cpp:715
IRLgAc::getLight
bool getLight(void) const
Get the value of the current light setting.
Definition: ir_LG.cpp:437
IRLgAc::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_LG.h:174
LGProtocol
Native representation of a LG A/C message.
Definition: ir_LG.h:39
IRLgAc::isValidLgAc
bool isValidLgAc(void) const
Check if the internal state looks like a valid LG A/C message.
Definition: ir_LG.cpp:836
kLgAcSwingVHighest
const uint32_t kLgAcSwingVHighest
Definition: ir_LG.h:82
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
IRLgAc::isVaneSwingV
bool isVaneSwingV(void) const
Check if the stored code is a vane specific SwingV message.
Definition: ir_LG.cpp:554