| Channel Group | Channel | Item Type | Description |
|---------------|---------|-----------|-------------|
-| scenes | id | Switch | Setting this to ON will activate the scene. Scenes are stateless in the PowerView hub; they have no on/off state. Note: include `{autoupdate="false"}` in the item configuration to avoid having to reset it to off after use. |
-| sceneGroups | id | Switch | Setting this to ON will activate the scene group. Scene groups are stateless in the PowerView hub; they have no on/off state. Note: include `{autoupdate="false"}` in the item configuration to avoid having to reset it to off after use. |
+| scenes | id | Switch | Setting this to ON will activate the scene. Scenes are stateless in the PowerView hub; they have no on/off state. |
+| sceneGroups | id | Switch | Setting this to ON will activate the scene group. Scene groups are stateless in the PowerView hub; they have no on/off state. |
| automations | id | Switch | Setting this to ON will enable the automation, while OFF will disable it. |
### Channels for Shades (Thing type `shade`)
Scene items:
```
-Switch Living_Room_Shades_Scene_Heart "Living Room Shades Scene Heart" <blinds> (g_Shades_Scene_Trigger) {channel="hdpowerview:hub:g24:scenes#22663", autoupdate="false"}
+Switch Living_Room_Shades_Scene_Heart "Living Room Shades Scene Heart" <blinds> (g_Shades_Scene_Trigger) {channel="hdpowerview:hub:g24:scenes#22663"}
```
### `demo.sitemap` File
import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
+import org.openhab.core.thing.type.AutoUpdatePolicy;
/**
* The {@link SceneChannelBuilder} class creates scene channels
ChannelUID channelUid = new ChannelUID(channelGroupUid, Integer.toString(scene.id));
String description = translationProvider.getText("dynamic-channel.scene-activate.description", scene.getName());
return ChannelBuilder.create(channelUid, CoreItemFactory.SWITCH).withType(channelTypeUid)
- .withLabel(scene.getName()).withDescription(description).build();
+ .withLabel(scene.getName()).withDescription(description).withAutoUpdatePolicy(AutoUpdatePolicy.VETO)
+ .build();
}
}
import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
+import org.openhab.core.thing.type.AutoUpdatePolicy;
/**
* The {@link SceneGroupChannelBuilder} class creates scene group channels
String description = translationProvider.getText("dynamic-channel.scene-group-activate.description",
sceneCollection.getName());
return ChannelBuilder.create(channelUid, CoreItemFactory.SWITCH).withType(channelTypeUid)
- .withLabel(sceneCollection.getName()).withDescription(description).build();
+ .withLabel(sceneCollection.getName()).withDescription(description)
+ .withAutoUpdatePolicy(AutoUpdatePolicy.VETO).build();
}
}
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ThingUID;
+import org.openhab.core.thing.type.AutoUpdatePolicy;
import org.osgi.framework.Bundle;
/**
assertEquals(Integer.toString(scenes.get(0).id), channels.get(0).getUID().getIdWithoutGroup());
}
+ @Test
+ public void autoUpdatePolicyIsCorrect() {
+ List<Scene> scenes = createScenes();
+ List<Channel> channels = builder.withScenes(scenes).build();
+
+ assertEquals(1, channels.size());
+ assertEquals(AutoUpdatePolicy.VETO, channels.get(0).getAutoUpdatePolicy());
+ }
+
@Test
public void suppliedListIsUsed() {
List<Scene> scenes = createScenes();
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ThingUID;
+import org.openhab.core.thing.type.AutoUpdatePolicy;
import org.osgi.framework.Bundle;
/**
assertEquals(Integer.toString(sceneCollections.get(0).id), channels.get(0).getUID().getIdWithoutGroup());
}
+ @Test
+ public void autoUpdatePolicyIsCorrect() {
+ List<SceneCollection> sceneCollections = createSceneCollections();
+ List<Channel> channels = builder.withSceneCollections(sceneCollections).build();
+
+ assertEquals(1, channels.size());
+ assertEquals(AutoUpdatePolicy.VETO, channels.get(0).getAutoUpdatePolicy());
+ }
+
@Test
public void suppliedListIsUsed() {
List<SceneCollection> sceneCollections = createSceneCollections();