mirror of
https://github.com/esphome/esphome.git
synced 2024-11-25 00:18:11 +01:00
commit
546bfe6db5
4 changed files with 45 additions and 36 deletions
|
@ -148,7 +148,7 @@ WakeWordModel::WakeWordModel(const uint8_t *model_start, float probability_cutof
|
|||
};
|
||||
|
||||
bool WakeWordModel::determine_detected() {
|
||||
int32_t sum = 0;
|
||||
uint32_t sum = 0;
|
||||
for (auto &prob : this->recent_streaming_probabilities_) {
|
||||
sum += prob;
|
||||
}
|
||||
|
@ -175,12 +175,14 @@ VADModel::VADModel(const uint8_t *model_start, float probability_cutoff, size_t
|
|||
};
|
||||
|
||||
bool VADModel::determine_detected() {
|
||||
uint8_t max = 0;
|
||||
uint32_t sum = 0;
|
||||
for (auto &prob : this->recent_streaming_probabilities_) {
|
||||
max = std::max(prob, max);
|
||||
sum += prob;
|
||||
}
|
||||
|
||||
return max > this->probability_cutoff_;
|
||||
float sliding_window_average = static_cast<float>(sum) / static_cast<float>(255 * this->sliding_window_size_);
|
||||
|
||||
return sliding_window_average > this->probability_cutoff_;
|
||||
}
|
||||
|
||||
} // namespace micro_wake_word
|
||||
|
|
|
@ -110,7 +110,7 @@ void MitsubishiClimate::transmit_state() {
|
|||
// Byte 15: HVAC specfic, i.e. POWERFUL, SMART SET, PLASMA, always 0x00
|
||||
// Byte 16: Constant 0x00
|
||||
// Byte 17: Checksum: SUM[Byte0...Byte16]
|
||||
uint8_t remote_state[18] = {0x23, 0xCB, 0x26, 0x01, 0x00, 0x20, 0x08, 0x00, 0x00,
|
||||
uint8_t remote_state[18] = {0x23, 0xCB, 0x26, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
|
||||
switch (this->mode) {
|
||||
|
@ -136,6 +136,12 @@ void MitsubishiClimate::transmit_state() {
|
|||
break;
|
||||
case climate::CLIMATE_MODE_OFF:
|
||||
default:
|
||||
remote_state[6] = MITSUBISHI_MODE_COOL;
|
||||
remote_state[8] = MITSUBISHI_MODE_A_COOL;
|
||||
if (this->supports_heat_) {
|
||||
remote_state[6] = MITSUBISHI_MODE_HEAT;
|
||||
remote_state[8] = MITSUBISHI_MODE_A_HEAT;
|
||||
}
|
||||
remote_state[5] = MITSUBISHI_OFF;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -72,43 +72,44 @@ void PMWCS3Component::dump_config() {
|
|||
LOG_SENSOR(" ", "vwc", this->vwc_sensor_);
|
||||
}
|
||||
void PMWCS3Component::read_data_() {
|
||||
uint8_t data[8];
|
||||
float e25, ec, temperature, vwc;
|
||||
|
||||
/////// Super important !!!! first activate reading PMWCS3_REG_READ_START (if not, return always the same values) ////
|
||||
|
||||
if (!this->write_bytes(PMWCS3_REG_READ_START, nullptr, 0)) {
|
||||
this->status_set_warning();
|
||||
ESP_LOGVV(TAG, "Failed to write into REG_READ_START register !!!");
|
||||
return;
|
||||
}
|
||||
// NOLINT delay(100);
|
||||
|
||||
if (!this->read_bytes(PMWCS3_REG_GET_DATA, (uint8_t *) &data, 8)) {
|
||||
ESP_LOGVV(TAG, "Error reading PMWCS3_REG_GET_DATA registers");
|
||||
this->mark_failed();
|
||||
return;
|
||||
}
|
||||
if (this->e25_sensor_ != nullptr) {
|
||||
e25 = ((data[1] << 8) | data[0]) / 100.0;
|
||||
this->e25_sensor_->publish_state(e25);
|
||||
ESP_LOGVV(TAG, "e25: data[0]=%d, data[1]=%d, result=%f", data[0], data[1], e25);
|
||||
}
|
||||
if (this->ec_sensor_ != nullptr) {
|
||||
ec = ((data[3] << 8) | data[2]) / 10.0;
|
||||
this->ec_sensor_->publish_state(ec);
|
||||
ESP_LOGVV(TAG, "ec: data[2]=%d, data[3]=%d, result=%f", data[2], data[3], ec);
|
||||
}
|
||||
if (this->temperature_sensor_ != nullptr) {
|
||||
temperature = ((data[5] << 8) | data[4]) / 100.0;
|
||||
this->temperature_sensor_->publish_state(temperature);
|
||||
ESP_LOGVV(TAG, "temp: data[4]=%d, data[5]=%d, result=%f", data[4], data[5], temperature);
|
||||
}
|
||||
if (this->vwc_sensor_ != nullptr) {
|
||||
vwc = ((data[7] << 8) | data[6]) / 10.0;
|
||||
this->vwc_sensor_->publish_state(vwc);
|
||||
ESP_LOGVV(TAG, "vwc: data[6]=%d, data[7]=%d, result=%f", data[6], data[7], vwc);
|
||||
}
|
||||
// Wait for the sensor to be ready.
|
||||
// 80ms empirically determined (conservative).
|
||||
this->set_timeout(80, [this] {
|
||||
uint8_t data[8];
|
||||
float e25, ec, temperature, vwc;
|
||||
if (!this->read_bytes(PMWCS3_REG_GET_DATA, (uint8_t *) &data, 8)) {
|
||||
ESP_LOGVV(TAG, "Error reading PMWCS3_REG_GET_DATA registers");
|
||||
this->mark_failed();
|
||||
return;
|
||||
}
|
||||
if (this->e25_sensor_ != nullptr) {
|
||||
e25 = ((data[1] << 8) | data[0]) / 100.0;
|
||||
this->e25_sensor_->publish_state(e25);
|
||||
ESP_LOGVV(TAG, "e25: data[0]=%d, data[1]=%d, result=%f", data[0], data[1], e25);
|
||||
}
|
||||
if (this->ec_sensor_ != nullptr) {
|
||||
ec = ((data[3] << 8) | data[2]) / 10.0;
|
||||
this->ec_sensor_->publish_state(ec);
|
||||
ESP_LOGVV(TAG, "ec: data[2]=%d, data[3]=%d, result=%f", data[2], data[3], ec);
|
||||
}
|
||||
if (this->temperature_sensor_ != nullptr) {
|
||||
temperature = ((data[5] << 8) | data[4]) / 100.0;
|
||||
this->temperature_sensor_->publish_state(temperature);
|
||||
ESP_LOGVV(TAG, "temp: data[4]=%d, data[5]=%d, result=%f", data[4], data[5], temperature);
|
||||
}
|
||||
if (this->vwc_sensor_ != nullptr) {
|
||||
vwc = ((data[7] << 8) | data[6]) / 10.0;
|
||||
this->vwc_sensor_->publish_state(vwc);
|
||||
ESP_LOGVV(TAG, "vwc: data[6]=%d, data[7]=%d, result=%f", data[6], data[7], vwc);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace pmwcs3
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
"""Constants used by esphome."""
|
||||
|
||||
__version__ = "2024.7.2"
|
||||
__version__ = "2024.7.3"
|
||||
|
||||
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
|
||||
VALID_SUBSTITUTIONS_CHARACTERS = (
|
||||
|
|
Loading…
Reference in a new issue