verschup76
(Verschup76)
January 30, 2026, 4:15pm
21
Hey,
I was wondering if you could explain a bit more how you got this working? I have done some probing with BLE on my ESP32 but I can’t figure out how I can get it to work. I got the same probe as you, so any help would be greatly appreciated. Thanks!
In Europe I can find this model BF-30 Pro Wireless Meat Thermometer – BFOUR but can you explain with more detail how did you perform the integration? I have the GL-iNet GL-S10 flashed with ESPhome.
Thank you.
I have a Fireboard 2 with the blower controller and they have a API you can use. This is what I use to get that setup:
# rest.yaml
- authentication: basic
username: !secret email_login
password: !secret fireboard_pass
scan_interval: 20
resource: https://fireboard.io/api/v1/devices/your-api-url.json
sensor:
- name: "Fireboard name"
value_template: "OK"
json_attributes:
- device_log
- channels
- latest_temps
# template.yaml
- sensor:
- device_class: TEMPERATURE
unit_of_measurement: °F
default_entity_id: sensor.fireboard_channel1_temp
name: Fireboard 1
state: '{{ state_attr(''sensor.fireboard_name'', ''latest_temps'') | selectattr(''channel'',
''eq'', 1) | map(attribute=''temp'') | list | first | default(0.0) }}'
- device_class: TEMPERATURE
unit_of_measurement: °F
default_entity_id: sensor.fireboard_channel2_temp
name: Fireboard 2
state: '{{ state_attr(''sensor.fireboard_name'', ''latest_temps'') | selectattr(''channel'',
''eq'', 2) | map(attribute=''temp'') | list | first | default(0.0) }}'
- device_class: TEMPERATURE
unit_of_measurement: °F
default_entity_id: sensor.fireboard_channel3_temp
name: Fireboard 3
state: '{{ state_attr(''sensor.fireboard_name'', ''latest_temps'') | selectattr(''channel'',
''eq'', 3) | map(attribute=''temp'') | list | first | default(0.0) }}'
- device_class: TEMPERATURE
unit_of_measurement: °F
default_entity_id: sensor.fireboard_channel4_temp
name: Fireboard 4
state: '{{ state_attr(''sensor.fireboard_name'', ''latest_temps'') | selectattr(''channel'',
''eq'', 4) | map(attribute=''temp'') | list | first | default(0.0) }}'
- device_class: TEMPERATURE
unit_of_measurement: °F
default_entity_id: sensor.fireboard_channel5_temp
name: Fireboard 5
state: '{{ state_attr(''sensor.fireboard_name'', ''latest_temps'') | selectattr(''channel'',
''eq'', 5) | map(attribute=''temp'') | list | first | default(0.0) }}'
- device_class: TEMPERATURE
unit_of_measurement: °F
default_entity_id: sensor.fireboard_channel6_temp
name: Fireboard 6
state: '{{ state_attr(''sensor.fireboard_name'', ''latest_temps'') | selectattr(''channel'',
''eq'', 6) | map(attribute=''temp'') | list | first | default(0.0) }}'
- default_entity_id: sensor.fireboard_channel1_label
name: FB Label 1
state: '{{ state_attr(''sensor.fireboard_name'', ''channels'') | selectattr(''channel'',
''eq'', 1) | map(attribute=''channel_label'') | list | first | default('' '')
}}'
- default_entity_id: sensor.fireboard_channel2_label
name: FB Label 2
state: '{{ state_attr(''sensor.fireboard_name'', ''channels'') | selectattr(''channel'',
''eq'', 2) | map(attribute=''channel_label'') | list | first | default('' '')
}}'
- default_entity_id: sensor.fireboard_channel3_label
name: FB Label 3
state: '{{ state_attr(''sensor.fireboard_name'', ''channels'') | selectattr(''channel'',
''eq'', 3) | map(attribute=''channel_label'') | list | first | default('' '')
}}'
- default_entity_id: sensor.fireboard_channel4_label
name: FB Label 4
state: '{{ state_attr(''sensor.fireboard_name'', ''channels'') | selectattr(''channel'',
''eq'', 4) | map(attribute=''channel_label'') | list | first | default('' '')
}}'
- default_entity_id: sensor.fireboard_channel5_label
name: FB Label 5
state: '{{ state_attr(''sensor.fireboard_name'', ''channels'') | selectattr(''channel'',
''eq'', 5) | map(attribute=''channel_label'') | list | first | default('' '')
}}'
- default_entity_id: sensor.fireboard_channel6_label
name: FB Label 6
state: '{{ state_attr(''sensor.fireboard_name'', ''channels'') | selectattr(''channel'',
''eq'', 6) | map(attribute=''channel_label'') | list | first | default('' '')
}}'
finity
May 22, 2026, 12:24pm
24
Are they BT or Wifi? What integration do you use?
Hellis81
(Hellis81)
May 22, 2026, 12:27pm
25
finity
May 22, 2026, 12:36pm
26
Sorry I should have asked in the first place...
Which model?
I'd like to use a wireless version and I see them on Amazon but I'm not sure if that version works with that integration.
Hellis81
(Hellis81)
May 22, 2026, 12:51pm
27
finity
May 22, 2026, 1:09pm
28
Thank you for the info.
There's a few different brands/models I'm looking at right now.
I have a completely homemade one using an ESP module over MQTT with wired temp sensors that I've been using for years but it's finicky sometimes and it might be time for an upgrade. And the wireless ones are looking tempting.
Hellis81
(Hellis81)
May 22, 2026, 2:20pm
29
Well the one I linked to is not truly wireless.
It has wired probes to a battery powered brick that you can charge with USB C (I'm 99% sure about the USB C part).
The brick has magnets to that you can attach it to the BBQ
finity
May 22, 2026, 2:24pm
30
Sorry I wasn't clear.
I saw that yours weren't wireless to the hub and I'm looking for totally wireless ones like the Meater probes that use BT to it's hub.
But the Meater probes are a bit pricey so I was looking for a bit cheaper alternative that was also totally wireless.
Hellis81
(Hellis81)
May 22, 2026, 4:14pm
31
That is why I bought the one I did.
I did not find the wires that much of an inconvenience compared to the price.
Especially since I don't use the thermometer that much.
korniza
(Zac K )
June 1, 2026, 8:34am
32
A question of a rookie: where should I place this configuration to make it work?
Hellis81
(Hellis81)
June 1, 2026, 9:20am
33
That is ESP32 YAML.
You need an ESP32 and ESP-Home, the YAML should be added to the ESPs configuration and flashed.
If the code works as he posted then its just a few minutes of work.
You connect USB, create a new device ( a few clicks) and then you copy paste what the code and append it to the base configuration that is already premade for you.
korniza
(Zac K )
June 1, 2026, 11:52am
34
Thank you so much! I just started to upload it on an esp32! any idea how I can set the preset temperature on HA and get in on the screen of Bfour?
Hellis81
(Hellis81)
June 1, 2026, 12:30pm
35
I doubt that is possible.
Can it be done using the phone?
Rowr21
(Rowan Roddick)
August 4, 2026, 4:55pm
36
Hey, did you get this working? I tried the above and it has an issue triggering the lambda, it seems to only receive the first byte of the temperature message,
Thanks!
Yeap I did! Here is my code:
substitutions:
name: gl-s10-bt-proxy-d7a4b8
friendly_name: Bluetooth Proxy d7a4b8
packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/gl-inet/gl-s10.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
api:
encryption:
key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ota:
- platform: esphome
button:
- platform: restart
name: Restart
esp32_ble:
max_connections: 5
ble_client:
- mac_address: XX:XX:XX:XX:XX:XX
id: grill_bt5
auto_connect: true
sensor:
- name: "BF-60 Probe 1"
platform: ble_client
type: characteristic
ble_client_id: grill_bt5
service_uuid: "0000ffb0-0000-1000-8000-00805f9b34fb"
characteristic_uuid: "0000ffb2-0000-1000-8000-00805f9b34fb"
notify: true
device_class: temperature
unit_of_measurement: "°C"
accuracy_decimals: 1
lambda: |-
auto offset = 0;
auto temp = ((uint16_t)x[2+offset]*256 + x[3+offset]);
if (temp == 0xFFFF) return NAN;
return (float)temp/10;
- name: "BF-60 Probe 2"
platform: ble_client
type: characteristic
ble_client_id: grill_bt5
service_uuid: "0000ffb0-0000-1000-8000-00805f9b34fb"
characteristic_uuid: "0000ffb2-0000-1000-8000-00805f9b34fb"
notify: true
device_class: temperature
unit_of_measurement: "°C"
accuracy_decimals: 1
lambda: |-
auto offset = 2;
auto temp = ((uint16_t)x[2+offset]*256 + x[3+offset]);
if (temp == 0xFFFF) return NAN;
return (float)temp/10;