TLDR: I would like to be able to get the temperature/humidity readings from the Govee H5074 thermometers more consistently/frequently instead of the other unneeded data I don’t really need.
I just started using OpenMQTTGateway v1.7.0 (esp32dev-ble / PlatformIO) recently for reading my Bluetooth Govee thermometers as a replacement for the tony-fav / tasmota blerry esp method which is no longer supported as there are now several other BLE to MQTT choices available. It seems most people are leaning toward the Home Assistant options but I have never gone down that rabbit hole as I developing systems for my son-in-law’s hydroponics greenhouse and store as well as his friend’s planned storage container mushroom grow operation and now using Mycodo as a platform.
I’m excited to have found the OMG project and looking forward to exploring it more. Be forewarned I don’t have a lot of experience with working with BLE data or coding. I’ve only been tinkering with microcontrollers and Pis a couple of years and mostly just use other people’s work, so may need more explanation than many.
One Mycodo dashboard at the store will be monitoring the walk-in cooler and freezer temperatures, among several other things, so my s-i-l can see the current readings as he glances at the monitor. The problem I’m having is about a quarter of the time one or the other of the temperature readings will show ‘no data’ as the MQTT broker hasn’t gotten temperature topic data in the past five minutes. I could cut down on the ‘No Data’ messages by increasing the ‘keep alive’ setting from the 300 seconds I now have it set for but I’d rather not.
I see that the information transmitted by Govee thermometers don’t always contain temperature and humidity data (see MQTT messages below) though always send RSSI info. The graph below shows one instance where there is about six minutes between temperature readings with four readings with RSSI in between (which I don’t need to track). In the past several days I’ve seen periods of up to 12 minutes without temperature data being sent to the MQTT broker.
If possible, I’d like to be able to get the temp/humidity readings more quickly and really don’t know where to start.
Three different MQTT messages received from Govee H5074 using OMG (all have “rssi”):
The useful one with temp/humidity data
{“id”:“A4:C1:38:5A:FC:5D”,“name”:“Govee_H5074_FC5D”,“rssi”:-67,“brand”:“Govee”,“model”:“Thermo-Hygrometer”,“model_id”:“H5074”,“type”:“THB”,“tempc”:17.18,“tempf”:62.924,“hum”:34.5,“batt”:97}
The one with nothing I care to track
{“id”:“A4:C1:38:5A:FC:5D”,“name”:“Govee_H5074_FC5D”,“rssi”:-82,“brand”:“GENERIC”,“model”:“iBeacon”,“model_id”:“IBEACON”,“type”:“BCON”,“mfid”:“4c00”,“uuid”:“494e54454c4c495f524f434b535f4857”,“major”:20597,“minor”:-3329,“txpower”:-62}
And the one with only the first three fields
{“id”:“A4:C1:38:5A:FC:5D”,“name”:“Govee_H5074_FC5D”,“rssi”:-66}
For comparison, the following is the MQTT info is received when using ’Blerry’ instead of ‘OMG’. All messages contain the same fields.
{“Model”:“GVH5074”,“Time”:“2024-04-21T15:11:08”,“RSSI”:-47,“Alias”:“Basement_FC5D”,“Humidity”:35,“Temperature”:17.13,“Battery”:97,“DewPoint”:1.48,“MAC”:“A4C1385AFC5D”,“Name”:“Basement_FC5D”}