Skip to content

Add StateDescription to Item #347

Description

@wertzui

At the moment, Item in JS does not expose the StateDescription and especially the Options.

According to #109 (comment) it should be possible to add these through the items metadata which I have not tested, but it is at least not possible to retrieve them that way.

In my use case, I'm looking into items which are bound to a thing's channel that only allows a couple of strings as values (like an enum).
Examples are the list of available apps in the lgwebos binding, or the allowedStates in a channel of the mqtt binding.
These allowed states are exposed in the item through the getStateDescription().options list.

A workaround at the moment is to get the raw item like below:

const { items, logm, utils} = require("openhab");
const logger = log("Scratchpad");

const itemName = "LivingRoomTvApplication";
const item = items.getItem(itemName);
const rawItem = item.rawItem;
const stateDescription = rawItem.getStateDescription();
const options = stateDescription.options;
options.forEach(option => {
    const label = option.getLabel();
    const value = option.getValue();
    logger.info(`Label: ${label}, Value: ${value}`);
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions