openhab / openhab-core

Core framework of openHAB
https://www.openhab.org/
Eclipse Public License 2.0
911 stars 420 forks source link

Add SDDP service to core #4234

Closed andrewfg closed 3 months ago

andrewfg commented 3 months ago

If regex matching is implemented then the epsonprojector and sonyprojector addons could be detected as many newer models respond to Control4 SDDP discovery probes as described here:

https://github.com/sammck/sddp-discovery-protocol/blob/main/README.md

SDDP is similar to UPNP/SSDP in that a multicast search frame is sent and any supported devices respond back to the multicast address with a packet containing device information. By using a regex these packets would be filtered to determine the device type and manufacturer.

Originally posted by @mlobstein in https://github.com/openhab/openhab-core/issues/3936#issuecomment-2118832389


Note: I myself (via my then employer) was one of the founder members at the original launch of UPNP hosted by Microsoft in Redmond, WA., so I am very familiar with coding for SSDP. => I will volunteer myself to write an equivalent SDDP module for OH core. The goal would be to provide an SDDP service with twofold application..

  1. Use the new SDDP service to implement in OH Core an Addon Finder for Things that are discoverable via SDDP
  2. Expose the new SDDP service to OH Addon authors for them to use it in discovering Things and respective properties.
rkoshak commented 3 months ago

If things haven't changed since the last time I messed with it, Roku also uses SDDP for discovery.

andrewfg commented 3 months ago

Roku also uses SDDP for discovery

@rkoshak I pretty much finished my own code, but I will have a look at Roku to see if there are any learnings from it.

https://github.com/andrewfg/openhab-core/tree/oh-core-sddp

mlobstein commented 3 months ago

If things haven't changed since the last time I messed with it, Roku also uses SDDP for discovery.

Roku uses SSDP: https://developer.roku.com/docs/developer-program/dev-tools/external-control-api.md

Its discovery service uses a custom implementation but for the addon finder it uses the core upnp service.

andrewfg commented 3 months ago

Roku uses SSDP

Yup. It is important to note that SSDP (Simple Service Discovery Protocol) and SDDP ( Simple Device Discovery Protocol) are different. The former underlies UPnP discovery, and the latter is its own thing.