It's the same old story. I had some free-time, so I started coding. Jason became busy and the difference between the repos became large... And since then, I've become rather busy. I still make a commit here and there, but I don't have the time I used to.
In an effort to not repeat history, I sent you a request for to become a contributor to the king-dopey/pytomation repo, but I also see Jason gave you access to his repo as well. Whichever becomes the main, we should just be sure to update the documentation at
pytomation.com. (there are no rivalries here, no ones feeling will get hurt, either way)
To your question, that looks very interface specific. While working the insteon and openzwave interfaces, the device time is not stored in the address. With OpenZwave, it was easy, just run commands in sequence, until you get the correct one. For the Insteon Hub, I did need extra details from the device, so I grabbed the device object. For you case, you can probably grab the class type of the device (light, lock, etc).
I do different things, but this is an example of how to get that device, starting on line 154 in Insteon_hub.py.
elif self._devices:
for d in self._devices:
if d.address.upper() == address: