[hdpowerview] Fix autoupdate quirk. (#12141)

Fixes #12140

Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
Jacob Laursen 2022-01-27 21:38:29 +01:00 committed by GitHub
parent 369b985192
commit 608d0ae23a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 5 deletions

View File

@ -76,8 +76,8 @@ have different `id` values:
| Channel Group | Channel | Item Type | Description | | 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. | | 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. 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. |
| automations | id | Switch | Setting this to ON will enable the automation, while OFF will disable it. | | automations | id | Switch | Setting this to ON will enable the automation, while OFF will disable it. |
### Channels for Shades (Thing type `shade`) ### Channels for Shades (Thing type `shade`)
@ -239,7 +239,7 @@ Switch Bedroom_Repeater_BlinkingEnabled "Bedroom Repeater Blinking Enabled [%s]"
Scene items: 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 ### `demo.sitemap` File

View File

@ -24,6 +24,7 @@ import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelGroupUID; import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder; import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.thing.type.AutoUpdatePolicy;
/** /**
* The {@link SceneChannelBuilder} class creates scene channels * The {@link SceneChannelBuilder} class creates scene channels
@ -95,6 +96,7 @@ public class SceneChannelBuilder extends BaseChannelBuilder {
ChannelUID channelUid = new ChannelUID(channelGroupUid, Integer.toString(scene.id)); ChannelUID channelUid = new ChannelUID(channelGroupUid, Integer.toString(scene.id));
String description = translationProvider.getText("dynamic-channel.scene-activate.description", scene.getName()); String description = translationProvider.getText("dynamic-channel.scene-activate.description", scene.getName());
return ChannelBuilder.create(channelUid, CoreItemFactory.SWITCH).withType(channelTypeUid) return ChannelBuilder.create(channelUid, CoreItemFactory.SWITCH).withType(channelTypeUid)
.withLabel(scene.getName()).withDescription(description).build(); .withLabel(scene.getName()).withDescription(description).withAutoUpdatePolicy(AutoUpdatePolicy.VETO)
.build();
} }
} }

View File

@ -24,6 +24,7 @@ import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelGroupUID; import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder; import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.thing.type.AutoUpdatePolicy;
/** /**
* The {@link SceneGroupChannelBuilder} class creates scene group channels * The {@link SceneGroupChannelBuilder} class creates scene group channels
@ -97,6 +98,7 @@ public class SceneGroupChannelBuilder extends BaseChannelBuilder {
String description = translationProvider.getText("dynamic-channel.scene-group-activate.description", String description = translationProvider.getText("dynamic-channel.scene-group-activate.description",
sceneCollection.getName()); sceneCollection.getName());
return ChannelBuilder.create(channelUid, CoreItemFactory.SWITCH).withType(channelTypeUid) return ChannelBuilder.create(channelUid, CoreItemFactory.SWITCH).withType(channelTypeUid)
.withLabel(sceneCollection.getName()).withDescription(description).build(); .withLabel(sceneCollection.getName()).withDescription(description)
.withAutoUpdatePolicy(AutoUpdatePolicy.VETO).build();
} }
} }

View File

@ -29,6 +29,7 @@ import org.openhab.binding.hdpowerview.internal.builders.SceneChannelBuilder;
import org.openhab.core.thing.Channel; import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelGroupUID; import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ThingUID; import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.type.AutoUpdatePolicy;
import org.osgi.framework.Bundle; import org.osgi.framework.Bundle;
/** /**
@ -80,6 +81,15 @@ public class SceneChannelBuilderTest {
assertEquals(Integer.toString(scenes.get(0).id), channels.get(0).getUID().getIdWithoutGroup()); 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 @Test
public void suppliedListIsUsed() { public void suppliedListIsUsed() {
List<Scene> scenes = createScenes(); List<Scene> scenes = createScenes();

View File

@ -29,6 +29,7 @@ import org.openhab.binding.hdpowerview.internal.builders.SceneGroupChannelBuilde
import org.openhab.core.thing.Channel; import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelGroupUID; import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ThingUID; import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.type.AutoUpdatePolicy;
import org.osgi.framework.Bundle; import org.osgi.framework.Bundle;
/** /**
@ -80,6 +81,15 @@ public class SceneGroupChannelBuilderTest {
assertEquals(Integer.toString(sceneCollections.get(0).id), channels.get(0).getUID().getIdWithoutGroup()); 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 @Test
public void suppliedListIsUsed() { public void suppliedListIsUsed() {
List<SceneCollection> sceneCollections = createSceneCollections(); List<SceneCollection> sceneCollections = createSceneCollections();