[Release] IntelliFire driver

After being annoyed with how bad the IntelliFire mobile app is for controlling their WiFi fireplace modules, I went ahead and wrote a Hubitat IntelliFire driver based upon the intellifire4py module for Home Assistant.

https://github.com/corinuss/Hubitat_IntelliFire/

The driver can communicate with your fireplace directly over the local network or via IntelliFire's cloud (your choice). If using local control, once configured, there is no need for Hubitat to communicate through IntelliFire's servers like their mobile app does. However, local control has been known to cause the Wi-Fi module to crash after a few weeks, so cloud control is recommended.

Also included is a IntelliFire Fireplace Manager app to help interface with IntelliFire's cloud for initially setting up your fireplace and for managing cloud control credentials. Using your provided credentials, it will pull the required keys from IntelliFire's servers for you and configure your fireplace device for easy setup. After that, if using local control, you don't need to use this app anymore unless you need to reset the system.

Also provided in the ReadMe are instructions on how to connect this device through the Google Home Community app.

More details about everything are included in the ReadMe.

01/15/2024 - 2.0.0 Release - Cloud Control support

We now have the ability to control the fireplace via IntelliFire's Cloud servers. This has two major benefits: immediate status updates, and more stability. For these reasons, I highly recommend using Cloud Control if you are able to. Local control is still fully supported if Cloud is not right for you.

In addition, many redundant or not useful attributes and commands have been cleaned up to simplify the interface. If you use the standard Hubitat capability interfaces, this won't affect you. However, if you generate rules off custom attributes or commands, see the Release Notes for details on what's changed and what you should use instead.

Looking for help on new features:
If you have any of the following features and would like to see support for them, please respond to this thread or PM me. I should be able to get these features working, but I need your help to get information from your fireplace on how to interface with them.

  • Power Vent
  • Secondary Burner
  • Colored Lights
  • Ember Lights
6 Likes

Thanks for this! Just had my fireplace installed today and this connected effortlessly. Looks like everything I may need to start writing some
Rules for the fireplace. What, if any rules have you written already for this? Just looking for some ideas. Thanks again!

My main focus was trying to replace the not-great app and the horrible physical remote that came with my fireplace. The interface with Google Assistant (both via voice and via UI) is working much better than their app.

But I also have a rule that makes sure the fireplace is automatically turned off when I go the bed at night. (We've inadvertantly left it on at night a few times.). I also have it hooked up to my rule that notifies is when we leave the house if we forgot to turn it off.

Since you probably shouldn't leave the fireplace unattended, I deliberately don't use any rules that turn it on automatically (such as when the weather is cold).

I know another user has a rule that adjusts the fan understand certain circumstances (not sure what), possibly because the fireplace sometimes forgets the fan setting if you turn it off while the fireplace is warming up (before it starts the fan). That's actually something I'm trying to decide on a clean solution for...

Interesting. I know I want to automate the cold climate setting to turn the pilot light on and off based on outside temperature and agree on shutting it off when no one is home. Thank you for that reminder. I may look to setup automating it based on motion sensors in the room as well as temp outside and/or time of day. So much to think about but I appreciate the feedback.

@corinuss so I have the driver installed and I can control the lights and set fan speeds, etc. but when I push “On” I hear a beep but the flame never come on. Am I missing something here? Who do I actually get the fireplace flame to ignite and turn on? Logs aren’t showing a failure, just that the fireplace is off and that requests for status will be every 15 minutes. Any help would be appreciated.

That should work. The fact that it's beeping suggests the fireplace is receiving a command.

Is there anything in the 'errors' state variable? You might need to manually Refresh the fireplace one more time.

Try enabling debug logging (option on the driver screen). Then try pressing the On button again. Could you send me a copy of the output? (Both the output from the command being sent and the automatic refresh that follows.)

So what happened to me yesterday was the Intellifire app on my phone gave me an error that said the appliance was unavailable and wouldn’t respond to commands. I had to pull the front face off and press the ECM reset button. Once it reset I was able to control again with the app. I reran the fireplace manager app to rediscover the fireplace. That’s when I was able to control the lights and other stuff.

Here is a debug log since I turned on debugging and tried to turn the fireplace on.



Please let me know if I’m missing anything. Thank you.

I suspected something like that, where the fireplace got in a soft-lock. That state should also appear in the "errors" state here if you look at your device when it's not responding. (FWIW, my fireplace also encountered an ECM error last night, but I suspect it's coincidence that we both hit it.)
image

I have a theory that some of the ECM errors might be caused by a race condition if a refresh happens while the fireplace is executing another command. If that's the case, I think that might be solved by setting "singleThreaded" in the definition near the top of the file...

definition (name: "IntelliFire Fireplace", namespace: "IntelliFire", author: "corinuss", singleThreaded: true)

I'm currently testing this a bit to make sure it doesn't have any other side effects, but you want to give it a try too, you can try modifying your local source and add that bit of text. I'm going to include that in my next update once I've soaked it a bit.

I’ll add the code and report back.

Hers what my device looks like.

Also, what does what I have circled do?

It is just on() and off() via one interface. That interface is required by Google Home Community for the On/Off trait.

Actually, it looks like GHC does support separate commands. I think I added it back when I was planning to have only Google behavior restore the thermostat when powering on, rather than building that option into on() itself.

Since setOnOff is redundant, I'm going to remove that on my next update.

1 Like

I made the requested change to the driver code and today it’s turning on and off as intended. Thank you.

I've pushed out a new 1.1.0 update for the driver.

New Features:

  • If your fireplace has a Light, it can now be controlled via a child virtual device. This device can be created by the App, or by clicking a button on the main Fireplace device. You can still use the old setLightLevel() function in on the main fireplace app to control the light without the virtual device, if you want.
  • New option to have the device try to ensure that the fan is running after the fireplace is turned on. (It is possible for the Fireplace to forget its fan setting if you turn the fireplace off during warm up, or if you reset the ECM.)

Bug fixes:

  • Fireplace device is now singleThreaded to hopefully reduce the chance that the ECM gets in a bad state.

Other:

  • Removed redundant setOnOff() function. The reason for this existing was fixed before launch.
1 Like

Thanks!

Only other request would be to add option in the driver for the light like you did the fan where turn on light at last level when turning on fireplace?

Also, what is raw temp?

If you use the Virtual Light device, that's exactly what happens if you press the on() button. It will restore the light level to the last non-zero value it saw. (You can also call lightOn() on the main Fireplace device for this behavior too.)

'temperatureRaw' is the unmodified 'temperature' variable that the fireplace reports, which is room temperature in Celsius. It has to be renamed 'raw' because we need to use 'temperature' for the TemperatureMeasurement capability, which should be reported in the hub's preferred units (C or F).

1 Like

And I’m back to not working again. :frowning: happy Thanksgiving by the way (if you celebrate the holiday).

Fireplace had to be reset at the switch yesterday (calling the wifi company next week to discuss why it keeps dropping so often). But since the switch reset yesterday, rerun the Intellifire app in Hubitat. Won’t turn the burner on. Lights come on and off, here the beep, but no dice on flame.

Thanks for the Thanksgiving wishes. Yeah, I was on break a bit longer. :slight_smile:

Next time it stop responding, can you grab a copy of the logs before resetting? If it's a WiFi issue, you'll see errors in the log. However, I bet the Status polling will still be working but your controller is reporting an error. Try to share a full copy of your Status (the line with all the information in it). Can PM it to me if you want.

As for now, the log you posted looks like you're turning off the fireplace, but can I see a log of you turning it on, and/or the full Status line when it's on?