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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions