1
0
mirror of https://github.com/esphome/esphome.git synced 2025-02-07 13:40:59 +00:00

Merge branch 'dev' into platform

This commit is contained in:
tomaszduda23 2025-01-11 12:03:01 +01:00 committed by GitHub
commit fd25469ac0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 62 additions and 50 deletions

View File

@ -37,8 +37,9 @@ void ClimateIR::setup() {
this->publish_state(); this->publish_state();
}); });
this->current_temperature = this->sensor_->state; this->current_temperature = this->sensor_->state;
} else } else {
this->current_temperature = NAN; this->current_temperature = NAN;
}
// restore set points // restore set points
auto restore = this->restore_state_(); auto restore = this->restore_state_();
if (restore.has_value()) { if (restore.has_value()) {

View File

@ -131,8 +131,9 @@ bool CoolixClimate::on_coolix(climate::Climate *parent, remote_base::RemoteRecei
} else { } else {
parent->mode = climate::CLIMATE_MODE_FAN_ONLY; parent->mode = climate::CLIMATE_MODE_FAN_ONLY;
} }
} else } else {
parent->mode = climate::CLIMATE_MODE_COOL; parent->mode = climate::CLIMATE_MODE_COOL;
}
// Fan Speed // Fan Speed
if ((remote_state & COOLIX_FAN_AUTO) == COOLIX_FAN_AUTO || parent->mode == climate::CLIMATE_MODE_HEAT_COOL || if ((remote_state & COOLIX_FAN_AUTO) == COOLIX_FAN_AUTO || parent->mode == climate::CLIMATE_MODE_HEAT_COOL ||

View File

@ -118,8 +118,9 @@ std::unique_ptr<Command> CircularCommandQueue::dequeue() {
if (front_ == rear_) { if (front_ == rear_) {
front_ = -1; front_ = -1;
rear_ = -1; rear_ = -1;
} else } else {
front_ = (front_ + 1) % COMMAND_QUEUE_SIZE; front_ = (front_ + 1) % COMMAND_QUEUE_SIZE;
}
return dequeued_cmd; return dequeued_cmd;
} }

View File

@ -157,8 +157,9 @@ bool HOT IRAM_ATTR DHT::read_sensor_(float *temperature, float *humidity, bool r
if (bit == 0) { if (bit == 0) {
bit = 7; bit = 7;
byte++; byte++;
} else } else {
bit--; bit--;
}
} }
} }
if (!report_errors && error_code != 0) if (!report_errors && error_code != 0)

View File

@ -266,8 +266,9 @@ void Display::filled_gauge(int center_x, int center_y, int radius1, int radius2,
if (dymax < float(-dxmax) * tan_a) { if (dymax < float(-dxmax) * tan_a) {
upd_dxmax = ceil(float(dymax) / tan_a); upd_dxmax = ceil(float(dymax) / tan_a);
hline_width = -dxmax - upd_dxmax + 1; hline_width = -dxmax - upd_dxmax + 1;
} else } else {
hline_width = 0; hline_width = 0;
}
} }
if (hline_width > 0) if (hline_width > 0)
this->horizontal_line(center_x + dxmax, center_y - dymax, hline_width, color); this->horizontal_line(center_x + dxmax, center_y - dymax, hline_width, color);

View File

@ -90,8 +90,9 @@ void Rect::info(const std::string &prefix) {
if (this->is_set()) { if (this->is_set()) {
ESP_LOGI(TAG, "%s [%3d,%3d,%3d,%3d] (%3d,%3d)", prefix.c_str(), this->x, this->y, this->w, this->h, this->x2(), ESP_LOGI(TAG, "%s [%3d,%3d,%3d,%3d] (%3d,%3d)", prefix.c_str(), this->x, this->y, this->w, this->h, this->x2(),
this->y2()); this->y2());
} else } else {
ESP_LOGI(TAG, "%s ** IS NOT SET **", prefix.c_str()); ESP_LOGI(TAG, "%s ** IS NOT SET **", prefix.c_str());
}
} }
} // namespace display } // namespace display

View File

@ -112,7 +112,7 @@ void ESP32ImprovComponent::loop() {
this->set_state_(improv::STATE_AUTHORIZED); this->set_state_(improv::STATE_AUTHORIZED);
} else } else
#else #else
this->set_state_(improv::STATE_AUTHORIZED); { this->set_state_(improv::STATE_AUTHORIZED); }
#endif #endif
{ {
if (!this->check_identify_()) if (!this->check_identify_())

View File

@ -97,8 +97,9 @@ void GCJA5Component::parse_data_() {
if (this->rx_message_[0] != 0x02 || this->rx_message_[31] != 0x03 || !this->calculate_checksum_()) { if (this->rx_message_[0] != 0x02 || this->rx_message_[31] != 0x03 || !this->calculate_checksum_()) {
ESP_LOGVV(TAG, "Discarding bad packet - failed checks."); ESP_LOGVV(TAG, "Discarding bad packet - failed checks.");
return; return;
} else } else {
ESP_LOGVV(TAG, "Good packet found."); ESP_LOGVV(TAG, "Good packet found.");
}
this->have_good_data_ = true; this->have_good_data_ = true;
uint8_t status = this->rx_message_[29]; uint8_t status = this->rx_message_[29];

View File

@ -342,8 +342,9 @@ bool HaierClimateBase::prepare_pending_action() {
this->action_request_.reset(); this->action_request_.reset();
return false; return false;
} }
} else } else {
return false; return false;
}
} }
ClimateTraits HaierClimateBase::traits() { return traits_; } ClimateTraits HaierClimateBase::traits() { return traits_; }

View File

@ -710,8 +710,9 @@ void HonClimate::process_alarm_message_(const uint8_t *packet, uint8_t size, boo
alarm_code++; alarm_code++;
} }
active_alarms_[i] = packet[2 + i]; active_alarms_[i] = packet[2 + i];
} else } else {
alarm_code += 8; alarm_code += 8;
}
} }
} else { } else {
float alarm_count = 0.0f; float alarm_count = 0.0f;

View File

@ -87,8 +87,9 @@ void HeatpumpIRClimate::setup() {
this->publish_state(); this->publish_state();
}); });
this->current_temperature = this->sensor_->state; this->current_temperature = this->sensor_->state;
} else } else {
this->current_temperature = NAN; this->current_temperature = NAN;
}
} }
void HeatpumpIRClimate::transmit_state() { void HeatpumpIRClimate::transmit_state() {

View File

@ -25,11 +25,13 @@ void I2SAudioMicrophone::setup() {
} }
} else } else
#endif #endif
if (this->pdm_) { {
if (this->parent_->get_port() != I2S_NUM_0) { if (this->pdm_) {
ESP_LOGE(TAG, "PDM only works on I2S0!"); if (this->parent_->get_port() != I2S_NUM_0) {
this->mark_failed(); ESP_LOGE(TAG, "PDM only works on I2S0!");
return; this->mark_failed();
return;
}
} }
} }
} }

View File

@ -36,7 +36,7 @@ inline static uint8_t to_uint8_scale(float x) { return static_cast<uint8_t>(roun
* range as set in the traits, so the output needs to do this. * range as set in the traits, so the output needs to do this.
* *
* For COLD_WARM_WHITE capability: * For COLD_WARM_WHITE capability:
* - cold_white, warm_white: The brightness of the cald and warm white channels of the light. * - cold_white, warm_white: The brightness of the light's cold and warm white channels.
* *
* All values (except color temperature) are represented using floats in the range 0.0 (off) to 1.0 (on), and are * All values (except color temperature) are represented using floats in the range 0.0 (off) to 1.0 (on), and are
* automatically clamped to this range. Properties not used in the current color mode can still have (invalid) values * automatically clamped to this range. Properties not used in the current color mode can still have (invalid) values

View File

@ -11,15 +11,17 @@ void MicroNovaSwitch::write_state(bool state) {
if (this->micronova_->get_current_stove_state() == 0) { if (this->micronova_->get_current_stove_state() == 0) {
this->micronova_->write_address(this->memory_location_, this->memory_address_, this->memory_data_on_); this->micronova_->write_address(this->memory_location_, this->memory_address_, this->memory_data_on_);
this->publish_state(true); this->publish_state(true);
} else } else {
ESP_LOGW(TAG, "Unable to turn stove on, invalid state: %d", micronova_->get_current_stove_state()); ESP_LOGW(TAG, "Unable to turn stove on, invalid state: %d", micronova_->get_current_stove_state());
}
} else { } else {
// don't send power-off when status is Off or Final cleaning // don't send power-off when status is Off or Final cleaning
if (this->micronova_->get_current_stove_state() != 0 && micronova_->get_current_stove_state() != 6) { if (this->micronova_->get_current_stove_state() != 0 && micronova_->get_current_stove_state() != 6) {
this->micronova_->write_address(this->memory_location_, this->memory_address_, this->memory_data_off_); this->micronova_->write_address(this->memory_location_, this->memory_address_, this->memory_data_off_);
this->publish_state(false); this->publish_state(false);
} else } else {
ESP_LOGW(TAG, "Unable to turn stove off, invalid state: %d", micronova_->get_current_stove_state()); ESP_LOGW(TAG, "Unable to turn stove off, invalid state: %d", micronova_->get_current_stove_state());
}
} }
this->micronova_->update(); this->micronova_->update();
break; break;

View File

@ -184,11 +184,13 @@ void SprinklerValveOperator::set_controller(Sprinkler *controller) {
void SprinklerValveOperator::set_valve(SprinklerValve *valve) { void SprinklerValveOperator::set_valve(SprinklerValve *valve) {
if (valve != nullptr) { if (valve != nullptr) {
if (this->state_ != IDLE) { // Only kill if not already idle
this->kill_(); // ensure everything is off before we let go!
}
this->state_ = IDLE; // reset state this->state_ = IDLE; // reset state
this->run_duration_ = 0; // reset to ensure the valve isn't started without updating it this->run_duration_ = 0; // reset to ensure the valve isn't started without updating it
this->start_millis_ = 0; // reset because (new) valve has not been started yet this->start_millis_ = 0; // reset because (new) valve has not been started yet
this->stop_millis_ = 0; // reset because (new) valve has not been started yet this->stop_millis_ = 0; // reset because (new) valve has not been started yet
this->kill_(); // ensure everything is off before we let go!
this->valve_ = valve; // finally, set the pointer to the new valve this->valve_ = valve; // finally, set the pointer to the new valve
} }
} }

View File

@ -106,8 +106,9 @@ void ToshibaClimate::setup() {
this->publish_state(); this->publish_state();
}); });
this->current_temperature = this->sensor_->state; this->current_temperature = this->sensor_->state;
} else } else {
this->current_temperature = NAN; this->current_temperature = NAN;
}
// restore set points // restore set points
auto restore = this->restore_state_(); auto restore = this->restore_state_();
if (restore.has_value()) { if (restore.has_value()) {

View File

@ -120,8 +120,9 @@ light::LightTraits TuyaLight::get_traits() {
traits.set_supported_color_modes( traits.set_supported_color_modes(
{light::ColorMode::RGB_COLOR_TEMPERATURE, light::ColorMode::COLOR_TEMPERATURE}); {light::ColorMode::RGB_COLOR_TEMPERATURE, light::ColorMode::COLOR_TEMPERATURE});
} }
} else } else {
traits.set_supported_color_modes({light::ColorMode::COLOR_TEMPERATURE}); traits.set_supported_color_modes({light::ColorMode::COLOR_TEMPERATURE});
}
traits.set_min_mireds(this->cold_white_temperature_); traits.set_min_mireds(this->cold_white_temperature_);
traits.set_max_mireds(this->warm_white_temperature_); traits.set_max_mireds(this->warm_white_temperature_);
} else if (this->color_id_.has_value()) { } else if (this->color_id_.has_value()) {
@ -131,8 +132,9 @@ light::LightTraits TuyaLight::get_traits() {
} else { } else {
traits.set_supported_color_modes({light::ColorMode::RGB_WHITE}); traits.set_supported_color_modes({light::ColorMode::RGB_WHITE});
} }
} else } else {
traits.set_supported_color_modes({light::ColorMode::RGB}); traits.set_supported_color_modes({light::ColorMode::RGB});
}
} else if (this->dimmer_id_.has_value()) { } else if (this->dimmer_id_.has_value()) {
traits.set_supported_color_modes({light::ColorMode::BRIGHTNESS}); traits.set_supported_color_modes({light::ColorMode::BRIGHTNESS});
} else { } else {

View File

@ -245,13 +245,9 @@ void UDPComponent::setup() {
} }
struct sockaddr_in server {}; struct sockaddr_in server {};
socklen_t sl = socket::set_sockaddr_any((struct sockaddr *) &server, sizeof(server), this->port_); server.sin_family = AF_INET;
if (sl == 0) { server.sin_addr.s_addr = ESPHOME_INADDR_ANY;
ESP_LOGE(TAG, "Socket unable to set sockaddr: errno %d", errno); server.sin_port = htons(this->port_);
this->mark_failed();
this->status_set_error("Unable to set sockaddr");
return;
}
err = this->listen_socket_->bind((struct sockaddr *) &server, sizeof(server)); err = this->listen_socket_->bind((struct sockaddr *) &server, sizeof(server));
if (err != 0) { if (err != 0) {

View File

@ -104,8 +104,9 @@ void YashimaClimate::setup() {
this->publish_state(); this->publish_state();
}); });
this->current_temperature = this->sensor_->state; this->current_temperature = this->sensor_->state;
} else } else {
this->current_temperature = NAN; this->current_temperature = NAN;
}
// restore set points // restore set points
auto restore = this->restore_state_(); auto restore = this->restore_state_();
if (restore.has_value()) { if (restore.has_value()) {

View File

@ -126,19 +126,21 @@ uint16_t crc16(const uint8_t *data, uint16_t len, uint16_t crc, uint16_t reverse
} }
} else } else
#endif #endif
if (reverse_poly == 0xa001) { {
while (len--) { if (reverse_poly == 0xa001) {
uint8_t combo = crc ^ (uint8_t) *data++; while (len--) {
crc = (crc >> 8) ^ CRC16_A001_LE_LUT_L[combo & 0x0F] ^ CRC16_A001_LE_LUT_H[combo >> 4]; uint8_t combo = crc ^ (uint8_t) *data++;
} crc = (crc >> 8) ^ CRC16_A001_LE_LUT_L[combo & 0x0F] ^ CRC16_A001_LE_LUT_H[combo >> 4];
} else { }
while (len--) { } else {
crc ^= *data++; while (len--) {
for (uint8_t i = 0; i < 8; i++) { crc ^= *data++;
if (crc & 0x0001) { for (uint8_t i = 0; i < 8; i++) {
crc = (crc >> 1) ^ reverse_poly; if (crc & 0x0001) {
} else { crc = (crc >> 1) ^ reverse_poly;
crc >>= 1; } else {
crc >>= 1;
}
} }
} }
} }

View File

@ -6,7 +6,6 @@ light:
rgb_order: GRB rgb_order: GRB
num_leds: 256 num_leds: 256
pin: 2 pin: 2
rmt_channel: 0
display: display:
- platform: addressable_light - platform: addressable_light

View File

@ -6,7 +6,6 @@ light:
rgb_order: GRB rgb_order: GRB
num_leds: 256 num_leds: 256
pin: 2 pin: 2
rmt_channel: 0
display: display:
- platform: addressable_light - platform: addressable_light

View File

@ -12,7 +12,6 @@ light:
rgb_order: GRB rgb_order: GRB
num_leds: 256 num_leds: 256
pin: 2 pin: 2
rmt_channel: 0
effects: effects:
- e131: - e131:
universe: 1 universe: 1

View File

@ -12,7 +12,6 @@ light:
rgb_order: GRB rgb_order: GRB
num_leds: 256 num_leds: 256
pin: 2 pin: 2
rmt_channel: 0
effects: effects:
- e131: - e131:
universe: 1 universe: 1

View File

@ -6,7 +6,6 @@ light:
rgb_order: GRB rgb_order: GRB
num_leds: 256 num_leds: 256
pin: 2 pin: 2
rmt_channel: 0
- platform: partition - platform: partition
name: Partition Light name: Partition Light
segments: segments:

View File

@ -6,7 +6,6 @@ light:
rgb_order: GRB rgb_order: GRB
num_leds: 256 num_leds: 256
pin: 2 pin: 2
rmt_channel: 0
- platform: partition - platform: partition
name: Partition Light name: Partition Light
segments: segments: