Connecting my gas fireplace

If you’re so inclined, @makejason, here’s a DeviceType that I created… well, really just copies and did a minor modification:

metadata {
	// simulator metadata
	simulator {
		status "on":  "command: 2003, payload: FF"
		status "off": "command: 2003, payload: 00"

		// reply messages
		reply "2001FF,delay 100,2502": "command: 2503, payload: FF"
		reply "200100,delay 100,2502": "command: 2503, payload: 00"
	}

	// tile definitions
	tiles {
		standardTile("switch", "device.switch", width: 2, height: 2, canChangeIcon: true) {
			state "on", label: '${name}', action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#E42217"
			state "off", label: '${name}', action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff"
		}
		standardTile("indicator", "device.indicatorStatus", inactiveLabel: false, decoration: "flat") {
			state "when off", action:"indicator.indicatorWhenOn", icon:"st.indicators.lit-when-off"
			state "when on", action:"indicator.indicatorNever", icon:"st.indicators.lit-when-on"
			state "never", action:"indicator.indicatorWhenOff", icon:"st.indicators.never-lit"
		}
		standardTile("refresh", "device.switch", inactiveLabel: false, decoration: "flat") {
			state "default", label:'', action:"refresh.refresh", icon:"st.secondary.refresh"
		}

		main "switch"
		details(["switch","refresh","indicator"])
	}
}

def parse(String description) {
	def result = null
	def cmd = zwave.parse(description, [0x20: 1, 0x70: 1])
	if (cmd) {
		result = createEvent(zwaveEvent(cmd))
	}
	log.debug "Parse returned ${result?.descriptionText}"
	return result
}

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicReport cmd) {
	[name: "switch", value: cmd.value ? "on" : "off", type: "physical"]
}

def zwaveEvent(physicalgraph.zwave.commands.switchbinaryv1.SwitchBinaryReport cmd) {
	[name: "switch", value: cmd.value ? "on" : "off", type: "digital"]
}

def zwaveEvent(physicalgraph.zwave.commands.configurationv1.ConfigurationReport cmd) {
	def value = "when off"
	if (cmd.configurationValue[0] == 1) {value = "when on"}
	if (cmd.configurationValue[0] == 2) {value = "never"}
	[name: "indicatorStatus", value: value, display: false]
}

def zwaveEvent(physicalgraph.zwave.Command cmd) {
	// Handles all Z-Wave commands we aren't interested in
	[:]
}

def on() {
	delayBetween([
		zwave.basicV1.basicSet(value: 0xFF).format(),
		zwave.switchBinaryV1.switchBinaryGet().format()
	])
}

def off() {
	delayBetween([
		zwave.basicV1.basicSet(value: 0x00).format(),
		zwave.switchBinaryV1.switchBinaryGet().format()
	])
}

def poll() {
	zwave.switchBinaryV1.switchBinaryGet().format()
}

def refresh() {
	zwave.switchBinaryV1.switchBinaryGet().format()
}

def indicatorWhenOn() {
	sendEvent(name: "indicatorStatus", value: "when on", display: false)
	zwave.configurationV1.configurationSet(configurationValue: [1], parameterNumber: 3, size: 1).format()
}

def indicatorWhenOff() {
	sendEvent(name: "indicatorStatus", value: "when off", display: false)
	zwave.configurationV1.configurationSet(configurationValue: [0], parameterNumber: 3, size: 1).format()
}

def indicatorNever() {
	sendEvent(name: "indicatorStatus", value: "never", display: false)
	zwave.configurationV1.configurationSet(configurationValue: [2], parameterNumber: 3, size: 1).format()
}

def invertSwitch(invert=true) {
	if (invert) {
		zwave.configurationV1.configurationSet(configurationValue: [1], parameterNumber: 4, size: 1).format()
	}
	else {
		zwave.configurationV1.configurationSet(configurationValue: [0], parameterNumber: 4, size: 1).format()
	}
}

In the IDE go to My Device Types, create a new device type, give it a name and check the Switch and Polling options… then click the create button. In the code section just paste what I’ve got above. The only change between this device and a standard z-wave switch is the color. This one is white when off, but RED when on. Just seemed more fitting for a fireplace.

Change the icon too, then you get this:

fireplace

Chris, Tried to create a New Device but I’m not seeing where to post the text you list. I realize this post is old, but will this still work and can you provide some insight? Thanks in advance. -Joel

@servatius,

Don’t use the text I have above… that’s an old and I think ST have updated the device type info since there.

In order to create a new device type you need to essentially do the same thing you’d do with creating a SmartApp. If you’ve done that, the device type part is pretty easy.

In the IDE go to device types and click “new SmartDevice” on the right. You need to specify which attributes it has. Check these boxes:

Actuator
Sensor
Refresh
Switch
Indicator
Polling

Then click CREATE at the bottom of the page. After you this you’re presented with the code area, just like a smartapp. Again on the right, look for “Device Type Examples” and click that. Scroll through the list and select Z-wave Switch. Then click the “Overwrite” button. This will dump the ST’s device type code in automatically for you.

Then, to change the color, simply change the background color in line 27 from “#79b821” to “#ff0000”.

Now, here’s the one problem. If SmartThings changes the code for this device type, which I think they did previously at one point, your new device type might stop working properly. If this happens you need to edit your device back to the default Z-wave Switch. Delete your existing device type, then re-create copying the new Device Type code in place, change the background color again, save it, then edit your device back to your custom device type.

This is why I advocated in a different thread somewhere the ability to bit a devices “on” color just like we can pick a devices icon. This would make it much easier for users and prevent issues with device type code changes.

Chris, thanks for the reply. I fumbled around and basically figured it out. I too would love a simple “Color Picker” for the icons. I know the ST team has come a long ways in a short time, so I’ll hold out hope for future updates. :slight_smile:

While it was cool to have the icon color updated, the color change didn’t carry over to the Lights & Switches “Shortcuts” panel (or the Right Now or Recently panel for that matter). I’m pretty sure that’s above my pay grade to figure out that association, or ST’s may not even allow that association.

After re-reading your post, it seems like we solved our fireplace dilemmas the same. I too have a physical (low-voltage rocker) switch on the wall that turns the fireplace on/off, or I can turn it on/off with the relay (Linear FS20Z-1) and ST’s. Neither will override the other. That is for my straightforward fireplace (no aux lights or fan controls) in my master bedroom. I haven’t been able to solve the fireplace in my family room. It’s a HeatnGlo 6000GLX-IPI that has a remote (low voltage) switch/panel mounted on the wall. From this panel you can control the flame height, aux. lights and fan. All of this is sent from the wall panel via low voltage wiring to a module in the base of the fireplace. I’m trying to figure out where in this set up I can install a relay that would just complete the circuit to turn the fireplace on. We hardly ever change the flame height, lights, or fan setting. Do you, or anyone else who stumbles across this thread, have a suggestion?

Hi All - Long time reader, first time poster. I am just getting into the SmartThings spirit and almost ready to start making purchases.

One immediate question I have is that I am installing a new fireplace in my house this week. I am also interested in having it controlled via ST. Like some other folks, I don’t want it to be ONLY controllable via ST.

For a newbie who doesn’t have a setup yet, what should I consider during the fireplace installation?

The fireplace I’m getting is a Mendota ML47. You can see the manual here:
http://mendotahearth.com/pdfs/manuals/ML-47-PF2%20-IM-0814%20INSTALLATION%20MANUAL.pdf

My main concern is getting ahead of the install and making sure anything that needs to be wired now is done before the dry wall is all patched up, etc.

Can someone point me in the right direction? Again - I’m a newbie - thanks for bearing with me! Looking forward to getting more into the ST community.

Adam

If you only care about on/off control, you can place a remotec dry contact switch inline with the manual rocker switch.

@codytruscott Thanks for the quick reply! I assume this would be a custom wiring job? Pardon the newbie questions - how do I determine exactly how to wire this up so I can do it and/or give it to my contractor to implement?

Also, any idea if this kind of thing generally breaks the warranty of a fireplace?

Thanks!
Adam

I took a skim thru all 70 pages. Looks like that fireplace is only controllable via the remote? If so, you are going to have an impossible adventure trying to connect it seamlessly.

Did the retailer or installer mention additional manual wall switches?

The ‘master on/off’ switch appears to only turn the entire unit on or off.

I see several places in the diagram after the proprietary radio receiver control unit where dry contacts may offer some control, but it might not be something an insured installer would be willing to do.

Do you have a tech guide for the control unit itself?

Found it.

http://www.montigo.com/files/manuals/remote_RX88%20%20ProFlame,%209955093_2009_gtmf_cat.pdf

For a much easier time, get a fireplace that has inputs for a standard thermostat control.

The control you presented is not going to work without thousands in custom work and tolerance for questionable safety standards.

@codytruscott

Yeah, that looks like the same remote. I guess that’s the right system, but I’ve noticed that a ton of these fireplaces seem to use the same looking remote. Not sure if the guts behind them are the same.

Either way, unfortunately this is the fireplace I’m stuck with. It took months to find one that will fit properly in my space and it’s already purchased and on the way. The fireplace itself is awesome, so that part is good.

The fireplace installer specifically said he won’t wire it to an outlet. But my contractor, who is separate, will do anything as long as it doesn’t blow up the place - and he’s good with wiring.

What makes you say it will take a lot of effort to make this work? Curious what you saw that makes you say that.

Thanks again!
Adam

Another option which solves the “sync” issue would be to use a MimoLite. Replace the existing toggle with a pushbutton, set the Mimo to momentary (latched), now you can control via ST or the switch.

Replying to my own message - after talking to the installers, the fireplace has no on/off switch at all. There is a kill switch, but not a real on/off switch. Control is done 100% from the remote, which appears to be RF.

So I guess the question is - is there a way to mimic the on/off RF command from the remote via a ST device in order to use the system that way?

This appears to be the remote control manual, but not that my system ONLY works with the remote, not the other box they reference here:

Thanks!
Adam

Control boxes are swappable. I’d urge you to consider a different control mechanism. The chances of the physical fireplace outlasting the propritary rf remote is high.

What control box are you referring to? There’s no control box I’m aware of for this fireplace. The remote is the only thing that controls the fireplace.

Think of it this way instead: the remote instructs the control box to preform programed actions such as open a valve (increase the flame), turn on a light, turn on the blower, turn off the flame, etc.

The fireplace itself consists of stepper valves to control gas output (flame height), a piezoelectric igniter, lamps, fans, etc.

These valves, lights, etc are standard electro-mechanical devices that any number of ‘controllers’ can operate.

If you want to interface any home automation system with this fireplace, you need to get rid of the stock ‘control box’ and replace it with something that can interface in some way to the outside world.

One solution would be to build a custom Arduino based controller to operate the various electro-mechanical parts and speak with SmartThings. Parts? $100? Custom programing from someone willing to risk liability: unlikely + a grand.

As I previously said, you need a different control box that works with your gas stepper valve and also (for simplicity) controllable from a standard thermostat. Alternatively, a control box that can take 0-12v input to control flame height would be doable with a Fibaro RGBW zwave module.

I don’t disagree at all. Yours is definitely the most rock solid and long term solution.

However, based on those costs and effort - and considering that turning the unit on/off is what I’m most interested in right now - wouldn’t imitating that same RF signal the remote puts out be the path of least resistance here?

Adam

Looks like your fireplace uses the Sitgroup 584 DFC controller. This particular controller has a ‘diagnostic port’. I can’t track down information on the diagnostic port — perhaps your retailer or installer has access to a guide. Chances are it’s a serial port and it might just allow you to control things. But. Again. This isn’t simple wiring, it’s embedded hardware and programing.

http://www.sitgroup.it/en/ricerca-per-prodotto-funzione-4/electronic-controls/2100-full-control-for-appliances/900-584-dfc-serie-305-en

There is also a wall mounted receiver that has basic flame up/down and disables the remote for use with this product family. This might be your best bet for basic control. Talk to your retailer or manfg about the possibility of having this manual override box installed.

See figure 6c
http://www.montigo.com/files/manuals/remote_RX88%20%20ProFlame,%209955093_2009_gtmf_cat.pdf

In the future, don’t buy items with custom remote controls if you want integration. The remote and receiver has a ‘sync’ feature which indicates to me (hopefully) that they are using some sort of encryption. In any case, you’d need to invent a custom solution at the cost of thousands to translate the radio signals.

This [code][1] works perfectly for my fireplace with the Mimolite. Wiring fireplace switches inline with the Mimolite works but then you can’t turn your fireplace off if the switch is left on. With this code my unpowered wall switch works in conjunction with mimolite zwave switching. If the switch gets out on sync, (example fireplace on/switch off), I simple turn the switch on (this does nothing as the fireplace is already on) and then off again and the fireplace turns off. There is other benefits to using this code as opposed to wiring the switch inline. If you wire the your switch inline and turn the fireplace on with the switch, your fireplace tile in the Smartthings app won’t be updated to show that the fireplace is on. Using this method the fireplace tile in the app stays true to the current state of the fireplace no matter how you turn your fireplace on or off. Thanks for this [@cesaldar][2]!

[Working MIMOlite Device Type with Sensor][3]


[1]: Working MIMOlite Device Type with Sensor
[2]: http://community.smartthings.com/users/cesaldar/activity
[3]: Working MIMOlite Device Type with Sensor

Hans-
I’ve set my MIMOlite up, as you’ve suggested, and I can successfully turn on and off the fireplace from smarthings – cool! Separately,I can also see my physical switch opening and closing in the device. However, the opening and closing of the physical switch doesn’t trigger the relay that turns on the fireplace. Did you use an app for that, or did I do something wrong in setting up the MIMO device type? I used the device type dated 2014-03-6 by cesaldar that you linked to.