A Bluetooth to MQTT bridge for the Tenergy Solis Digital Meat Thermometer.
This code should run on MacOS or Linux. Ideally you could run this on a Raspberry Pi to act as a small dedicated bridge device.
This code will also likely work with other similar Bluetooth probes that show up with the bluetooth device name "iBBQ", but may require a different pairing key. See autoPairKey
in constHelper.js
.
Cloud BBQ is known to work on the following devices:
Feel free to open a ticket or PR to add other tested devices to this list.
npm install
or yarn install
/config/default.json
or create a new file /config/development.json
with your MQTT information.
Tested with Adafruit IOnpm start
or yarn start
. You may need to use sudo
depending on your OS.Xcode is required for Noble's node-gyp compilation.
Noble library fails to install in most recent versions of node on Mac. Use NVM and try using Node 10.
See the Noble Linux setup.
Noble has been abandoned by it's maintainer and a fork has been taken up by the community at @abandonware/noble. Cloud BBQ has switched over to this library and it has been tested on NodeJS 10 and 8, at this point 10 is recommended. Newer versions of NodeJS are not currently compatible.
Cloud BBQ defaults to expecting a 6 probe device. If your device has less probes, adjust the number in
your default.json
:
"device": {
"probes":6
},
Set your favored temperature unit to either F
or C
in your default.json
:
"localization":{
"units":"F"
},
To setup to work with Adafruit IO, create a group, and then add 6 topics, then edit your default.json to look something like this:
{
"mqtt": {
"username" : "USERNAME",
"key":"KEY",
"protocol":"mqtts",
"url":"io.adafruit.com:8883",
"topics":[
"USERNAME/feeds/ibbq1",
"USERNAME/feeds/ibbq2",
"USERNAME/feeds/ibbq3",
"USERNAME/feeds/ibbq4",
"USERNAME/feeds/ibbq5",
"USERNAME/feeds/ibbq6"
],
"probeMessagePerPublish":12
}
}
Note that Adafruit IO will only accept 30 messages per minute, and each message can only have 1 data point, so you need to dial down probeMessagePerPublish
to keep under that limit. The Solis sends one update per second, so you can set this to 2 if you have only one probe connected, or leave it at 12 if you have all 6 probes connected.
Cloud BBQ should be generally compatible with other MQTT services, however some like AWS IoT may require an additional library to make authentication easier. Starting with Adafruit is recommended since it's both easy and has out of the box support for live updating graphs of temperature.
Cloud BBQ can be configured to send a notification to Google Home devices using the Google Assistant's Broadcast functionality. Unfortunately the setup is a bit convoluted, especially if you're not already comfortable with GCP.
/config
folder of Cloud BBQ.default.json
with the name of your downloaded file, and set enabled
to true
.node app.js --probe1 150 --probe3 175
(npm
doesn't seem to pass the arguments right)default.json
or risk commiting your info back to
your git repository, you can just create a file named /config/development.json
and override any
info you might need to. It will be .gitignored automatically.