FlameBoss Integration into HA (manual setup)

Hello all,

After much experimentation I have been able to successfully integrate my FlameBoss 400 into HA. Currently, I have just the basics but the foundation for integration is here.

Acquiring deviceID, userID and authentication token:

  • On your phone FlameBoss app, select controllers, security, show pin and note the device ID

  • To determine MQTT server, ensure your FlameBoss is on, open a browser and navigate to: https://myflameboss.com/api/v1/devices/(your_deviceID)/mqtt
    Response should be something similar to: {“server”:“s7.myflameboss.com”}

  • To acquire userID and authentication token, execute in an elevated CMD prompt or in a Linux Shell:
    curl -X POST https://myflameboss.com/api/v4/sessions -d session[login]=(email_address) -d session[password]=(password)

    Response should be: {“user_id”:(your_userID),“username”:"(your_username)",“auth_token”:"(your_authentication_token)"}

    Take note of the userID and authentication token

Setting up MQTT Broker bridging:

  • I am assuming you already are using MQTT Broker within HA AND you are using Samba in HA
  • Go to your \(your_HA)\share
  • Create a directory named mosquitto
  • Create a file named flameboss.conf
  • Add the following to your flameboss.conf file:
connection myflameboss.com
address (server from above step [s7.myflameboss.com]):1883
topic flameboss/(your_deviceID)/send/open in 1 homeassistant/sensor/
topic flameboss/(your_deviceID)/send/data in 1 homeassistant/sensor/
bridge_attempt_unsubscribe true
bridge_protocol_version mqttv31
cleansession true
remote_username T-(your_userID)
remote_password (your_authentication_token)
  • In HA goto Supervisor->Mosquitto Broker->Configuration and change your options to match for customize section:
logins: []
anonymous: false
customize:
  active: true
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false
  • Restart Mosquitto Broker

Add devices to HA in configuration.yaml sensor:

  • FlameBoss uses decidegrees celcius within their MQTT JSON. The below value_templates convert to Farenheit.
  - platform: mqtt
    state_topic: "homeassistant/sensor/flameboss/(your_deviceID)/send/open"
    name: "Pit Temp"
    unit_of_measurement: "°F"
    device_class: "temperature"
    force_update: true
    value_template: "{{(float(value_json.temps[0]) * (9/50) +32) | round(0)}}"
  - platform: mqtt
    state_topic: "homeassistant/sensor/flameboss/(your_deviceID)/send/open"
    name: "Probe Temp"
    unit_of_measurement: "°F"
    device_class: "temperature"
    force_update: true
    value_template: "{{(float(value_json.temps[1]) * (9/50) +32) | round(0)}}"
  - platform: mqtt
    state_topic: "homeassistant/sensor/flameboss/(your_deviceID)/send/open"
    name: "Pit Desired Temp"
    unit_of_measurement: "°F"
    device_class: "temperature"
    force_update: true
    value_template: "{{(float(value_json.set_temp) * (9/50) +32) | round(0)}}"  
    icon: mdi:thermometer 
  - platform: mqtt
    state_topic: "homeassistant/sensor/flameboss/(your_deviceID)/send/open"
    name: "Fan Speed"
    unit_of_measurement: "%"
    force_update: true
    value_template: "{{(float(value_json.blower)/100) | round(0)}}"

If you want the additional information you can connect your MQTT Explorer to HA and see both the homeassistant/sensor/flameboss/(your_deviceID)/send/open and also homeassistant/sensor/flameboss/(your_deviceID)/send/data which are the two topics your FlameBoss will communicate to the myFlameBoss MQTT cloud servers.

4 Likes

Wow, a provider with an mqtt server. Makes it easy doesn’t it!

I am having a bit of trouble getting the broker to connect and keep getting a Connection Refused: broker unavailable message. Image of log attached:

Here is my flameboss config file contents:
flameboss.config

connection myflameboss.com
address s7.myflameboss.com:1883
topic flameboss/IDNUMBER/send/open in 1 homeassistant/sensor/
topic flameboss/IDNUMBER/send/data in 1 homeassistant/sensor/
bridge_attempt_unsubscribe true
bridge_protocol_version mqttv31
cleansession true
remote_username T-USERNAME
remote_password PASSWORD

Any idea what I may be doing wrong?

What mqtt broker are you using. I can see it is mosquitto, but how did you install it?

The password needs to be the authentication token you received when doing the CURL. Not your flame boss password. Also the userID should be coming from that same CURL request but you append a “T-“ in front of the userid.

I also am assuming you named the file flameboss.conf correct?

Thanks for the responses and clarifications.

What mqtt broker are you using. I can see it is mosquitto, but how did you install it?

I installed the Mosquitto broker add on using the supervisor panel. I am running the HASS image on a RPi4.

The password needs to be the authentication token you received when doing the CURL. Not your flame boss password. Also the userID should be coming from that same CURL request but you append a “T-“ in front of the userid. I also am assuming you named the file flameboss.conf correct?

I am using the token received from the CURL, not my flameboss password. I thought based on your example the UserID needed to be appended with the T-. I have removed this and now my flameboss.conf file reads:

connection myflameboss.com
address s7.myflameboss.com:1883
topic flameboss/NUMBER/send/open in 1 homeassistant/sensor/
topic flameboss/NUMBER/send/data in 1 homeassistant/sensor/
bridge_attempt_unsubscribe true
bridge_protocol_version mqttv31
cleansession true
remote_username USER_ID
remote_password AUTH_TOKEN

Unfortunately the same problem persists and this does not change the error message in the Broker Log:

1 Like

It turns out my issues were two fold:

  • I had to correct my remote_username to the user_id instead of my email address:
remote_username T-USERID
  • Added a missing “sensor:” tag to the configuration.yaml:
#Flameboss Grill Blower
sensor:
 - platform: mqtt
   state_topic: "homeassistant/sensor/flameboss/160527/send/open"
   name: "Pit Temp"
   unit_of_measurement: "°F"
   device_class: "temperature"
   force_update: true
   value_template: "{{(float(value_json.temps[0]) * (9/50) +32) | round(0)}}"
 - platform: mqtt
   state_topic: "homeassistant/sensor/flameboss/160527/send/open"
   name: "Probe Temp"
   unit_of_measurement: "°F"
   device_class: "temperature"
   force_update: true
   value_template: "{{(float(value_json.temps[1]) * (9/50) +32) | round(0)}}"
 - platform: mqtt
   state_topic: "homeassistant/sensor/flameboss/160527/send/open"
   name: "Pit Desired Temp"
   unit_of_measurement: "°F"
   device_class: "temperature"
   force_update: true
   value_template: "{{(float(value_json.set_temp) * (9/50) +32) | round(0)}}"  
   icon: mdi:thermometer 
 - platform: mqtt
   state_topic: "homeassistant/sensor/flameboss/160527/send/open"
   name: "Fan Speed"
   unit_of_measurement: "%"
   force_update: true
   value_template: "{{(float(value_json.blower)/100) | round(0)}}"

Thanks again for all your hard work, patience, and troubleshooting Aaron. Great work and happy smoking!

1 Like

Awesome! Glad it is working for you!

Saw your ask. Assume you got it working?

I did. I guess the integration was slow to update the first time (about 1 hour). Worked perfectly! Thank You!

1 Like

Not that I don’t love what you have done, but the flame boss device itself listens on http & mqtt ports. I connected HA straight to the device over MQTT… no cloud, no auth, no problem. Still used the value templates ya have. Thought you may want to know.

Please write up and share how you did this. I was not able to connect to the device directly and still be able to use the cloud integration. It was one or the either.

I assume this is the piece you need as you did all the mapping work already:

# cat /etc/mosquitto/conf.d/flameboss.conf
connection flame-boss
address bbq.<redacted>.com:1883
topic flameboss/<deviceID>/send/open in 0 homeassistant/sensor/
cleansession true
bridge_insecure true
clientid hass
try_private false
start_type automatic

Note: It appears that the connection limit to the device is like 2 or 3. So it you are browsing via MQTT Explorer, have a mosquitto_sub running all while trying to get it to bridge - that may be your issue.

Hope it helps.

So what is bbq.(vanity redacter domain).com:1883? Is this the dns you gave your flameboss?

Hi! this looks great. Didn’t dive into it yet, since I’m still considering wich one to buy. Will it work with the flameboss 500 the same way you think?

Yes it should work. You will need to add additional sensors for the extra probes but all the data should for right into HA.

1 Like

thanks for your answer!

Hi there! This really is an amazing guide to implement this device with mqtt. I’m not too technical, but I got this to work, almost… I hope you can help me out a bit! I have two problems (which may be related, but i’m not sure). I have the following in my broker log:

1638915797: Socket error on client local.core-mosquitto.myflameboss.com, disconnecting.
1638915803: Connecting bridge myflameboss.com (s8.myflameboss.com:1883)

This seems that something is not right, but I don’t know what…?

Also: the sensors seem to update but not showing the right data. All I did was remove the value_template (because I want to use Celsius) and add my device ID.
All sensors show this:
{“name”:“temps”,“cook_id”:2404791,“sec”:1638915992,“temps”:[196,189,-32767,-32767],“set_temp”:1072,“blower”:0} °C

Would you know how to fix those sensors, and even add my third and fourth sensor (I have just a 4 probe thermometer, no fan). Is there more info to be extracted, like battery level, cook time etc? Or don’t they publish that on mqtt?

Thanks for your help and great work on this so far :smile:
Regards, Patrick

Sorry for the late reply.

For connectivity you will want to test your connection using the above steps to get your flameboss information using a tool like MQTT Explorer. If you can connect with that then HA should be able to connect if you setup the mosquitto.conf file correctly.

For the Celsius, Flameboss sends information as decidegrees. So to change to Celsius you just divide by 10.

As for the additional sensors - you can see you have (4) probes from the “temps”. The -32767 means you do not have any probes connected to those two ports. To create the 3rd and 4th sensor you would just need to add two additional “Probe Temp” platform templates.

Example in Celsius with (4) probes:

  • platform: mqtt
    state_topic: “homeassistant/sensor/flameboss/(your_deviceID)/send/open”
    name: “Pit Temp”
    unit_of_measurement: “°C”
    device_class: “temperature”
    force_update: true
    value_template: “{{(float(value_json.temps[0]) / 10) | round(0)}}”
  • platform: mqtt
    state_topic: “homeassistant/sensor/flameboss/(your_deviceID)/send/open”
    name: “Probe Temp”
    unit_of_measurement: “°C”
    device_class: “temperature”
    force_update: true
    value_template: “{{(float(value_json.temps[1]) / 10) | round(0)}}”
  • platform: mqtt
    state_topic: “homeassistant/sensor/flameboss/(your_deviceID)/send/open”
    name: “Probe Temp 2”
    unit_of_measurement: “°C”
    device_class: “temperature”
    force_update: true
    value_template: “{{(float(value_json.temps[2]) / 10 | round(0)}}”
  • platform: mqtt
    state_topic: “homeassistant/sensor/flameboss/(your_deviceID)/send/open”
    name: “Probe Temp 3”
    unit_of_measurement: “°C”
    device_class: “temperature”
    force_update: true
    value_template: “{{(float(value_json.temps[3]) / 10 | round(0)}}”
  • platform: mqtt
    state_topic: “homeassistant/sensor/flameboss/(your_deviceID)/send/open”
    name: “Fan Speed”
    unit_of_measurement: “%”
    force_update: true
    value_template: “{{(float(value_json.blower)/100) | round(0)}}”

Thanks a lot for your explaination!! I do get the right results now, that’s awesome! I thought the value_template was for converting to F only, but now I see it is to split up the probe information as well!

I do get the information now, but the flow of mqtt messages is not that constant as I would expect. How do you experience this? When I open the web-ui of flame boss (just by going to the internal ip in a web browser), I always get the same information as the device display shows. MQTT is sometimes not updated for 20+ minutes, see my screenshot

Do you know of a way to make the flow of information more constant?
Would the way @theOrakle suggest to connect make any difference in the messages that are received? I did not get that to work without knowing the redacted section…