[hdpowerview] Fix autoupdate quirk. (#12141)
Fixes #12140 Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
parent
369b985192
commit
608d0ae23a
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue