While at CES earlier this month, I was faced with a challenge when I had housekeepers scheduled to come while I was on the road. Normally if I wasn’t going to be home I’d leave a key in the mailbox, but I didn’t want to leave it for an entire week while I was away. Instead, I used some simple Insteon ISY-994i programming to unlock the door at the scheduled time, and re-lock it once they were done. And, since it was during the polar vortex, the house was going to be really cold since I wasn’t home.
There were two programs involved, since the timing of these events was a little different. My plan was to raise the temperature earlier in the morning, unlock the door at the prescribed time, re-lock the door a couple of times to make sure that the door is locked after they leave, and turn the thermostat back down once they’re gone.
The programs are as follows, and should speak for themselves:
Thermostat adjustment
Because the heater isn’t going to raise the temperature to a comfortable level quickly, it’s set to heat up a couple hours in advance and turn off after. The “-Home” and “-Vacation” programs set the temperature (and send notifications) accordingly.
If On Wed Time is xxx Then Run Program '-Home' (Then Path) Wait 7 hours Run Program '-Vacation' (Then Path)
Door Unlock
Because the door needs to remain unlocked for an imprecise amount of time, the approach here was to unlock the door just before the visitors were scheduled to arrive, then re-lock the door every hour for the next 3 hours. This addresses the possibility that the door is manually unlocked from the inside, since the MorningLinc lock doesn’t actually report its state when it changes. The good news is that the extra “lock” commands won’t inadvertently unlock the door – i.e., the MorningLinc bridge doesn’t send a “toggle” command, but a specific “lock” command.
If On Wed Time is xxx Then Set 'Foyer - Front Door Lock' Unlock Door Resource 'Pushover - Door Unlocked' Wait 1 hour Set 'Foyer - Front Door Lock' Lock Door Resource 'Pushover - Door Locked' Wait 1 hour Set 'Foyer - Front Door Lock' Lock Door Resource 'Pushover - Door Locked' Wait 1 hour Set 'Foyer - Front Door Lock' Lock Door Resource 'Pushover - Door Locked'
How could this code be better? At the most simple, I could have written the program to keep the door locked until, say, the doorbell was pushed. And things can get pretty complex if I wanted; I could have programmed the ISY-994i to look for a specific sequence of doorbell rings (i.e., ring the doorbell twice, wait 10 seconds, then ring again). But this was a simple way to make sure my visitors were able to access the house – and comfortably – when I was on the road.