Open haplm opened 3 years ago
Hi,
I have the same problem with my esp32 and Inkbird. I noticed that it works without an external sensor cable on the Inkbird. [12:22:11][D][sensor:099]: 'Temperature': Sending state 27.34000 °C with 1 decimals of accuracy [12:22:11][D][sensor:099]: 'Luftfeuchtigkeit': Sending state 60.00000 % with 1 decimals of accuracy [12:22:11][D][sensor:099]: 'Batterie Sensor': Sending state 94.00000 % with 0 decimals of accuracy
As soon as I plug in the temperature sensor again, no more data comes in. It just comes: [12:21:07][D][esp32_ble_tracker:620]: Found device 49:42:06:00:43:E3 RSSI=-71 [12:21:07][D][esp32_ble_tracker:641]: Address Type: PUBLIC
Need help ...
I can confirm this. When I unplug the external sensor, I'll get the readings. Apparently with the sensor plugged in the order of the bytes changes... I'm happy to help to debug this.
I seem to be having issues getting data with or without the external sensor connected. A little debugging shows get_manufacturer_datas() consistently returning an empty vector. I have confirmed the data is being transmitted to the app on my phone so not sure why no data is getting picked up by ESPHome. @fkirill what version of the firmware is on the devices you used when writing this integration? My devices have version 1.7.0, wondering if something has changed in newer firmware versions.
So after much trial and error I determined that the reason I wasn't getting any data was because of the scan parameters I had set trying to get the connection to HA stable. I am now getting data but unfortunately my HA connection is back to dropping for a couple of seconds every few minutes. Good news for everyone else is that while I don't plan to use the external sensors I should be able to get a PR up in the next day or 2 that will allow these to work with or without the external sensor.
So apparently I grabbed an old version of the code for this when I was troubleshooting and this has already been resolved by esphome/esphome#1983.
Hey guys, I don't have a model with an external sensor. So while I understand the difficulty, I cannot really help with fixing it. Can someone with the device and programming skills have a look at it?
As for HA connectivity, this particular piece of code we are talking about only has to do with decoding BlueTooth signals related to the Inkbird device on ESP32 and converting them to the temperature, humidity, and battery sensor levels that can be understood by HA. Connectivity to HA itself is a completely separate and unrelated topic and probably deserves an issue of its own.
Hi, i have same problem. I have IBS-TH1 Mini but it doesnt sending any data. I am getting only: [15:46:33][VV][inkbird_ibsth1_mini:033]: parse_device(): unknown MAC address. message.
Hey guys, looking at the code, where this message comes from https://github.com/esphome/esphome/blob/d536509a63189490f314e5923471828ca28ba26d/esphome/components/inkbird_ibsth1_mini/inkbird_ibsth1_mini.cpp#L33
It appears that it is not a bug. It only means that we're trying to parse the Bluetooth data that is coming from some other device (not Inkbird) and shouldn't be processed by the Inkbird code anyway. The logging itself is only printed at a VV logging level (super-verbose) and is only really useful for debugging.
In the process of setting up the device, you will have to establish the MAC address and set it in the yaml configuration. https://esphome.io/components/sensor/inkbird_ibsth1_mini.html#setting-up-devices
It stands to reason that Inkbird code ignores all other BLE signals from all other devices (with different MAC addresses).
Please double-check that you set up your MAC address properly.
Thanks.
In my case, it seems that this one line is causing the value to fail to be retrieved. https://github.com/esphome/esphome/blob/d536509a63189490f314e5923471828ca28ba26d/esphome/components/inkbird_ibsth1_mini/inkbird_ibsth1_mini.cpp#L58
The condition in the code is 8, but my device advertises 6.
So the idea is that I wanted to have a condition to be as specific as possible to avoid misreading the data from the wrong device.
Can you test it locally if you change condition to ((mnf_data.data[6] == 6) || (mnf_data.data[6] == 8))
?
Operating environment/Installation (Hass.io/Docker/pip/etc.):
Hass.io, latest version
ESP (ESP32/ESP8266, Board/Sonoff):
Couple different boards built around ESP32-WROOM
ESPHome version (latest production, beta, dev branch)
1.18.0
Affected component:
https://esphome.io/components/sensor/inkbird_ibsth1_mini.html
Description of problem: Inkbird sensor configured in YAML, MAC address located and correctly set in the configuration. I can see 'sps' device being picked-up by the esp32_ble_tracker, but no values are read. I assume that the problem lays in the fact that the 'Manufacturer specific' response looks different compared to the description in the code, which is: // 5) the manufacturer datas should contain a 16-bit uuid amd a 7-byte data vector
// 6) the 7-byte data component should have data[2] == 0 and data[6] == 8
This is what I'm getting when I scan public beacons from my phone:![Screenshot_20210530-144257_Beacon Simulator](https://user-images.githubusercontent.com/295448/120104599-7852b800-c155-11eb-8382-3f260a436e9d.jpg)
Problem-relevant YAML-configuration entries:
Logs (if applicable):
Additional information and things you've tried: