ESPHome 2026.1.5
Loading...
Searching...
No Matches
alpha3.h
Go to the documentation of this file.
1#pragma once
2
7
8#ifdef USE_ESP32
9
10#include <esp_gattc_api.h>
11
12namespace esphome {
13namespace alpha3 {
14
16
17static const espbt::ESPBTUUID ALPHA3_GENI_SERVICE_UUID = espbt::ESPBTUUID::from_uint16(0xfe5d);
18static const espbt::ESPBTUUID ALPHA3_GENI_CHARACTERISTIC_UUID = espbt::ESPBTUUID::from_raw(
19 {0xa9, 0x7b, 0xb8, 0x85, 0x00, 0x1a, 0x28, 0xaa, 0x2a, 0x43, 0x6e, 0x03, 0xd1, 0xff, 0x9c, 0x85});
20static const int16_t GENI_RESPONSE_HEADER_LENGTH = 13;
21static const size_t GENI_RESPONSE_TYPE_LENGTH = 8;
22
23static const uint8_t GENI_RESPONSE_TYPE_FLOW_HEAD[GENI_RESPONSE_TYPE_LENGTH] = {31, 0, 1, 48, 1, 0, 0, 24};
24static const int16_t GENI_RESPONSE_FLOW_OFFSET = 0;
25static const int16_t GENI_RESPONSE_HEAD_OFFSET = 4;
26
27static const uint8_t GENI_RESPONSE_TYPE_POWER[GENI_RESPONSE_TYPE_LENGTH] = {44, 0, 1, 0, 1, 0, 0, 37};
28static const int16_t GENI_RESPONSE_VOLTAGE_AC_OFFSET = 0;
29static const int16_t GENI_RESPONSE_VOLTAGE_DC_OFFSET = 4;
30static const int16_t GENI_RESPONSE_CURRENT_OFFSET = 8;
31static const int16_t GENI_RESPONSE_POWER_OFFSET = 12;
32static const int16_t GENI_RESPONSE_MOTOR_POWER_OFFSET = 16; // not sure
33static const int16_t GENI_RESPONSE_MOTOR_SPEED_OFFSET = 20;
34
36 public:
37 void setup() override;
38 void update() override;
39 void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if,
40 esp_ble_gattc_cb_param_t *param) override;
41 void dump_config() override;
42 void set_flow_sensor(sensor::Sensor *sensor) { this->flow_sensor_ = sensor; }
43 void set_head_sensor(sensor::Sensor *sensor) { this->head_sensor_ = sensor; }
44 void set_power_sensor(sensor::Sensor *sensor) { this->power_sensor_ = sensor; }
45 void set_current_sensor(sensor::Sensor *sensor) { this->current_sensor_ = sensor; }
46 void set_speed_sensor(sensor::Sensor *sensor) { this->speed_sensor_ = sensor; }
47 void set_voltage_sensor(sensor::Sensor *sensor) { this->voltage_sensor_ = sensor; }
48
49 protected:
56 uint16_t geni_handle_;
59 uint8_t response_type_[GENI_RESPONSE_TYPE_LENGTH];
60 uint8_t buffer_[4];
61 void extract_publish_sensor_value_(const uint8_t *response, int16_t length, int16_t response_offset,
62 int16_t value_offset, sensor::Sensor *sensor, float factor);
63 void handle_geni_response_(const uint8_t *response, uint16_t length);
64 void send_request_(uint8_t *request, size_t len);
65 bool is_current_response_type_(const uint8_t *response_type);
66};
67} // namespace alpha3
68} // namespace esphome
69
70#endif
This class simplifies creating components that periodically check a state.
Definition component.h:525
uint8_t buffer_[4]
Definition alpha3.h:60
void set_current_sensor(sensor::Sensor *sensor)
Definition alpha3.h:45
void set_head_sensor(sensor::Sensor *sensor)
Definition alpha3.h:43
void handle_geni_response_(const uint8_t *response, uint16_t length)
Definition alpha3.cpp:57
bool is_current_response_type_(const uint8_t *response_type)
Definition alpha3.cpp:53
sensor::Sensor * head_sensor_
Definition alpha3.h:51
sensor::Sensor * flow_sensor_
Definition alpha3.h:50
uint8_t response_type_[GENI_RESPONSE_TYPE_LENGTH]
Definition alpha3.h:59
sensor::Sensor * voltage_sensor_
Definition alpha3.h:55
void setup() override
Definition alpha3.cpp:23
void set_power_sensor(sensor::Sensor *sensor)
Definition alpha3.h:44
void set_flow_sensor(sensor::Sensor *sensor)
Definition alpha3.h:42
void send_request_(uint8_t *request, size_t len)
Definition alpha3.cpp:162
int16_t response_length_
Definition alpha3.h:57
sensor::Sensor * speed_sensor_
Definition alpha3.h:54
sensor::Sensor * power_sensor_
Definition alpha3.h:52
void update() override
Definition alpha3.cpp:170
int16_t response_offset_
Definition alpha3.h:58
void set_speed_sensor(sensor::Sensor *sensor)
Definition alpha3.h:46
void extract_publish_sensor_value_(const uint8_t *response, int16_t length, int16_t response_offset, int16_t value_offset, sensor::Sensor *sensor, float factor)
Definition alpha3.cpp:25
void set_voltage_sensor(sensor::Sensor *sensor)
Definition alpha3.h:47
sensor::Sensor * current_sensor_
Definition alpha3.h:53
void dump_config() override
Definition alpha3.cpp:13
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param) override
Definition alpha3.cpp:97
uint16_t geni_handle_
Definition alpha3.h:56
Base-class for all sensors.
Definition sensor.h:42
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
std::string size_t len
Definition helpers.h:595
uint16_t length
Definition tt21100.cpp:0