You do not have permission to edit this page, for the following reason:
The action you have requested is limited to users in the group: Users.
Free text:
=== synopsis === Remove Barbecue temperature sensor from the cloud, adding it to Home Assistant. [[User:Xopr|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 [https://developer.tuya.com/en/docs/iot/wbr3-module-datasheet?id=K9dujs2k5nriy 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. [[Image:ibbq_naked.jpg|thumb|Naked PCB with a transplanted ESP module. Notice the required resistors for running and optional jumper for in-circuit programming]] [[Image:ibbq_ha.png|thumb|probes in Home Assistant]] ==== 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 <code>Reset</code> and <code>GND</code> on the breakout pads while flashing the ESP === firmware settings === After connecting to Tasmota, go to Configuration -> Other and set template <code>{"NAME":"Tuya","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54}</code> Next, go to console and enter the following commands: * set as template module (using TuyaMCU): <code>module 0</code> * set baudrate to 115200: <code>SetOption97 1</code> * <code>Backlog TuyaMCU 99,1; TuyaMCU 11,19; TuyaMCU 35,101; TuyaMCU 81,102; TuyaMCU 12,104</code> * 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: <pre>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</pre> * Set button names: <code>Backlog WebButton1 F/C; WebButton2 Mute</code> === 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: <pre> 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 </pre> === 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
Summary:
This is a minor edit Watch this page
Cancel