#pragma once #include "esphome/core/component.h" #include "esphome/components/esp32_ble_tracker/esp32_ble_tracker.h" #ifdef USE_ESP32 namespace esphome { namespace ruuvi_ble { struct RuuviParseResult { optional humidity; optional temperature; optional pressure; optional acceleration; optional acceleration_x; optional acceleration_y; optional acceleration_z; optional battery_voltage; optional tx_power; optional movement_counter; optional measurement_sequence_number; }; bool parse_ruuvi_data_byte(uint8_t data_type, const uint8_t *data, uint8_t data_length, RuuviParseResult &result); optional parse_ruuvi(const esp32_ble_tracker::ESPBTDevice &device); class RuuviListener : public esp32_ble_tracker::ESPBTDeviceListener { public: bool parse_device(const esp32_ble_tracker::ESPBTDevice &device) override; }; } // namespace ruuvi_ble } // namespace esphome #endif