Inkbird IBBQ-4T
Project: Inkbird IBBQ-4T | |
---|---|
Featured: | Yes |
State | Active |
Members | xopr |
GitHub | No GitHub project defined. Add your project here. |
Description | Cloudless Inkbird IBBQ-4T |
Picture | |
![]() |
Contents
synopsis
Remove Barbecue temperature sensor from the cloud, adding it to Home Assistant.
xopr had some gift cards to spare and paid €69,- for it (noice!)
requirements
- ESP-12 module flashed with Tasmota using a programming jig (or in-circuit with extra reset jumper)
- solder iron + solder
- desoldering iron or lots of solder
- hairdryer or equivalent
- small philips screwdriver
- flat screwdriver or spudger
- utility or exacto knife
- (optional) wires for in-circuit programming
hardware
The thermometer has a backlit display, beeper, USB-C charge (only) port and a 7.4Wh 3.7v battery. It's wireless part is based on Tuya: a Chinese IoT cloud provider and the first revision had an Espressif wifi chip. This version has a WBR3 module based on Realtek chips which is incompatible with the current open source solutions.
The only way is to replace the module with an ESP-12, pull GPIO15 low and CH_PD high with a 10-20k resistor.
opening and replacing the module
- grab a hairdryer and utility/exacto knife
- heat the front plate and pry open carefully to not scratch off the paint. The adhesive is foamy so pushing the knife too far might make it curl up
- use small philips screwdriver to open up the case and remove the board (USB-C side first; bend the case a bit, and don't lose the knob)
- remove the Realtek module
- solder on the ESP module (either pre-programmed or solder extra wires)
- solder a resistor between CH_PD and VCC and one between GND and GPIO15
- if you want to program in-circuit, keep the Tuya MCU in reset by bridging
Reset
andGND
on the breakout pads while flashing the ESP
firmware settings
After connecting to Tasmota, go to Configuration -> Other and set template
{"NAME":"Tuya","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54}
Next, go to console and enter the following commands:
- set as template module (using TuyaMCU):
module 0
- set baudrate to 115200:
SetOption97 1
Backlog TuyaMCU 99,1; TuyaMCU 11,19; TuyaMCU 35,101; TuyaMCU 81,102; TuyaMCU 12,104
- Add two rules and activate them. The first rule sets an enum value for the mute button, the second one publishes the raw hex values on the probes subtopic:
Rule1 ON power1#state=1 DO TuyaSend4 19,1 ENDON ON power1#state=0 DO TuyaSend4 19,0 ENDON Rule2 ON TuyaReceived#DpType0Id107 DO Publish stat/%topic%/probes %value% ENDON Backlog Rule1 1; Rule2 1
- Set button names:
Backlog WebButton1 F/C; WebButton2 Mute
home assistant
Note that the published hex value contains 4x8 hex characters as little endian farenheit values where the first byte is ignored (it seems to toggle between 0 and 1)
In the configuration.yaml file, set the following:
mqtt: sensor: - name: "Barbecue probe 1" state_topic: "stat/tasmota_5B7316/probes" unique_id: "barbecue_probe_1" value_template: "{{(0xffff * value[6:8] | int(base=16) + 0xff * value[4:6] | int(base=16) + value[2:4] | int(base=16)) / 100 }}" unit_of_measurement: "°F" device_class: temperature - name: "Barbecue probe 2" state_topic: "stat/tasmota_5B7316/probes" unique_id: "barbecue_probe_2" value_template: "{{(0xffff * value[14:16] | int(base=16) + 0xff * value[12:14] | int(base=16) + value[10:12] | int(base=16)) / 100 }}" unit_of_measurement: "°F" device_class: temperature - name: "Barbecue probe 3" state_topic: "stat/tasmota_5B7316/probes" unique_id: "barbecue_probe_3" value_template: "{{(0xffff * value[22:24] | int(base=16) + 0xff * value[20:22] | int(base=16) + value[18:20] | int(base=16)) / 100 }}" unit_of_measurement: "°F" device_class: temperature - name: "Barbecue probe 4" state_topic: "stat/tasmota_5B7316/probes" unique_id: "barbecue_probe_4" value_template: "{{(0xffff * value[30:32] | int(base=16) + 0xff * value[28:30] | int(base=16) + value[26:28] | int(base=16)) / 100 }}" unit_of_measurement: "°F" device_class: temperature
todo
- ignore the sensor if it is not plugged in (there is a bitmask command but it's safe to assume >1000 degrees is not a realistic value
- add instructions/commands to set display timer, temperature alarm and other stuff
links
- Superb research information here: https://community.home-assistant.io/t/inkbird-bbq4t-local-control/309433/7
- Link to google spreadsheet containing the specific Tuya commands: https://docs.google.com/spreadsheets/d/1hQ805Ksk2wpGK8vPj0LHx7F3GaqZKFMFnVoLVZFEPiw/edit?gid=0#gid=0