natekspencer / hacs-govee_ble

Home Assistant integration for a Govee Bluetooth Low Energy (BLE) devices.
MIT License
19 stars 2 forks source link

How can I help to add compatibility to the H5055 Thermometer? #1

Closed liquidbear99 closed 3 years ago

natekspencer commented 3 years ago

If you install this component and enable debugging as outlined in https://github.com/natekspencer/hacs-govee_ble#debugging then hopefully it can read some basic information that you can post here. What is the bluetooth name that shows up for this device?

liquidbear99 commented 3 years ago

You got it! The name is "Govee_H5055_3BD6" Ill get the debugging info in a second. By the way I love the idea with this integration!

natekspencer commented 3 years ago

Govee_H5055_3BD6

Perfect, this should handle that naming convention as far as considering it as a "Govee" device and output the advertisement data in the logs when debug is enabled. Aside from that, I'd just need information about the data that is displayed in the app around the same time to try to decode what the byte data means in real life. So if you have that data as well, that would be awesome!

liquidbear99 commented 3 years ago

Sure, there are 6 temperature sensors that display in degrees F. I switched the logger to debug for the integration, but don't see any data corresponding to that integration. It probably is because I haven't configured the addon yet. I simply installed it from the HACS store but haven't added anything to the yaml.

natekspencer commented 3 years ago

Yeah, you'll want to install it via the config flow. Per your other issue, I updated the readme at https://github.com/natekspencer/hacs-govee_ble#configuration. Basically, you just need to:

  1. Go to Configuration->Integrations
  2. Click + ADD INTEGRATION to setup a new integration
  3. Search for Govee BLE and click on it
  4. You will be guided through the rest of the setup process via the config flow
liquidbear99 commented 3 years ago

That's what I assumed from my other experiences with custom components but I don't see the integration come up when I click add integration. I tried reinstalling it from HACS and restarted my HA instance.

natekspencer commented 3 years ago

Hopefully it shows up after this restart.

liquidbear99 commented 3 years ago

Ya, I'm still not seeing it after reinstalling in HACS and restarting

image

image

natekspencer commented 3 years ago

Weird, I wonder if you are having caching issues as I just went through the whole process again on my instance by uninstalling/restarting then installing/restarting.

liquidbear99 commented 3 years ago

Man you are on fire! Just cleared my cache and it worked. I've actually had that happen before and should have checked that. Now onto those logs

liquidbear99 commented 3 years ago

I'm not seeing any specific logs. Do I need to do something like pair the thermometer first

natekspencer commented 3 years ago

I'm not seeing any specific logs. Do I need to do something like pair the thermometer first

As long as the device is on and sending advertisement packets, it should eventually be picked up and logged. This integration relies on advertisement packets only, so it shouldn't need to be paired. If it does require pairing before sending data, then this integration won't work for the time being.

liquidbear99 commented 3 years ago

My phone shows the device available to pair so I know that it's on and functioning. Is there anything else I can do besides just leave it on and hope for it to be picked up?

natekspencer commented 3 years ago

If you have an Android device, you can install nrf Connect and paste the RAW data. I'm not sure of a similar one on iOS just yet.

liquidbear99 commented 3 years ago

The RAW says this "0x02011A03036FFD17166FFDA51BC8C428FCA06E3F38686168A7DD8B1170A45B"

Does this help?

liquidbear99 commented 3 years ago

image

natekspencer commented 3 years ago

Thanks. Based off of that, it doesn't look like the H5055 is advertising any manufacturer specific data for the temperature information. 0x01 is a flag, 0x03 is service UUIDs and 0x16 is the service data UUID (https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/). There would need to be a 0xFF type with value information that could be used to decode. For this one to work, I'd have to pair with the device and interact using those service UUIDs to retrieve/parse the information.

liquidbear99 commented 3 years ago

Thanks anyway for all the help. I appreciate you looking into it.

Ernst79 commented 2 years ago

0x16 service data can contain data, xiaomi ble sensors for example use 0x1695FE to send their data. BTW, the BLE advertisement from a few posts above (0x02011A03036FFD17166FFDA51BC8C428FCA06E3F38686168A7DD8B1170A45B) is a H5075 (GVH5075_CB9B), not a H5055.