Lowes IRIS Transition

I had the same issue with 2 v1 contact sensors. "One battery was low and a new battery helped. A new battery did not help the other. I noticed that neither sensors light would work when pressing button to reset I thought it was just broken and ordered a different sensor to replace. "

Same thing happened to me with my gate v1 sensors when I tried to pair them. I just used new ones since I grabbed a few off of ebay.

1 Like

I don't know if this will help you and you may have even tried it but if you put the app in pairing mode before putting the device in pairing mode that has worked for me with some stubborn devices. You might also want to try resetting the device even if you already did it before. I've had devices that were stubborn but I kept at it and eventually I got them all paired. The worst was a Utilitech siren. I have two. The older one paired almost instantly. The newer one probably took 10 times before it finally paired. I had the same sort of problem with a IKEA plug but persistance and trying different things eventually paid off.

1 Like

I've had similar issues with some V1 devices. What worked for me was installing new batteries. It appears that some batteries drained unusually fast after taking the hub down. I hope this helps.

Status of my transition from Lowes Iris to Hubitat (HE):
Received my HE last week and converted my Iris v1 and 3rd party devices over. Thus far I'm very impressed with the APPs and associated functions. I had Iris for several years and wasn't really hopeful that all would work but was pleasantly surprised. The local HE control was super fast in response but the Cloud portal access lags somewhat. The Rules and other APPs are even more versatile that Iris had, bu they do require some time to get familiar with the configuration differences.

I have the following devices working now: three Iris v1 motion sensors, several Iris v1 contact sensors, two First Alert Smoke detectors (ZCOMBO), Iris v1 outets, three GE Z-Wave Plus In-Wall Smart Dimmers, Radio CT101 Thermostat, Honeywell thermostat, and Iris Water Sensor.

The Iris v1 Keypad (alertme) is associated to the Hubitat but there isn't a device driver that provides any functionality. Does anyone know if Hubitat is committing resources to develop such a driver? This could provide both a security keypad and siren if support is added.

Also my newer Iris WiFi Smart Outlets (IRIS-WSP1PA-LW) aren't supported. They were made to use the Iris App to configure via WiFi and then communicate to the hub via Zigbee. Does anyone know if there are plans to interface HE to these units?

Here are a few lessens learned from the conversion. (1) I had problems pairing some Z-wave and Zigbee devices until I moved them within a few feet of the Hub. After pairing, they worked fine to move them to their original locations. For example, I had to relocate my Hub near the CT101 Thermostat (since thermostat was hardwired in) to get it to pair. (2) Plan to perform a 'reset' on devices that don't pair initially. Many of the Iris branded equipment took pressing a reset button 8 times and then retrying the pair. The CT101 required holding the 'mate' icon for 25 seconds. The GE switches had to be pressed 'on' 8 times. The First Alert Smoke detectors were the most problematic. I found that rebooting the HE and then retrying a reset of the devices did the trick. (3) I'm playing with using a ChromeCast to generate a 'siren' for audible alerts. Haven't gotten it to work yet though.

Thanks to the Hubitat team for making the conversion affordable and relatively easy for us former Iris users!

4 Likes

I now have everything that worked in IRIS working in Hubitat except my Nest thermostat. There appears to be a solution using IFTTT but I have not tried it yet mainly because I'm trying to keep everything local and I believe IFTTT requires the internet but I could be wrong. My Arlo cameras never worked with IRIS but again IFTTT appears to offer a solution to make them work with Hubitat. To the best of my knowledge everything I've set up has been working continuously with no down time. I read horror stories with other systems that kept dropping devices. But Hubitat just works which is what it should do.

My primary concern was security and now that I have that working my wife is happy and therefore we are both quite happy with Hubitat. I view the home automation part to be a convenience rather than a necessity but it is fun to play with as time permits and I have plans for some additional automation. I am quite happy with my decision to go with Hubitat.

1 Like

Try this NST Manager ported to Hubitat

Did you replace these afterall. I'm looking to replace all my 'Dumb' smoke detectors with First Alert ZSmoke or ZCombos. I'm curious as to why you're looking to replace them or what you mightve replaced them with? Thanks in advance!

I dont know what good the IRIS Hubs are anymore but if anyone needs one for science then I'll gladly mail you a brand new Gen 3. DM me if interested.

I have been a longtime user of the Petsafe door (you're right, it's Zigbee) on SmartThings. Like a lot of people here, I migrating away from ST and have come to Hubitat. Much better. Hubitat, however, does not appear to have a native device driver for the PetSafe door, nor has anyone in the community done the integration work.

This morning, I pulled up the ST device driver written by ST user @Sticks, followed the directions here regarding porting ST drivers to HE. And, at least for the moment (10 minutes in), it works.

I just sent @Sticks a message on the ST board asking him for permission to use his intellectual property. I get a little nervous about just using other people's stuff without asking. Leftover from getting beat up in the playground when I was five I guess. :stuck_out_tongue_winking_eye:

Anyone else have any luck on this?

1 Like

I have been using it just fine for about a year -- until suddenly a couple days ago something -- possibly an update, caused it to stop working. I am going to reinstall the device and try that but using the Petsafe Dog Door , has worked for me just fine. Alexa also picks it up and you can use voice commands.

1 Like

Have you noticed any issues with it in the past few days?

1 Like

Nope - all good here. I can say it’s a bit finicky. Every few months it drops off the zigbee mesh. It’s simple and reliable to reconnect.

1 Like

mluck -- do you know how to do a factory reset on the PetSafe door? Habitat finds the device but it is stuck in "initialize" and never allows me to save the device. I had this installed previously and removed the drivers to reinstall but it doesn't seem to want to complete the install of the device.

2 Likes

Ok— I got it back on the mesh. I did have to do a factory reset.. to do this, i discovered that you hold the Mode/Reset button down as you insert the last battery. The Rad and Orange LEDs will flash 3 times. Once that is done, the discovery picked it up instantly. Prior, discovery would find it, but not initialize and allow me to save it. All is back online and working well again. I did see a hack for this door, to be able to use a 5v adapter to power the device instead of using batteries. It’s found easily by searching for the pet safe dog door and ac adapter. I did see where there is a battery level driver for ST but it doesn’t work with HB and it’s a bummer that those of use using this can’t see our battery levels on this current driver. Surely, we are not the only 2 people using this door. I am able to control it from Alexa and also have it send TTS voice notifications and set rules to open and close based on alerts from my Blue Iris Camera Platform and my IP outdoor cameras. It’s amazing. The materials used as the “hinge” on this door becomes brittle after a couple years. Also, the versions being sold now do not have the same radios that were in the Lowe’s version— therefore, I’ve kept the innards from the original door and have had to purchase new doors just to get new a new hinge.. now the one I have is already starting to split on the left side where the “teeth” go— to connect to the piece that raises and lowers the door. They need to come up with a better hinge and or put the zigbee radios back into the new releases. I can see this product being much more popular if people knew it’s potential and how it can be used with other systems. When I show people how I use it for our 4 Great Pyrenees.. they are awestruck.

1 Like

@tebiv1, I found a copy of the official PetSafe user manual, which feels like it belongs among the relics of King Tut's treasures or something. This product has been seriously mothballed by PetSafe. They don't even know what to do when I've called them for support. If you PM me your email address, I'm happy to send you the pdf I have of their user manual. It does a pretty good job explaining all the button pushes and LED flashes.

Also - FWIW I'm using an ST device handler from ST user @sticks18. With his permission, I ported it to Hubitat. The battery monitoring capability works pretty well -- at least as well as any battery monitoring works. I've found that once it hits about 70%, it means that aberrant device behavior is right around the corner. So I set my battery notification at 70%, and it's worked so far just fine.

I never thought of converting the battery to AC using a 5v adapter. That's a brilliant idea. Feel like I go through four "D" batteries every couple months. Think I'll give that a try when I have time.

Regarding your automation, curious to hear more about your logic with BI as I'm a BI user as well. The automation we've set up is to lock the pet door when any of the following become true: (1) it's dark; (2) either of the back gates are opened; or (3) nobody is home. If all of these are untrue, the pet door is unlocked. This logic seems to work for us pretty well. It's prevented runaway dogs and avoided a few skunking incidents!

Thankfully I've not faced the hinge problem you described. Now you've got me worried :slight_smile:

1 Like

Can you share the exact driver you're using? I've had the dog door for about a year, but in a moment of weakness, removed it from my hub. Now I'm trying to get it reconnected and am having zero luck. Full factory reset of the hub and dog door and I'm getting squat! Installed sticks18's driver, but man... this is really irking me.

Sorry to be slow, just saw your note......here you go:

Driver for Petsafe Smart Door

/**

  • PetSafe Smart Door
  • Copyright 2015 Scott Gibson
  • Ported to Hubitat in 2019 by Mark Olson with explicit permission from Scott Gibson
  • Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
  • in compliance with the License. You may obtain a copy of the License at:
  •  http://www.apache.org/licenses/LICENSE-2.0
    
  • Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
  • on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
  • for the specific language governing permissions and limitations under the License.

*/
metadata {
// Automatically generated. Make future change here.
definition (name: "PetSafe Smart Door", namespace: "sticks18", author: "Scott Gibson") {
capability "Battery"
capability "Polling"
capability "Actuator"
capability "Refresh"
capability "Lock"

	fingerprint profileId: "0104", inClusters: "0000 0001 0003 0009 000A 0101", outClusters: "0000 0001 0003 0009 000A 0101"
}


	simulator {
	/*  // status "locked": "command: 9881, payload: 00 62 03 FF 00 00 FE FE"
	// status "unlocked": "command: 9881, payload: 00 62 03 00 00 00 FE FE"

	// reply "9881006201FF,delay 4200,9881006202": "command: 9881, payload: 00 62 03 FF 00 00 FE FE"
	// reply "988100620100,delay 4200,9881006202": "command: 9881, payload: 00 62 03 00 00 00 FE FE"  */
}

tiles {
	standardTile("toggle", "device.lock", width: 2, height: 2) {
		state "locked", label:'locked', action:"lock.unlock", icon:"st.locks.lock.locked", backgroundColor:"#79b821", nextState:"unlocking"
		state "unlocked", label:'unlocked', action:"lock.lock", icon:"st.locks.lock.unlocked", backgroundColor:"#ffffff", nextState:"locking"
		state "unknown", label:"unknown", action:"lock.lock", icon:"st.locks.lock.unknown", backgroundColor:"#ffffff", nextState:"locking"
		state "locking", label:'locking', icon:"st.locks.lock.locked", backgroundColor:"#79b821"
		state "unlocking", label:'unlocking', icon:"st.locks.lock.unlocked", backgroundColor:"#ffffff"
	}
	standardTile("lock", "device.lock", inactiveLabel: false, decoration: "flat") {
		state "default", label:'lock', action:"lock.lock", icon:"st.locks.lock.locked", nextState:"locking"
	}
	standardTile("unlock", "device.lock", inactiveLabel: false, decoration: "flat") {
		state "default", label:'unlock', action:"lock.unlock", icon:"st.locks.lock.unlocked", nextState:"unlocking"
	}
	valueTile("battery", "device.battery", inactiveLabel: false, decoration: "flat") {
		state "battery", label:'${currentValue}% battery', unit:""
	}
	standardTile("refresh", "device.lock", inactiveLabel: false, decoration: "flat") {
		state "default", label:'', action:"refresh.refresh", icon:"st.secondary.refresh"
	}

	main "toggle"
	details(["toggle", "lock", "unlock", "battery", "refresh"])
}

}

def parse(String description) {

log.trace description

def msg = zigbee.parse(description)
log.trace msg

def results = []
if (description?.startsWith('catchall:')) {
	results = parseCatchAllMessage(description)
}
else if (description?.startsWith('read attr -')) {
	results = parseReportAttributeMessage(description)
}

}

private parseReportAttributeMessage(String description) {

Map descMap = (description - "read attr - ").split(",").inject([:]) { map, param ->
def nameAndValue = param.split(":")
map += [(nameAndValue[0].trim()):nameAndValue[1].trim()]
}

//log.debug "Desc Map: $descMap"
def results = []
if (descMap.cluster == "0001" && descMap.attrId == "0020") {
	log.debug "Received battery level report"
	results = createEvent(getBatteryResult(Integer.parseInt(descMap.value, 16)))
}
else if (descMap.cluster == "0101" && descMap.attrId == "0000") {
	log.debug "Received lock status"
	def linkText = getLinkText(device)
    
    if(descMap.value == "01"){
    	results = createEvent( name: 'lock' , value: "locked", descriptionText: "${linkText} is locked")
	}
    else if(descMap.value == "02") {
    	results = createEvent( name: 'lock' , value: "unlocked", descriptionText: "${linkText} is unlocked")
    }
        
}

return results

}

private getBatteryResult(rawValue) {

//log.debug 'Battery'
def linkText = getLinkText(device)
def result = [ name: 'battery' ]

def volts = rawValue / 10
def descriptionText
if (volts > 6.5) {
	result.descriptionText = "${linkText} battery has too much power (${volts} volts)."
}
else {
	def minVolts = 4.0
	def maxVolts = 6.0
	def pct = (((volts - minVolts) / (maxVolts - minVolts))*100)
	result.value = Math.min(100, (int) pct)
	result.descriptionText = "${linkText} battery was ${result.value}%"
}

return result

}

private Map parseCatchAllMessage(String description) {

def results = [:]
def cluster = zigbee.parse(description)

if (shouldProcessMessage(cluster)) {
	switch(cluster.clusterId) {
		case 0x0001:
			results << createEvent(getBatteryResult(cluster.data.last()))
			break
	}
}

return results

}

private boolean shouldProcessMessage(cluster) {
// 0x0B is default response indicating message got through
// 0x07 is bind message

boolean ignoredMessage = cluster.profileId != 0x0104 ||
	cluster.command == 0x0B ||
	cluster.command == 0x07 ||
	(cluster.data.size() > 0 && cluster.data.first() == 0x3e)

return !ignoredMessage

}

def poll() {

log.debug "Executing 'poll'"
refresh()

}

def refresh() {

[
"st rattr 0x${device.deviceNetworkId} 0x0C 0x101 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 0x0C 1 0x20"
]

}

def updated() {

configure()

}

def lock() {

log.debug "Executing 'lock'"
sendEvent(name: "lock", value: "locked")
"st cmd 0x${device.deviceNetworkId} 0x0C 0x101 0 {}"

}

def unlock() {

log.debug "Executing 'unlock'"
sendEvent(name: "lock", value: "unlocked")
"st cmd 0x${device.deviceNetworkId} 0x0C 0x101 1 {}"

}

def configure() {

String zigbeeId = swapEndianHex(device.hub.zigbeeId)
log.debug "Confuguring Reporting and Bindings."
def configCmds = [	

    //Lock Reporting
    "zcl global send-me-a-report 0x101 0 0x30 0 3600 {01}", "delay 500",
    "send 0x${device.deviceNetworkId} 1 1", "delay 1000",

    //Battery Reporting
    "zcl global send-me-a-report 1 0x20 0x20 5 3600 {}", "delay 200",
    "send 0x${device.deviceNetworkId} 1 1", "delay 1500",

    "zdo bind 0x${device.deviceNetworkId} 0x0C 1 0x101 {${device.zigbeeId}} {}", "delay 500",
    "zdo bind 0x${device.deviceNetworkId} 0x0C 1 1 {${device.zigbeeId}} {}"

]
return configCmds + refresh() // send refresh cmds as part of config

}

private hex(value, width=2) {
def s = new BigInteger(Math.round(value).toString()).toString(16)
while (s.size() < width) {
s = "0" + s
}
s
}

private Integer convertHexToInt(hex) {
Integer.parseInt(hex,16)
}

private String swapEndianHex(String hex) {
reverseArray(hex.decodeHex()).encodeHex()
}

private byte[] reverseArray(byte[] array) {
int i = 0;
int j = array.length - 1;
byte tmp;
while (j > i) {
tmp = array[j];
array[j] = array[i];
array[i] = tmp;
j--;
i++;
}
return array
}

private getEndpointId() {
new BigInteger(device.endpointId, 16).toString()
}

EDIT: This clearly isn't the right way to post driver code. Can anyway help a noob out and I'll fix it!

So I have been looking around for a combo Zigbee/Z-Wave repeater and the only device that seems to have that is the Iris 3210-L/L2 outlets, but when looking on the forums it seems that only a few of the firmwares, I believe 20085010 and 20115010, are really worth it for the devices. Since Iris is now, gone is there any way to update plugs to these firmwares? I saw that ST hubs can update some Iris products or is it possible to update through Arcus?

Not that anyone has found yet, to the best of my knowledge. Personally, I have eliminated Z-Wave from my home in favor of Lutron Caseta (for switches, dimmers, fan controllers and Pico remotes), and Zigbee (for motion, contact, temperature, humidity, and leak sensors). This has been a very stable combination for my specific needs.

Yeah, I am still in the setup/transition stages from a WiFi based non-hub Alexa smart home into Hubitat so I still do not have a ton of devices, but I needed a Zigbee repeater for my Hue motion sensor and Hue remote dimmer, and I needed a Z-Wave repeater for my August Pro smart lock. I figured I would look for a 2-in-1 solution is all.

In your eyes, what is the key differentiating factors between Zigbee and Z-Wave for you, like why have you avoided Z-Wave?