Gas Fireplace Device Handler for MIMOLite

I’ve installed a MIMOLite module for controlling my Gas Fireplace in SmartThings (since the Remotec ZFM-80 doesn’t seem to be available anymore). The default Device Handler it uses when I add it to my system is the “Z-Wave Switch Generic” - which works perfectly for turning the fireplace on/off (it closes the relay’s circuit, which turns on the fireplace).

What I haven’t been able to make work is the analog input on the MIMOLite with the Fireplace’s original switch, so that the fireplace’s switch can still be used as a backup. I have the switch wired to the MIMOLite and it correctly turns the MIMOLite’s LED on/off (so I know I have the switch wired correctly to the MIMOLite) - but I haven’t been able to figure out how to set the MIMOLite to toggle on/off based on the analog input.

I believe based on the User Manual ( this would only require changing Parameter 3’s Configuration, but I have not been able to do this successfully and make the analog input change anything. I did contact Fortrezz and they weren’t very helpful - they just told me I need to write my own device handler or try changing parameter 3 with a Homeseer programmer. I would think if they wrote a basic device handler for a gas fireplace they would sell a lot of these to people with fireplaces! Unfortunately it looks like my programming skills are not advanced enough for getting this to work.

Has anyone done this before? I did try using the Fortrezz MIMOLite Device handler ( - but this is configured for a Garage Door Opener setup and I have been unsuccessful in modifying it for my needs.

I’ve used this device for a couple different applications. If you use FortrezZ’s DH, set the delay to 0 in Preferences (turns off the relay and it becomes an on/off switch (the jumper should also be set correctly). You need to also change the Configure section to the code I’ve provided below.

When you make these changes, make sure to tap on the Configure tile so these take effect.

Also, here’s some detail from FortrezZ. The MIMOlite can be configured to automatically turn the relay on when the input is triggered or a Z-Wave command can also turn the relay on. The Configuration Command Class, Parameter 3, is used to set the input-to-relay mapping (See Technical Appendix). When input-to-relay mapping is enabled, Z-WaveTM commands to set the relay are overridden. The default for the relay is no input-to-relay mapping. Momentary vs Latched relay operation is selected by jumper P5 on the circuit board. The Momentary/Latched jumper is read only at power on when the MIMOlite is not in a ZWave network. When the jumper is off, momentary (default 500ms) operation is selected. If desired, once in-network, a Zwave configuration command (Parameter 11) can be used to override the jumper setting. The momentary configuration can be set from 100ms to 25.5ms (approximate) in increments of 100ms via the ZWave command.

def configure() {
	def x = (RelaySwitchDelay*10).toInteger()
        log.debug "Configuring.... " //setting up to monitor power alarm and actuator duration (parameter 11)
        zwave.associationV1.associationSet(groupingIdentifier:2, nodeId:[zwaveHubNodeId]).format(), // periodically send a multilevel sensor report of the ADC analog voltage to the input
	zwave.associationV1.associationSet(groupingIdentifier:3, nodeId:[zwaveHubNodeId]).format(), // If a power dropout occurs, the MIMOlite will send an Alarm Command Class report 
        zwave.associationV1.associationSet(groupingIdentifier:4, nodeId:[zwaveHubNodeId]).format(), // when the input is digitally triggered or untriggered, send a binary sensor report
        zwave.configurationV1.configurationSet(parameterNumber: 3, configurationValue: [1], size: 1).format(), // Input-to-relay Mapping.  Configured to automatically turn the relay on when the input is triggered. Default is 0 (disabled)
        zwave.configurationV1.configurationSet(parameterNumber: 11, configurationValue: [x], size: 1).format() // configurationValue for parameterNumber means how many 100ms do you want the relay to wait to cycle.  0 = no clycle and acts like a switch

Thank you! I did give this a try and unfortunately the relay still isn’t being toggled.

BUT I do notice that the “Open” and “Closed” icon does toggle in the ST app now when I toggle the switch.

Which “preferences” menu do I set the delay in? The configure button doesn’t seem to do anything in SmartThings for this device (when I select the item in my smartthings app). I do see code in the device handler says the default value is set to 0 - but I still don’t see any difference.

Also - do I need to move the jumper? It’s currently on P5 as it came - I believe I would want latched configuration for this setup.

I appreciate the help!

No worries!

When you look at the device in the phone app, look at the upper right hand corner and you’ll see a gear. Tap on that and you can set the value.

You can also see and set that value via the IDE. Go to your device and you’ll see something like this:

You won’t see any change in the app because all that does is set up (configure) the device’s parameters on how it should behave based on the tech specs.

You want the jumper on, so if it came that way you’re good and it should be in a latched configuration. Double check the device’s parameters and make sure it’s set to zero. You may need to exclude and reinclude the device.

If you want, try the DH I tweaked from FortrezZ that includes parameter 3:

Making progress! Sort of.

I set up your device handler but now the relay is only toggling with the analog switch (the app won’t toggle it).

Also - is there a way to reverse the polarity of the on/off on the analog switch? When I flip it off it turns on, and when I flip it on it turns off.

I did remove the device and re-add it to make sure that wasn’t the issue.

Well cr@p… That’s not really what FortrezZ meant then…lol You can tweak the code to change parameter 3 back to 0 and then after you save/publish, tap on Configure again. I’d ask FortrezZ for a little more guidance at this point because you changed what they told you to do. After you change it back to 0, what happens?

Sure is. This can be done by changing action: “off” to action: “on” in line 42, and action: “on” to action: “off” in line 43. I’m not sure why FortrezZ has it flipped, but changing those lines would make more sense. I made that change in my code I posted above as well.

Exact same issue as daviper.

I made limited progress, but ultimately I gave up on this method for now… when I set parameter 3, I couldn’t get the z-wave commands to override sig. 1.

I ended up wiring the MimoLite in line with the wall switch instead:


  • Simple, just set MimoLite as a generic switch (SmartThings default)

  • Works great to control the fireplace from SmartThings app or from Google Home

  • Existing wall switch can disable all fireplace automation (think vacation or summer)


  • Existing wall switch must be on the “On” position for automation to work

  • No more wall switch control to turn on the fireplace (you must use the app, or Google Home for voice control). Without voice control this would have been a deal-breaker for me, but with voice control it seems to work pretty well.

I’m in the process of getting this programmed for my setup and found a few things.

Page 6 of the MiMOLite Tech Appendix states that when the input (SIG1) to relay mapping is enabled, Z-Wave commands to set the relay are overridden. So the behavior you were seeing is expected.

I believe the route to go is to leave Parameter 3 set to 0 and to read the input trigger via Z-Wave to control the relay. This can be done either via a SmartApp or written into the Device Handler itself.

Lastly, the reason for the polarity swap is the SIG1 input acts differently than the normal fireplace switch. When the input to SIG1 is open or floating, the internal pull-up will trigger and close the relay. You do not want to swap the lines of code on 42 and 43, as these refer to the action of tapping the tile in the app, When the tile is ON, you want the tap action to turn it off and vice versa. Parameter 8, Bit 0 may be what you need to swap it.

I realize this is about a year old, but it’s exactly what I am working on now. My situation seems quite similar to the one described above. I am attempting to use a MIMOLite to turn my fireplace on/off. I have left the jumper on P5. I joined the device to smartthings and can open and close the relay/output properly. To finish, the last thing I was trying to do was connect a MOMENTARY switch to the SIG input block, and I wanted every push of that button to toggle the relay output between closed and open (and obviously report the status back to smartthings). The goal was to not have the “out of sync” issues others have had by using rocker switches. The remotec ZFM-80 was not readily available and the MIMOLite seemed like it would be fine to do… but now that I have gotten into it, I’ve realized it may not be so easy (perhaps even impossible??).

After getting into the MIMOLite documentation, it’s clear this is not for a casual user… But it’s unfortunately all I have right now. Anyone know how to make this work? (I’m posting this on two separate threads that have provided lots of useful information thus far). Thanks in advance… crossing my fingers!


1 Like

hey ryantollefson i was looking through this thread is there any reason why the switch and memo can’t be parallel n/o contacts? i have a memo coming tomorrow for fireplace thats how i was looking at doing it. didn’t know if i was missing something then either or can be used thanks

That would work, but you then have multiple ‘on’ possibilities. You could be ON from SmartThings/MIMO, ON from the switch, or ON from both; and only OFF if everything was off. E.g. if you turn it on manually from the switch, you can’t use SmartThings to turn it off. Likewise, if you turn it on from SmartThings, you can’t turn it off from the switch. So yes, it would work, but has potential for more confusion.

My wife wasn’t completely sold on the idea of not having an override for the fireplace, so we only use the manual switch in my example as a backup… that being said, it’s now been over a year, and we haven’t used the manual switch once since we did this (usually use Google Home to control it).

Yup totally started to understand that it thanks for the reply so u just disconnected the switch pretty much and just use google and mini