mirror of
https://github.com/GrKoR/esphome_aux_ac_component.git
synced 2025-12-06 03:26:56 +03:00
fix: esp8266 compatibility
This commit is contained in:
@@ -6,9 +6,6 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <cinttypes>
|
||||
#ifndef F
|
||||
#define F(string_literal) (string_literal)
|
||||
#endif
|
||||
|
||||
#include "esphome.h"
|
||||
#include "esphome/components/binary_sensor/binary_sensor.h"
|
||||
@@ -19,6 +16,11 @@
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/core/helpers.h"
|
||||
|
||||
#ifndef USE_ARDUINO
|
||||
using String = std::string;
|
||||
#define F(string_literal) (string_literal)
|
||||
#endif
|
||||
|
||||
// весь функционал сохранения пресетов прячу под дефайн
|
||||
// #define PRESETS_SAVING
|
||||
#ifdef PRESETS_SAVING
|
||||
@@ -713,16 +715,16 @@ namespace esphome
|
||||
{
|
||||
AC_COMMAND_BASE;
|
||||
ac_health_status health_status;
|
||||
float temp_ambient; // внутренняя температура
|
||||
int8_t temp_outdoor; // внешняя температура
|
||||
int8_t temp_inbound; // температура входящая
|
||||
int8_t temp_outbound; // температура исходящая
|
||||
int8_t temp_compressor; // температура компрессора
|
||||
ac_realFan realFanSpeed; // текущая скорость вентилятора
|
||||
uint8_t inverter_power; // мощность инвертора
|
||||
bool defrost; // режим разморозки внешнего блока (накопление тепла + прогрев испарителя)
|
||||
ac_powLim_state power_lim_state; // статус ограничения мощности инвертора
|
||||
uint8_t power_lim_value; // значение ограничения мощности инвертора
|
||||
float temp_ambient; // внутренняя температура
|
||||
int8_t temp_outdoor; // внешняя температура
|
||||
int8_t temp_inbound; // температура входящая
|
||||
int8_t temp_outbound; // температура исходящая
|
||||
int8_t temp_compressor; // температура компрессора
|
||||
ac_realFan realFanSpeed; // текущая скорость вентилятора
|
||||
uint8_t inverter_power; // мощность инвертора
|
||||
bool defrost; // режим разморозки внешнего блока (накопление тепла + прогрев испарителя)
|
||||
ac_powLim_state power_lim_state; // статус ограничения мощности инвертора
|
||||
uint8_t power_lim_value; // значение ограничения мощности инвертора
|
||||
};
|
||||
|
||||
typedef ac_command_t ac_state_t; // текущее состояние параметров кондея можно хранить в таком же формате, как и комманды
|
||||
@@ -1667,7 +1669,7 @@ namespace esphome
|
||||
* msg - сообщение, выводимое в лог
|
||||
* line - строка, на которой произошел вызов (удобно при отладке)
|
||||
*/
|
||||
void _debugMsg(const std::string &msg, uint8_t dbgLevel = ESPHOME_LOG_LEVEL_DEBUG, unsigned int line = 0, ...)
|
||||
void _debugMsg(const String &msg, uint8_t dbgLevel = ESPHOME_LOG_LEVEL_DEBUG, unsigned int line = 0, ...)
|
||||
{
|
||||
if (dbgLevel < ESPHOME_LOG_LEVEL_NONE)
|
||||
dbgLevel = ESPHOME_LOG_LEVEL_NONE;
|
||||
@@ -1708,7 +1710,7 @@ namespace esphome
|
||||
if ((!notAPacket) && (!HOLMES_WORKS))
|
||||
return;
|
||||
|
||||
std::string st = "";
|
||||
String st = "";
|
||||
char textBuf[11];
|
||||
|
||||
// заполняем время получения пакета
|
||||
@@ -3548,7 +3550,7 @@ namespace esphome
|
||||
}
|
||||
|
||||
// устанавливает ограничение мощности сплита на нужный уровень
|
||||
bool powerLimitationSetSequence(uint8_t power_limit, bool set_on=false)
|
||||
bool powerLimitationSetSequence(uint8_t power_limit, bool set_on = false)
|
||||
{
|
||||
// нет смысла в последовательности, если нет коннекта с кондиционером
|
||||
if (!get_has_connection())
|
||||
@@ -3563,7 +3565,7 @@ namespace esphome
|
||||
return false;
|
||||
}
|
||||
|
||||
if(power_limit != this->_power_limitation_value_normalise(power_limit))
|
||||
if (power_limit != this->_power_limitation_value_normalise(power_limit))
|
||||
{
|
||||
_debugMsg(F("powerLimitationSetSequence: incorrect power limit value."), ESPHOME_LOG_LEVEL_WARN, __LINE__);
|
||||
return false;
|
||||
@@ -3583,9 +3585,11 @@ namespace esphome
|
||||
|
||||
if (set_on)
|
||||
{
|
||||
_debugMsg(F("powerLimitationSetSequence: loaded (state = %02X, power limit = %02X)"), ESPHOME_LOG_LEVEL_VERBOSE, __LINE__, cmd.power_lim_state, power_limit);
|
||||
} else {
|
||||
_debugMsg(F("powerLimitationSetSequence: loaded (power limit = %02X)"), ESPHOME_LOG_LEVEL_VERBOSE, __LINE__, power_limit);
|
||||
_debugMsg(F("powerLimitationSetSequence: loaded (state = %02X, power limit = %02X)"), ESPHOME_LOG_LEVEL_VERBOSE, __LINE__, cmd.power_lim_state, power_limit);
|
||||
}
|
||||
else
|
||||
{
|
||||
_debugMsg(F("powerLimitationSetSequence: loaded (power limit = %02X)"), ESPHOME_LOG_LEVEL_VERBOSE, __LINE__, power_limit);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -3609,10 +3613,13 @@ namespace esphome
|
||||
// формируем команду
|
||||
ac_command_t cmd;
|
||||
_clearCommand(&cmd); // не забываем очищать, а то будет мусор
|
||||
if(enable_limit){
|
||||
cmd.power_lim_state = AC_POWLIMSTAT_ON; // включить ограничение мощности
|
||||
} else {
|
||||
cmd.power_lim_state = AC_POWLIMSTAT_OFF; // отключить ограничение мощности
|
||||
if (enable_limit)
|
||||
{
|
||||
cmd.power_lim_state = AC_POWLIMSTAT_ON; // включить ограничение мощности
|
||||
}
|
||||
else
|
||||
{
|
||||
cmd.power_lim_state = AC_POWLIMSTAT_OFF; // отключить ограничение мощности
|
||||
}
|
||||
// добавляем команду в последовательность
|
||||
if (!commandSequence(&cmd))
|
||||
@@ -3625,19 +3632,19 @@ namespace esphome
|
||||
// включает ограничение мощности сплита
|
||||
bool powerLimitationOnSequence()
|
||||
{
|
||||
return powerLimitationOnOffSequence(true);
|
||||
return powerLimitationOnOffSequence(true);
|
||||
}
|
||||
|
||||
// включает ограничение мощности сплита на нужный уровень
|
||||
bool powerLimitationOnSequence(uint8_t power_limit)
|
||||
{
|
||||
return powerLimitationSetSequence(power_limit, true);
|
||||
return powerLimitationSetSequence(power_limit, true);
|
||||
}
|
||||
|
||||
// выключает ограничение мощности сплита
|
||||
bool powerLimitationOffSequence()
|
||||
{
|
||||
return powerLimitationOnOffSequence(false);
|
||||
return powerLimitationOnOffSequence(false);
|
||||
}
|
||||
|
||||
// конвертирует состояние жалюзи из кодов сплита в коды для фронтенда
|
||||
|
||||
Reference in New Issue
Block a user