WebThingsIO / api

Web Thing API Specification
http://iot.mozilla.org/wot/
Other
164 stars 25 forks source link

Thing icons #126

Closed kgiori closed 4 years ago

kgiori commented 6 years ago

I have some IKEA bulbs and some Philip's bulbs and when I rename them to "kitchen" and "living room" so that speech control works, then I forget which brand of device I'm controlling. Similar to smart plugs -- I have several brands. And now I'm experimenting with IoT developer boards, some that come with onboard sensors and actuators that can become custom "things". They all look the same from an icon and control standpoint, even though one dev board is from Nordic, one from Microchip, one from STM, one from TI, etc. I'd like to know which is which.

If a thing has "branding" information I'd like it to show up when I drill down to the page displayed when I click on the splat bubble.

Take for example an IKEA dimmable bulb. The splat page could show 3 spokes off the main bulb icon (instead of current first two in this list):

benfrancis commented 6 years ago

There is currently no way to define branding information or images in a Web Thing Description. This would need to be a new feature of the spec, like icons in web app manifests https://w3c.github.io/manifest/#icons-member

I'm not sure I like the UI design you propose, but we may need to provide a mechanism for web things to define their own icons and somehow fit that into the UI design (it wouldn't work very well with our current design).

kgiori commented 6 years ago

Alternative ui approach is to have the wot spec define specific icons for each thing type (for example, the icons we already have for a light bulb, power plug, and switch), and then allow customized backgrounds around those icons. (Not sure technically how to accomplish this -- maybe images are optionally fetched from a link associated with the description of the thing.) Brands could try to embed a tiny logo in the background image, or use some brand-specific colors. But even with custom backgrounds, the on/off value or other changed state of a device would still need to be obvious to the end-user.

I think of how emoji's are curated by a standards body. Thing type icons could be curated as part of the wot spec, but other graphics data visually tied to those standard icons could be a way to identify the associated brand.

Because the wot spec isn't ready for this yet, this issue can be a future "story" concept, not high priority.

benfrancis commented 6 years ago

I don't think it's really appropriate or scalable for the WoT spec to specify icons for every thing type. There are likely to be thousands of domain specific web thing types in future, defined by external schemas. We're probably eventually going to want to move the current thing type definitions out of the spec into an external schema as well.

What we could do in future is allow extension add-ons to provide front end web components for collections of thing types that correspond to certain schema repositories e.g. a collection of icons for medial IoT devices, or industrial IoT devices etc. We can also allow users to set their own custom icons for individual Things, like SmartThings does.

A better approach for native web things might be for the thing itself to define its own icon in a Thing Description, which could then be branded.

kgiori commented 6 years ago

We fulfilled a part of this idea in 0.5 by letting users select an image icon for custom things.

The enhancement idea would be complete (in terms of satisfying my original request) if a web thing description could include a pointer to its own custom icon. Icons might be downloaded locally to the gateway as part of installing an add-on, or they could be downloaded from the Internet when a thing is added to the gateway.

Emoji's have become a standard. Similarly, maybe "thing" icons could become part of the proposed standard web of things schema definitions. This enhancement idea would enable product vendors to create their own variant, just as there are multiple artistic renditions of emoji's.

mrstegeman commented 4 years ago

I'm going to close this. I see no reason to include UI-specific bits in a machine-readable thing description.

What makes more sense is to include a top-level metadata section which could include things like:

With that information, any UI could pick specific icons as necessary.