Hello, can you please refer me to the instructions you followed to be able to add the entities to home assistant? appreciate your help , thanks in advance.
Curious, running IOS, do you lose access to the inklbird APP (do you only have access through the tuya app (and HA))? has anyone tried this with the BW version?
I’m currently “working on” / “searching for” a control flow for my smokebox. Your setup looks very good. Would you mind shearing the json code?
Has anyone figured out how to get this working after 2023.5? I can connect to the device, but the temp pobes are just returning long strings of gobbelty-gook…
Same Problem
Tried this with my iBBQ-4T but I only see the main-device in HASS, no probes.
Do I need to add these probes in Tuya (not sure if possible) to make them appear in HASS?
I’m having the same issue. I think at some point they have changed the device to report all 4 probes from DP 107. I think the long strings is encoding all 4 temps into 1 base64 string. Not sure how it is encoded though.
Is there some standard way that a base64 string would be modified by multiplying / dividing by the local key, maybe?
@JB1982 figured it out in NodeRed and posted his code in the linked post. I used his code (with some small changes) and it is working great.
I am new to node red, what changes where made to get it working for you?
So TuyaLoca decodes my inkbird as follows:
primary_entity:
entity: sensor
name: Temperature probe 1
class: temperature
dps:
- id: 107
type: base64
name: sensor
class: measurement
optional: true
mapping:
- mask: FFFF000000000000
endianness: little
scale: 100
unit: F
- id: 111
type: bitfield
name: fault_code
secondary_entities:
- entity: sensor
name: Temperature probe 2
class: temperature
dps:
- id: 107
type: integer
name: sensor
class: measurement
optional: true
mapping:
- scale: 100
mask: 0000FFFF00000000
endianness: little
unit: F
- entity: sensor
name: Temperature probe 3
class: temperature
dps:
- id: 107
type: integer
name: sensor
class: measurement
optional: true
mapping:
- scale: 100
mask: 00000000FFFF0000
endianness: little
unit: F
- entity: sensor
name: Temperature probe 4
class: temperature
dps:
- id: 107
type: integer
name: sensor
class: measurement
optional: true
mapping:
- scale: 100
mask: 000000000000FFFF
endianness: little
unit: F
But for some reason it messes up Probe1 and doesn’t populate Probe2,3,4
Debug from hassio:
"data": {
"name": "BBQ thermometer",
"type": "inkbird_bbq4t_thermometerv2",
"device_id": "**REDACTED**",
"device_cid": "",
"local_key": "**REDACTED**",
"host": "**REDACTED**",
"protocol_version": 3.3,
"tinytuya_version": "1.13.1",
"api_version_set": 3.3,
"api_version_used": 3.3,
"api_working": true,
"status": {},
"cached_state": {
"updated_at": 1703167790.8128028,
"1": true,
"19": "f",
"101": 74000,
"102": 15,
"104": false,
"105": 0,
"111": 0,
"107": "UB4AAEYeAABQHgAA7B0AAA=="
},
Actual temps read from the actual inkbird are (F):
PRB1 = 78
PRB2 = 78
PRB3 = 78
PRB4 = 77
I have created these binary_sensors to determine which probes are connected. I use these in conditional cards to only display the probes that are in use.
They need an entity (in this case named number.probes_connected) which returns the value from ID 111.
I have this in my binary_sensors.yaml
Thought I’d share.
- platform: template
sensors:
ibbq_probe_1_connected:
friendly_name: "iBBQ Probe 1 Connected"
value_template: >
{% set decVal = states('number.probes_connected') %}
{% if decVal not in ['unavailable', 'unknown', 'none', None] %}
{{ (decVal | int) % 2 == 0 }}
{% else %}
false
{% endif %}
device_class: connectivity
ibbq_probe_2_connected:
friendly_name: "iBBQ Probe 2 Connected"
value_template: >
{% set decVal = states('number.probes_connected') %}
{% if decVal not in ['unavailable', 'unknown', 'none', None] %}
{{ ((decVal | int) // 2) % 2 == 0 }}
{% else %}
false
{% endif %}
device_class: connectivity
ibbq_probe_3_connected:
friendly_name: "iBBQ Probe 3 Connected"
value_template: >
{% set decVal = states('number.probes_connected') %}
{% if decVal not in ['unavailable', 'unknown', 'none', None] %}
{{ ((decVal | int) // 4) % 2 == 0 }}
{% else %}
false
{% endif %}
device_class: connectivity
ibbq_probe_4_connected:
friendly_name: "iBBQ Probe 4 Connected"
value_template: >
{% set decVal = states('number.probes_connected') %}
{% if decVal not in ['unavailable', 'unknown', 'none', None] %}
{{ ((decVal | int) // 8) % 2 == 0 }}
{% else %}
false
{% endif %}
device_class: connectivity
That’s great, how did you get that done?
I shared my code on github: GitHub - TurboTronix/IBBQ-4T-V2: HomeAssistant Lovelace UI for IBBQ-4T V2
I got the localTuya to add the device, but I like to read it in C, and I get a F value (scaled down to 0.01)
I tried to add this to yaml but its wrong…
localtuya:
- sensor:
name: “BBQ Probe 1”
value_template: “{{ ((value | float - 32) / 1.8)|round(2) }}”
I think best is to do the conversion in hassio rather than esp, i haven’t played with that yet but eventually i want to add a button to switch between c and f.
I dont get the device into tuya. Tuya don’t find them. What i have to chose in the tuya app, that the app finds the device?
Hi all,
I integrated iBBQ-4T in home assistant without problems months ago, but I’m now seeing that when I detach the probe, I continue to have my last temperature value on probe and not “unavailable”. Haven’t had the problem before. Have anyone the same problem?
Thank you.