We deprecated ExtendedDiscoveryService because we couldn’t come up with a good reason for it. However, I have a need similar to it and was wanting to open a discussion to see if it can be done currently and if not, maybe create a PR for something like this…
The sony binding will discover sony devices via UPNP (upnp participant class).
There are four main services a device can implement - Simple IP, DIAL, IRCC or Scalar. Each of those services will send out their own UPNP packet and I have 4 discovery classes (upnp participants) that will find them and create the associated thing (there are 4 things).
Now - we can really group those four services into what I’m calling generations
- Simple IP
- DIAL and IRCC
A device can be a gen 1 or gen 2 or gen 3 by itself - but it could also be a gen1/gen3, or a gen2/gen3 (haven’t seen gen1/gen2 yet).
The issue is - that you always want to use the highest generation found (scalar includes simple ip and dial/ircc abilities).
Since these UPNP packets come in independently and definitely out of order - I’d like a way to cancel an inbox item.
Basically - if I’ve discovered an gen1 device and created an inbox item for it - then I receive a gen3 packet for the device - I’d like to delete the gen1 inbox item and create the gen3 inbox item. Basically always accepting the highest generation as the best one.
The big issue is that for gen2 - I could have two inbox items that would need deleting. Because of that I can’t create a single dummy item saying the generation (because I need to create two things if it’s truely only gen2)…