I have a question about presence fobs in general. From what I have observed, if you have a device, and it loses connectivity, it won't automatically reconnect.
I don't have one yet, but it appears these fobs DO auto-connect when in proximity. What makes the fobs able to do so? Is it software on the hub, or something on the fobs?
Are there devices other than these particular fobs (Iris V1 Key Fob and Smartthings V2/V4 Presence Sensor) that also are capable of this? Why can't something like an Aqara temp sensor or Iris motion detector act like the presence fobs?
The fobs are sort of hard to find, and expensive when you can find them, so I was trying to find other options.
The presence fobs don't really 'lose connectivity' like the Aqara sensors... they just go out of range of the hub's zigbee mesh network. When they are within range, they send a stream of zigbee messages to let the hub know they are 'present'. If the hub does not see one of these messages within a certain timeout period, the presence status is changes to 'not present'.
So if I understand correctly, the fobs send some type of ping constantly but other devices don't? Is the device driver looking for this "signal" or something?
How is out of range on a fob different than moving a Zigbee temperature sensor to one side of the house, and moving it back or having a battery go dead where it won't reconnect?
I guess I don't understand how one Zigbee device can lose signal and it never reconnects yet another is meant to do so.
Yes, the driver's parse() routine waits for data from the device. When it gets the data, it simply unschedules the old timeout timer, and then starts a new timeout timer. If new data is not received before the timer expires, the status changes.
I am not sure if the presence devices are 'special' with regard to how they reconnect to the Zigbee network. Perhaps @mike.maxwell could shed some light on the differences between a Zigbee motion sensor and a Zigbee presence sensor?
With the exception of the initial Smartthhings presence sensor which used a manufacturer specific cluster to send messages to the hub, any zigbee device can be configured to be a presence device by simply configuring a specific cluster to report at a specific maximum rate, the rate is usually set to 20 seconds, and the cluster used in the battery cluster...
Nothing tricky here, but that's why battery life on these types of devices is so poor...
They have no idea if their hub is reachable or not, so they send a zigbee attribute report frame 24-7-365...
So I assume this is set in firmware by the manufacturer and nothing we can change "in the field" so to say? (Ignoring the very slight possibility of firmware flashing a device somehow) If my observations are correct, don't most Zigbee devices report battery more in the hours to once a day range?
I don't mind the battery penalty, I was considering using something hardwired to a car to report presence. The big problem is actually finding a presence fob, they seem to be very scarce.
Unlike Z-Wave, the Zigbee specification includes standard configuration commands and parameters for attribute reporting.
As I said any Zigbee device can be configured to send data to a hub at whatever intervals you want, right down to every second if that's what you're after...
And outside the USA you're screwed because the only zigbee fob I can find are hideous monsters. So actually I would also be interested to know what it takes to make a contact sensor into a key fob.
@neonturbo, I like the direction this thread is going.
Modify a Zigbee battery device to run off a cars 12v power outlet ( e.g via a usb phone charger )
Oooh, I’ve got one of @iharyadi sensors that I’ve yet to “home” which would be perfect !
They're supposed to be long range, have temp, humidity, luminance and play nice with repeaters and HE.
I feels a project coming on.... just gotta make time
You would have to be able to modify the firmware to report something to the hub more frequently than it does. Currently a contact sensor only reports to the hub when the contact changes (or the temperature if the sensor supports that). No contact sensor I know about would report up with any type of regularity that would make it effective as a fob. However, zigbee frequencies are universal. So, why not simply buy a ST keyfob?
It is just so frustrating that nobody makes a good way to detect which people and/or what vehicles are home without using a cellphone. Bluetooth tags are pretty inexpensive, but there is no "base station receiver" available. These also work the the "wrong" way around, and use the phone to find the tag instead of the tag being the movable device.
RFID appears to be similar to the bluetooth situation from what I can find. There are certainly large scale (commercial, business) type devices out there, but who can afford one of these?
There are things like radar/laser parking assist systems for the garage, but they aren't always on, and they won't work anywhere but in the garage. If I was building new, I might consider an inductive loop buried in the concrete, but too late now, and again won't help in the driveway. None of these would tell who left either, just that there was a car present.
The whole cell phone as presence model bugs me. This is where I don't understand the home automation situation at all. There are so many downsides to phones like power saving shutting off WiFi, no GPS in certain buildings, poor cell reception in certain areas, and so on. What about people who don't have smartphones, or even just a dead phone battery. Who wants their house to not work when their phone is dead or just turned off for a nap or something.
Well I use this atm, but it's not an of the shelve solution. It's a diy thing. There were some of the shelve solutions, happy bubbles being one of them. But they tend to die early (the company I mean). Apparently the market is to small to make it profitable.
Contact and motion sensors generally use the alarm cluster for reporting, I'm not sure reporting for these can be changed.
Temperature however can, and obviously you would use the temp frame data as your heartbeat signal and just ignore the value, you would not actually send that through as an actual temperature event.
But do you know any device that reports temperature frequently enough to make it useful as a presence device, especially when the actual sensor wouldn't actually change readings? You'd have to have custom firmware for the sensor too, right? That's not configurable from the controller, is it?
Zigbee has configurable reporting threshold and minimum and maximum report intervals, you can tell the device to report however you want.
Setting the min interval to 0, the max interval to 15 and the change threshold to whatever since it doesn't matter in this case and the device will send at least one temperature report every 15 seconds...
This is exactly how some of our drivers for presence work, except we mostly use the battery level attribute, sometimes rssi.
This isn't unique to Hubitat, everyone does it this way.
No, and no, this is all standard zigbee reporting configuration settings sent to the device on configuration from the driver, the hub could care less about any of this.
So lets use the Iris motion and humidity sensors, or Iris V1 contact sensor for an example*. When viewing the native driver (Generic Zigbee motion and the Iris V1 contact supplied by Hubitat) there is no configuration parameters that can be set.
So these parameters are there, but not exposed to end users? Can this be changed (feature request!) or if I knew how I could write a custom driver that would expose these settings?
*Edit: I see that temp sensor might do this, but my question stands.