igrill-hassio
Tutorial for establishing a connection between an iGrill temperature probe and Hass.io Home Assistant
Introduction of my Use Case
I like the iGrill device, and have invested in four probes. I do not like my being tied to the bluetooth range of my grill when using Weber's application to monitor the iGrill. I also do not like the features creeping into Weber's application that call out of my network to Weber properties nor those that require a 'Weber-ID'.
My objectives were:
- Be able to walk away from my grill and continue monitoring temperatures
- Keep data within my home network when possible
- Dockerize the iGrill monitor to ensure it never dies and make repeating installation easy
Hardware Components
- iGrill v2
- 2x Raspberry Pi 4 Model B, both running Raspbian
- Home Assistant Raspberry Pi: The first Raspberry Pi maintains Hass.io and the Mosquitto broker
- iGrill Monitor Raspberry Pi: The second Raspberry Pi maintains the iGrill monitoring and data publishing scripts
- This tutorial also works on a single Raspberry Pi. I use two because my grill is not within Bluetooth range of my primary Raspberry Pi.
Step-by-Step Instructions to Configure the Broker
- Install both Docker and Docker Compose following instructions in this documentation
- Install Hass.io as a docker container following instructions in the documentation
- In the Hass.io Add-On Store, install the Mosquitto broker
- Follow all of the documentation in the
Installation
andHow to use
sections of the documentation - In addition, navigate to the configuration section on the add-ons page and create a
USERNAME
andPASSWORD
in the logins array that matches theUSERNAME
andPASSWORD
you created for Home Assistant, as shown below:- While the documentation explicitly notes that this is not required, I found discussion suggesting it on Reddit and it resolved my issue.
- Follow all of the documentation in the
{
"logins": [
{
"username": "USERNAME",
"password": "PASSWORD"
}
],
"anonymous": false,
"customize": {
"active": false,
"folder": "mosquitto"
},
"certfile": "fullchain.pem",
"keyfile": "privkey.pem",
"require_certificate": false
}
- Test that the broker is listening for published data by following the Home Assistant MQTT testing documentation
- Skip the first two paragraphs, and use the
Developer Tools
method, which is built into Home Assistant
- Skip the first two paragraphs, and use the
iGrill Monitor
Step-by-Step Instructions to Install Configure bendiwka's- Install both Docker and Docker Compose following instructions in this documentation
- Create a directory with the docker and monitor configuration files in this repo by using the command
git clone https://github.com/WilliamAlexanderMorrison/igrill-hassio.git
- Navigate into the igrill-hassio directory
- Open the
device.yaml
configuration file- Replace
XX:XX:XX:XX:XX:XX
with the Bluetooth MAC address of your iGrill as needed- I was able to obtain this in Raspbian with the command
sudo hcitool lescan
- I was able to obtain this in Raspbian with the command
- Make any other configuration changes as desired
- Replace
- Open the
mqtt.yaml
configuration file- Replace
IPHOSTNAME
with the IP of your Raspberry Pi with the Broker - Replace
USERNAME
to match theUSERNAME
you created for Home Assistant/Mosquitto broker - Replace
PASSWORD
to match thePASSWORD
you created for Home Assistant/Mosquitto broker - Make any other configuration changes as desired
- Replace
- Follow both of the troubleshooting instructions provided by bendikwa
- Reboot your Raspberry Pi
- Build the docker with the command
sudo docker-compose build
- This will create a docker container with bendiwka's iGrill Monitor repo
- Turn on your iGrill, plug in a probe
- Also verify that no devices are already connected to it like your phone running the Weber app
- Start the docker container with the command
sudo docker-compose up -d
- Test that the monitor is pushing data to the Mosquitto broker by navigating to the MQTT Developer Tools within Home Assistant, and set the Listen to a Topic to
#
(all) channels and Start Listening- You should see a temperature update and a battery update about every 20 seconds
Recommendation for Sensor Configuration and Lovelace UI/UX
- Stog's post on the Home Assistant community boards contains much inspiration and pre-written configurations
- In the Home Assistant configuration, add MQTT Sensors
sensor:
- platform: mqtt
state_topic: "cooking/grill/probe1"
name: "Probe 1"
qos: 0
unit_of_measurement: "ºF"
- platform: mqtt
state_topic: "cooking/grill/probe2"
name: "Probe 2"
qos: 0
unit_of_measurement: "ºF"
- platform: mqtt
state_topic: "cooking/grill/probe3"
name: "Probe 3"
qos: 0
unit_of_measurement: "ºF"
- platform: mqtt
state_topic: "cooking/grill/probe4"
name: "Probe 4"
qos: 0
unit_of_measurement: "ºF"
- platform: mqtt
state_topic: "cooking/grill/battery"
name: "iGrill Battery"
qos: 0
unit_of_measurement: "%"
- Restart your Home Assistant to start picking up data from new sensors
- In the Lovelace configuration, add an entities card to your preferred view to see the sensors
views:
- badges: []
cards:
- type: entities
show_header_toggle: false
title: Weber iGrill
entities:
- entity: sensor.probe_1
icon: 'mdi:thermometer'
secondary_info: last-changed
- entity: sensor.probe_2
icon: 'mdi:thermometer'
secondary_info: last-changed
- entity: sensor.probe_3
icon: 'mdi:thermometer'
secondary_info: last-changed
- entity: sensor.probe_4
icon: 'mdi:thermometer'
secondary_info: last-changed
- entity: sensor.igrill_battery
icon: 'mdi:battery-bluetooth'
secondary_info: last-changed
icon: 'mdi:pig'
path: igrill
title: iGrill