ESPHome Custom Component for the iGrill Bluetooth Thermometers This component will let you use a supported ESP32 to read sensor values from IGrill bluetooth thermometers and Pulse BBQ's.
To use this component, include it as an External component
external_components:
- source: github://bendikwa/esphome-igrill@v1.2
IGrill devices can be found using the igrill_ble_listener
To find out your device’s MAC address, add the following to your ESPHome configuration:
esp32_ble_tracker:
igrill_ble_listener:
The device will then listen for nearby devices, and display a message like this one:
[I][igrill_ble_listener:029]: Found IGrill device Name: iGrill_mini (MAC: 70:91:8F:XX:XX:XX)
Once the device is found, take note of the device MAC address. You will use it when configuring a sensor below.
You can now remove the igrill_ble_listener
device tracker from your configuration.
In principle, all IGrill devices, including the Pulse 2000 are supported, but I do not own all of them. The ones with a checkmark in the list are confirmed working IGrill models:
- IGrill mini
- IGrill mini V2
- IGrill V2 - Thanks to stogs for verifying
- IGrill V202
- IGrill V3
- Weber Pulse 1000 Thanks to samvanh for verifying
- Weber Pulse 2000 Thanks to PaulAntonDeen for testing and verifying
If you own one of the untested models, I would be thankfull if you create a ticket so we can get it confirmed working.
esp32_ble_tracker:
ble_client:
- mac_address: 70:91:8F:XX:XX:XX
id: igrill_device
sensor:
- platform: igrill
ble_client_id: igrill_device
update_interval: 30s # default
battery_level:
name: "IGrill v3 battery"
temperature_probe1:
name: "IGrill v3 temp probe 1"
temperature_probe2:
name: "IGrill v3 temp probe 2"
temperature_probe3:
name: "IGrill v3 temp probe 3"
temperature_probe4:
name: "IGrill v3 temp probe 4"
- update_interval (Optional, Time) The interval between each read and publish of sensor values. Defaults to "30s"
- send_value_when_unplugged (Optional, boolean): When set to
false
, the component will skip publishing for probes that are unplugged. Defaults totrue
- unplugged_probe_value (Optional, integer): The value to publish when a probe is disconnected, and send_value_when_unplugged is
true
. Defaults to 0
- temperature_probe1 (*Optional) The reported temperature of probe 1
- temperature_probe2 (*Optional) The reported temperature of probe 2
- temperature_probe3 (*Optional) The reported temperature of probe 3
- temperature_probe4 (*Optional) The reported temperature of probe 4
- pulse_heating_actual1 (*Optional) The reported temperature of the left heating element on a Pulse 2000
- pulse_heating_actual2 (*Optional) The reported temperature of the right heating element on a Pulse 2000
- pulse_heating_setpoint1 (*Optional) The reported setpoint of the left heating element on a Pulse 2000
- pulse_heating_setpoint2 (*Optional) The reported setpoint of the right heating element on a Pulse 2000
- propane_level (*Optional) The propane level on a V3 device
- battery_level (*Optional) The battery level of the igrill device
If you require HA sensors to indicate if a BT connection to the iGrill device is established (e.g. for conditional cards), you can use the automations included in ble_client
to update a template binary sensor like this:
ble_client:
- mac_address: 70:91:8F:XX:XX:XX
id: igrillv3
on_connect:
then:
- binary_sensor.template.publish:
id: v3_connection_bin
state: ON
on_disconnect:
then:
- binary_sensor.template.publish:
id: v3_connection_bin
state: OFF
binary_sensor:
- platform: template
name: "iGrill V3 connection status"
id: v3_connection_bin
device_class: connectivity
entity_category: diagnostic
The temperature unit of the sensors are set to the unit reported by the iGrill device
If the ESPHome device can't connect to your IGrill, please make sure that you disconnect it from any other devices you have used in the past. IGrill devices can't maintain multiple connections.
The same goes the other way around. If you use this component to connect to your IGrill, you can not use the mobile app at the same time.
Also, you can turn the log level up to Verbose to see more diagnostics:
logger:
level: VERBOSE
This is a work in progress, and some things do not work yet.
What works:
- MAC address discovery with
igrill_ble_listener
- Connection and authorization
- Detection of model and number of probes
- Publishing of probe temperatures
- Publishing of Pulse 2000 heating element values
- Publishing of battery level
- Publishing of propane level (Untested)
- Use correct temperature unit (read from device)
TODO:
- Publish firmware version
- Read and write temperature setpoint on probes
- Set temperature unit (write to device)