ESPHome 2026.10.0-dev
Loading...
Searching...
No Matches
ruuvitag.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome::ruuvitag {
9
11 public:
12 void set_address(uint64_t address) { address_ = address; }
13
14 bool parse_device(const ble_device_base::ESPBTDevice &device) override {
15 if (device.address_uint64() != this->address_)
16 return false;
17
18 auto res = ruuvi_ble::parse_ruuvi(device);
19 if (!res.has_value())
20 return false;
21
22 if (res->humidity.has_value() && this->humidity_ != nullptr)
23 this->humidity_->publish_state(*res->humidity);
24 if (res->temperature.has_value() && this->temperature_ != nullptr)
25 this->temperature_->publish_state(*res->temperature);
26 if (res->pressure.has_value() && this->pressure_ != nullptr)
27 this->pressure_->publish_state(*res->pressure);
28 if (res->acceleration.has_value() && this->acceleration_ != nullptr)
29 this->acceleration_->publish_state(*res->acceleration);
30 if (res->acceleration_x.has_value() && this->acceleration_x_ != nullptr)
31 this->acceleration_x_->publish_state(*res->acceleration_x);
32 if (res->acceleration_y.has_value() && this->acceleration_y_ != nullptr)
33 this->acceleration_y_->publish_state(*res->acceleration_y);
34 if (res->acceleration_z.has_value() && this->acceleration_z_ != nullptr)
35 this->acceleration_z_->publish_state(*res->acceleration_z);
36 if (res->battery_voltage.has_value() && this->battery_voltage_ != nullptr)
37 this->battery_voltage_->publish_state(*res->battery_voltage);
38 if (res->tx_power.has_value() && this->tx_power_ != nullptr)
39 this->tx_power_->publish_state(*res->tx_power);
40 if (res->movement_counter.has_value() && this->movement_counter_ != nullptr)
41 this->movement_counter_->publish_state(*res->movement_counter);
42 if (res->measurement_sequence_number.has_value() && this->measurement_sequence_number_ != nullptr)
43 this->measurement_sequence_number_->publish_state(*res->measurement_sequence_number);
44 return true;
45 }
46
47 void dump_config() override;
48 void set_humidity(sensor::Sensor *humidity) { humidity_ = humidity; }
51 void set_acceleration(sensor::Sensor *acceleration) { acceleration_ = acceleration; }
52 void set_acceleration_x(sensor::Sensor *acceleration_x) { acceleration_x_ = acceleration_x; }
53 void set_acceleration_y(sensor::Sensor *acceleration_y) { acceleration_y_ = acceleration_y; }
54 void set_acceleration_z(sensor::Sensor *acceleration_z) { acceleration_z_ = acceleration_z; }
55 void set_battery_voltage(sensor::Sensor *battery_voltage) { battery_voltage_ = battery_voltage; }
56 void set_tx_power(sensor::Sensor *tx_power) { tx_power_ = tx_power; }
57 void set_movement_counter(sensor::Sensor *movement_counter) { movement_counter_ = movement_counter; }
58 void set_measurement_sequence_number(sensor::Sensor *measurement_sequence_number) {
59 measurement_sequence_number_ = measurement_sequence_number;
60 }
61
62 protected:
63 uint64_t address_;
75};
76
77} // namespace esphome::ruuvitag
uint8_t address
Definition bl0906.h:4
uint64_t address_uint64() const
Return MAC as packed uint64 (byte 0 in LSB — matches esp32's address_uint64).
void set_battery_voltage(sensor::Sensor *battery_voltage)
Definition ruuvitag.h:55
void set_acceleration_x(sensor::Sensor *acceleration_x)
Definition ruuvitag.h:52
void set_measurement_sequence_number(sensor::Sensor *measurement_sequence_number)
Definition ruuvitag.h:58
void set_pressure(sensor::Sensor *pressure)
Definition ruuvitag.h:50
void set_acceleration_z(sensor::Sensor *acceleration_z)
Definition ruuvitag.h:54
sensor::Sensor * acceleration_y_
Definition ruuvitag.h:69
void set_address(uint64_t address)
Definition ruuvitag.h:12
void dump_config() override
Definition ruuvitag.cpp:8
void set_acceleration(sensor::Sensor *acceleration)
Definition ruuvitag.h:51
sensor::Sensor * pressure_
Definition ruuvitag.h:66
void set_humidity(sensor::Sensor *humidity)
Definition ruuvitag.h:48
sensor::Sensor * acceleration_z_
Definition ruuvitag.h:70
bool parse_device(const ble_device_base::ESPBTDevice &device) override
Definition ruuvitag.h:14
sensor::Sensor * temperature_
Definition ruuvitag.h:64
void set_movement_counter(sensor::Sensor *movement_counter)
Definition ruuvitag.h:57
sensor::Sensor * movement_counter_
Definition ruuvitag.h:73
void set_temperature(sensor::Sensor *temperature)
Definition ruuvitag.h:49
sensor::Sensor * measurement_sequence_number_
Definition ruuvitag.h:74
void set_tx_power(sensor::Sensor *tx_power)
Definition ruuvitag.h:56
sensor::Sensor * humidity_
Definition ruuvitag.h:65
sensor::Sensor * battery_voltage_
Definition ruuvitag.h:71
sensor::Sensor * tx_power_
Definition ruuvitag.h:72
sensor::Sensor * acceleration_x_
Definition ruuvitag.h:68
void set_acceleration_y(sensor::Sensor *acceleration_y)
Definition ruuvitag.h:53
sensor::Sensor * acceleration_
Definition ruuvitag.h:67
Base-class for all sensors.
Definition sensor.h:47
void publish_state(float state)
Publish a new state to the front-end.
Definition sensor.cpp:68
optional< RuuviParseResult > parse_ruuvi(const ble_device_base::ESPBTDevice &device)
Definition ruuvi_ble.cpp:81
uint16_t temperature
Definition sun_gtil2.cpp:12
uint8_t pressure
Definition tt21100.cpp:7