WebThingsIO / gateway

WebThings Gateway - a self-hosted web application for monitoring and controlling a building over the web
http://webthings.io/gateway
Mozilla Public License 2.0
2.61k stars 339 forks source link

Remove or add prefix to proprietary members of Thing Descriptions #2832

Open benfrancis opened 3 years ago

benfrancis commented 3 years ago

The current Thing Descriptions exposed by the gateway include a number of proprietary members which are not W3C compliant, may of which are used internally by the gateway UI.

Some examples include:

In order to make these Thing Descriptions W3C compliant I suggest adding a prefix to include these as semantic annotations, e.g.

This would also require adding an additional @context at the top of Thing Descriptions to refer to this custom context, e.g.

  "@context": [
    "https://www.w3.org/2019/wot/td/v1",
    {"wt": "https://webthings.io/schemas"},
    ["wtg": "https://webthings.io/gateway"}
  ]

Alternatively it might be possible to keep them as they are without a prefix and with an anonymous context, but this risks name collisions:

  "@context": [
    "https://www.w3.org/2019/wot/td/v1",
    "https://webthings.io/schemas" 
    "https://webthings.io/gateway"
  ]

See also: #2809

I've noticed there are also a bunch of members added for Zigbee devices and I'm not exactly sure why these need to be exposed at the Web Thing API level:

One exception to this is the current iconHref member, for which there's now a W3C compliant alternative in the latest Thing Description 1.1 draft.

"links": [
  "rel": "icon",
  "sizes": "64x64",
  "/uploads/ibkbpR.svg"
]
benfrancis commented 3 years ago

Another term which is used internally is proxy, e.g. parsed at https://github.com/WebThingsIO/gateway/blob/master/src/models/thing.ts#L155

benfrancis commented 1 year ago

Another term used internally is visible, on property affordances. Support for this property was removed in the the latest gateway-addon-node, but it appears some adapter add-ons may rely on it.

benfrancis commented 1 year ago

group_id, could become wt:groupId