Interface UpnpDiscoveryParticipant


  • @NonNullByDefault
    public interface UpnpDiscoveryParticipant
    A UpnpDiscoveryParticipant that is registered as a service is picked up by the UpnpDiscoveryService and can thus contribute DiscoveryResults from UPnP scans.
    Author:
    Kai Kreuzer - Initial contribution
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static long MIN_MAX_AGE_SECS
      According to the UPnP specification, the minimum MaxAge is 1800 seconds.
    • Field Detail

      • MIN_MAX_AGE_SECS

        static final long MIN_MAX_AGE_SECS
        According to the UPnP specification, the minimum MaxAge is 1800 seconds.
        See Also:
        Constant Field Values
    • Method Detail

      • getSupportedThingTypeUIDs

        Set<ThingTypeUID> getSupportedThingTypeUIDs()
        Defines the list of thing types that this participant can identify
        Returns:
        a set of thing type UIDs for which results can be created
      • createResult

        @Nullable DiscoveryResult createResult​(org.jupnp.model.meta.RemoteDevice device)
        Creates a discovery result for a upnp device
        Parameters:
        device - the upnp device found on the network
        Returns:
        the according discovery result or null, if device is not supported by this participant
      • getThingUID

        @Nullable ThingUID getThingUID​(org.jupnp.model.meta.RemoteDevice device)
        Returns the thing UID for a upnp device
        Parameters:
        device - the upnp device on the network
        Returns:
        a thing UID or null, if device is not supported by this participant
      • getRemovalGracePeriodSeconds

        default long getRemovalGracePeriodSeconds​(org.jupnp.model.meta.RemoteDevice device)
        The JUPnP library strictly follows the UPnP specification insofar as if a device fails to send its next 'ssdp:alive' notification within its declared 'maxAge' period, it is immediately considered to be gone. But unfortunately some openHAB bindings handle devices that can sometimes be a bit late in sending their 'ssdp:alive' notifications even though they have not really gone offline, which means that such devices are repeatedly removed from, and (re)added to, the Inbox. To prevent this, a binding that implements a UpnpDiscoveryParticipant may OPTIONALLY implement this method to specify an additional delay period (grace period) to wait before the device is removed from the Inbox.
        Parameters:
        device - the UPnP device on the network
        Returns:
        the additional grace period delay in seconds before the device will be removed from the Inbox