Open VinzzB opened 9 years ago
Hi @VinzzB
Sorry for the late reply.
If you add an if block around these lines you will have a switch for enabling/disabling discovery. I'd suggest making th switch depend on the discover argument on the constructor, for example if its set to None
. I'd welcome a PR for this. Keep in mind that discovery doesn't just ensure that new devices are discovered, it is also responsible for detecting devices that may have moved to a new IP address.
As for exporting and loading the current devices this is how I would approach it:
Client
that's used to create a new device from a device_id
and host
and return it.Client._servicepacket
to use this new functionClient
that takes a list of device_id
and host
pairs creates them with the new function, then when done calls Client.poll_devices
(to test availability).Client
that exports the device_id
and host
pairs in the same way the other function takes themFor extra points add hooks so that the Client
object itself can be serialised and deserialised with Pickle. :smile:
I'll probably get around to this eventually, but I welcome a PR if you need it sooner.
Hello Smarthall,
I just tested your script and it works well. I still have some minor questions:
Is it possible to add Bulbs manually to the internal list without using discovery? Can i simply create a Device object by passing the right arguments to its CTOR (DeviceId, Host, Client)? How can i disable discovery when creating the Client? Can i place the next lines into an IF block: self.discover() and the _discoverpoll calls? I would create separate methods for this (start/stop discovery)
What i'm actually looking for is a way to re-create the bulblist from a (db) store. Once it knows (dicovered) the bulbs, there is no need to discover them again. (unless you want to make sure that they are on-line). It should see changes in the bulbs (when the are on-line) as your script does now.
So my main question: Is there an easy way to store/restore bulbs?
Also, please mention in your docs that this is a Python 2.x script.