Skip to content

Commit

Permalink
[hdpowerview] Fix autoupdate quirk. (openhab#12141)
Browse files Browse the repository at this point in the history
Fixes openhab#12140

Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
Signed-off-by: Nick Waterton <n.waterton@outlook.com>
  • Loading branch information
jlaur authored and NickWaterton committed Apr 27, 2022
1 parent b49baa1 commit 2adf9d6
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 5 deletions.
6 changes: 3 additions & 3 deletions bundles/org.openhab.binding.hdpowerview/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ have different `id` values:

| 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`)
Expand Down Expand Up @@ -239,7 +239,7 @@ Switch Bedroom_Repeater_BlinkingEnabled "Bedroom Repeater Blinking Enabled [%s]"
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
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
Expand Down Expand Up @@ -95,6 +96,7 @@ private Channel createChannel(Scene scene) {
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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
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
Expand Down Expand Up @@ -97,6 +98,7 @@ private Channel createChannel(SceneCollection sceneCollection) {
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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
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;

/**
Expand Down Expand Up @@ -80,6 +81,15 @@ public void groupAndIdAreCorrect() {
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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
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;

/**
Expand Down Expand Up @@ -80,6 +81,15 @@ public void groupAndIdAreCorrect() {
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();
Expand Down

0 comments on commit 2adf9d6

Please sign in to comment.