26 uint32_t pressure_raw;
27 uint16_t temperature_raw;
34 ESP_LOGE(TAG,
"Failed to read sensor data! Error code: %i", success);
42 ESP_LOGV(TAG,
"Got raw pressure=%" PRIu32
", raw temperature=%u", pressure_raw, temperature_raw);
43 ESP_LOGV(TAG,
"K value is %u", this->
k_value_);
47 if (pressure_raw > pow(2, 23)) {
49 pressure_in_pa = (pressure_raw - pow(2, 24)) / (
float) (this->
k_value_);
52 pressure_in_pa = pressure_raw / (float) (this->
k_value_);
55 if (temperature_raw > pow(2, 15)) {
57 temperature = (float) (temperature_raw - pow(2, 16)) / 256.0f;
63 if (this->pressure_sensor_ !=
nullptr)
64 this->pressure_sensor_->publish_state(pressure_in_pa);
66 if (this->temperature_sensor_ !=
nullptr)
67 this->temperature_sensor_->publish_state(
temperature);