ESPHome 2025.9.0-dev
Loading...
Searching...
No Matches
xiaomi_ble.h
Go to the documentation of this file.
1#pragma once
2
5
6#include <vector>
7
8#ifdef USE_ESP32
9
10namespace esphome {
11namespace xiaomi_ble {
12
55
57 uint8_t key[16];
58 uint8_t plaintext[16];
59 uint8_t ciphertext[16];
60 uint8_t authdata[16];
61 uint8_t iv[16];
62 uint8_t tag[16];
63 size_t keysize;
64 size_t authsize;
65 size_t datasize;
66 size_t tagsize;
67 size_t ivsize;
68};
69
70bool parse_xiaomi_value(uint16_t value_type, const uint8_t *data, uint8_t value_length, XiaomiParseResult &result);
71bool parse_xiaomi_message(const std::vector<uint8_t> &message, XiaomiParseResult &result);
73bool decrypt_xiaomi_payload(std::vector<uint8_t> &raw, const uint8_t *bindkey, const uint64_t &address);
74bool report_xiaomi_results(const optional<XiaomiParseResult> &result, const std::string &address);
75
77 public:
78 bool parse_device(const esp32_ble_tracker::ESPBTDevice &device) override;
79};
80
81} // namespace xiaomi_ble
82} // namespace esphome
83
84#endif
uint8_t address
Definition bl0906.h:4
uint8_t raw[35]
Definition bl0939.h:0
bool parse_device(const esp32_ble_tracker::ESPBTDevice &device) override
bool decrypt_xiaomi_payload(std::vector< uint8_t > &raw, const uint8_t *bindkey, const uint64_t &address)
optional< XiaomiParseResult > parse_xiaomi_header(const esp32_ble_tracker::ServiceData &service_data)
bool parse_xiaomi_value(uint16_t value_type, const uint8_t *data, uint8_t value_length, XiaomiParseResult &result)
bool parse_xiaomi_message(const std::vector< uint8_t > &message, XiaomiParseResult &result)
bool report_xiaomi_results(const optional< XiaomiParseResult > &result, const std::string &address)
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
enum esphome::xiaomi_ble::XiaomiParseResult::@157 type