30 ESP_LOGVV(TAG,
"parse_device(): unknown MAC address.");
34 ESP_LOGVV(TAG,
"parse_device(): address is not public");
38 ESP_LOGVV(TAG,
"parse_device(): service_data is expected to be empty");
42 if (mnf_datas.size() != 1) {
43 ESP_LOGVV(TAG,
"parse_device(): manufacturer_datas is expected to have a single element");
46 const auto &mnf_data = mnf_datas[0];
48 ESP_LOGVV(TAG,
"parse_device(): manufacturer data element is expected to have uuid of length 16");
51 if (mnf_data.data.size() != 7) {
52 ESP_LOGVV(TAG,
"parse_device(): manufacturer data element length is expected to be of length 7");
55 if ((mnf_data.data[6] != 8) && (mnf_data.data[6] != 6)) {
56 ESP_LOGVV(TAG,
"parse_device(): unexpected data");
69 auto external_temperature = NAN;
72 auto measured_temperature = ((int16_t) mnf_data.uuid.uuid16()) / 100.0f;
75 if (mnf_data.data[2] == 0) {
77 }
else if (mnf_data.data[2] == 1) {
78 external_temperature = measured_temperature;
80 ESP_LOGVV(TAG,
"parse_device(): unknown sensor type");
84 auto battery_level = mnf_data.data[5];
85 auto humidity = ((mnf_data.data[1] << 8) + mnf_data.data[0]) / 100.0f;