ESPHome 2026.5.1
Loading...
Searching...
No Matches
honeywellabp2.h
Go to the documentation of this file.
1// for Honeywell ABP sensor
2// adapting code from https://github.com/vwls/Honeywell_pressure_sensors
3#pragma once
4
7#include "esphome/core/hal.h"
9
11
13
15 public:
16 void set_pressure_sensor(sensor::Sensor *pressure_sensor) { this->pressure_sensor_ = pressure_sensor; };
17 void set_temperature_sensor(sensor::Sensor *temperature_sensor) { this->temperature_sensor_ = temperature_sensor; };
18 void loop() override;
19 void update() override;
20 void dump_config() override;
21
22 void read_sensor_data();
23 void start_measurement();
26
27 float get_pressure();
28 float get_temperature();
29
30 void set_min_pressure(float min_pressure) { this->min_pressure_ = min_pressure; };
31 void set_max_pressure(float max_pressure) { this->max_pressure_ = max_pressure; };
32 void set_transfer_function(ABP2TRANFERFUNCTION transfer_function);
33
34 protected:
35 float min_pressure_ = 0.0;
36 float max_pressure_ = 0.0;
38
41
42 const float max_count_a_ = 15099494.4; // (90% of 2^24 counts or 0xE66666)
43 const float min_count_a_ = 1677721.6; // (10% of 2^24 counts or 0x19999A)
44 const float max_count_b_ = 11744051.2; // (70% of 2^24 counts or 0xB33333)
45 const float min_count_b_ = 5033164.8; // (30% of 2^24 counts or 0x4CCCCC)
46
50
51 uint8_t raw_data_[7]; // holds output data
52 uint8_t i2c_cmd_[3] = {0xAA, 0x00, 0x00}; // command to be sent
55};
56
57} // namespace esphome::honeywellabp2_i2c
This class simplifies creating components that periodically check a state.
Definition component.h:602
void set_temperature_sensor(sensor::Sensor *temperature_sensor)
void set_pressure_sensor(sensor::Sensor *pressure_sensor)
void set_transfer_function(ABP2TRANFERFUNCTION transfer_function)
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:132
Base-class for all sensors.
Definition sensor.h:47