[shelly] Use thing type shellyplusht for Shelly Plus HT Gen3 (#18943)

* Thing type shellyplushtg3 removed, instead it will be mapped to
shellyplusht

Signed-off-by: Markus Michels <markus7017@gmail.com>
This commit is contained in:
Markus Michels
2025-07-26 09:06:41 +02:00
committed by GitHub
parent c85837c371
commit bdcde5a1ef
9 changed files with 11 additions and 30 deletions
+1 -1
View File
@@ -1415,7 +1415,7 @@ Using the Thing configuration option `brightnessAutoOn` you could decide if the
Channels lastEvent and eventCount are only available if input type is set to momentary button Channels lastEvent and eventCount are only available if input type is set to momentary button
### Shelly Plus HT (thing-type: shellyplusht), Plus HT Gen 3 (thing-type: shellyhtg3) ### Shelly Plus HT (thing-type: shellyplusht)
| Group | Channel | Type | read-only | Description | | Group | Channel | Type | read-only | Description |
| ------- | ------------ | -------- | --------- | ------------------------------------------------------- | | ------- | ------------ | -------- | --------- | ------------------------------------------------------- |
@@ -47,10 +47,10 @@ public class ShellyBindingConstants {
THING_TYPE_SHELLYPLUS1, THING_TYPE_SHELLYPLUS1PM, THING_TYPE_SHELLYPLUS2PM_RELAY, THING_TYPE_SHELLYPLUS1, THING_TYPE_SHELLYPLUS1PM, THING_TYPE_SHELLYPLUS2PM_RELAY,
THING_TYPE_SHELLYPLUS2PM_ROLLER, THING_TYPE_SHELLYPLUSI4, THING_TYPE_SHELLYPLUSI4DC, THING_TYPE_SHELLYPLUS2PM_ROLLER, THING_TYPE_SHELLYPLUSI4, THING_TYPE_SHELLYPLUSI4DC,
THING_TYPE_SHELLYPLUSDIMMER10V, THING_TYPE_SHELLYPLUSUNI, THING_TYPE_SHELLYPLUSHT, THING_TYPE_SHELLYPLUSDIMMER10V, THING_TYPE_SHELLYPLUSUNI, THING_TYPE_SHELLYPLUSHT,
THING_TYPE_SHELLYPLUSHTG3, THING_TYPE_SHELLYPLUSSMOKE, THING_TYPE_SHELLYPLUSPLUGS, THING_TYPE_SHELLYPLUSSMOKE, THING_TYPE_SHELLYPLUSPLUGS, THING_TYPE_SHELLYPLUSPLUGUS,
THING_TYPE_SHELLYPLUSPLUGUS, THING_TYPE_SHELLYPLUSDIMMERUS, THING_TYPE_SHELLYPLUSRGBWPM, THING_TYPE_SHELLYPLUSDIMMERUS, THING_TYPE_SHELLYPLUSRGBWPM, THING_TYPE_SHELLYPLUSSTRIP,
THING_TYPE_SHELLYPLUSSTRIP, THING_TYPE_SHELLYPLUS1L, THING_TYPE_SHELLYPLUS2L, THING_TYPE_SHELLYPLUSSHUTTER, THING_TYPE_SHELLYPLUS1L, THING_TYPE_SHELLYPLUS2L, THING_TYPE_SHELLYPLUSSHUTTER, THING_TYPE_SHELLYPLUSEM,
THING_TYPE_SHELLYPLUSEM, THING_TYPE_SHELLYPLUS3EM63, THING_TYPE_SHELLYPLUS3EM63,
// Shelly Wall Display // Shelly Wall Display
THING_TYPE_SHELLYPLUSWALLDISPLAY, THING_TYPE_SHELLYPLUSWALLDISPLAY,
@@ -217,7 +217,7 @@ public class ShellyDeviceProfile {
boolean isGas = THING_TYPE_SHELLYGAS.equals(thingTypeUID); boolean isGas = THING_TYPE_SHELLYGAS.equals(thingTypeUID);
boolean isUNI = THING_TYPE_SHELLYUNI.equals(thingTypeUID) || THING_TYPE_SHELLYPLUSUNI.equals(thingTypeUID); boolean isUNI = THING_TYPE_SHELLYUNI.equals(thingTypeUID) || THING_TYPE_SHELLYPLUSUNI.equals(thingTypeUID);
isHT = THING_TYPE_SHELLYHT.equals(thingTypeUID) || THING_TYPE_SHELLYPLUSHT.equals(thingTypeUID) isHT = THING_TYPE_SHELLYHT.equals(thingTypeUID) || THING_TYPE_SHELLYPLUSHT.equals(thingTypeUID)
|| THING_TYPE_SHELLYPLUSHTG3.equals(thingTypeUID) || THING_TYPE_SHELLYBLUHT.equals(thingTypeUID); || THING_TYPE_SHELLYBLUHT.equals(thingTypeUID);
isDW = THING_TYPE_SHELLYDOORWIN.equals(thingTypeUID) || THING_TYPE_SHELLYDOORWIN2.equals(thingTypeUID) isDW = THING_TYPE_SHELLYDOORWIN.equals(thingTypeUID) || THING_TYPE_SHELLYDOORWIN2.equals(thingTypeUID)
|| THING_TYPE_SHELLYBLUDW.equals(thingTypeUID); || THING_TYPE_SHELLYBLUDW.equals(thingTypeUID);
isMotion = THING_TYPE_SHELLYMOTION.equals(thingTypeUID) || THING_TYPE_SHELLYBLUMOTION.equals(thingTypeUID); isMotion = THING_TYPE_SHELLYMOTION.equals(thingTypeUID) || THING_TYPE_SHELLYBLUMOTION.equals(thingTypeUID);
@@ -413,8 +413,7 @@ public class ShellyDeviceProfile {
return thingTypeID.startsWith(THING_TYPE_SHELLYPLUS_PREFIX) return thingTypeID.startsWith(THING_TYPE_SHELLYPLUS_PREFIX)
|| thingTypeID.startsWith(THING_TYPE_SHELLYPRO_PREFIX) || thingTypeID.contains("mini") || thingTypeID.startsWith(THING_TYPE_SHELLYPRO_PREFIX) || thingTypeID.contains("mini")
|| THING_TYPE_SHELLYPLUSWALLDISPLAY.equals(thingTypeUID) || THING_TYPE_SHELLYPLUSWALLDISPLAY.equals(thingTypeUID)
|| THING_TYPE_SHELLYPLUSHTG3.equals(thingTypeUID) || isBluSeries(thingTypeUID) || isBluSeries(thingTypeUID) | isBluSeries(thingTypeUID) || THING_TYPE_SHELLYBLUGW.equals(thingTypeUID);
|| THING_TYPE_SHELLYBLUGW.equals(thingTypeUID);
} }
public static boolean isBluSeries(ThingTypeUID thingTypeUID) { public static boolean isBluSeries(ThingTypeUID thingTypeUID) {
@@ -220,7 +220,6 @@ public class ShellyThingCreator {
public static final ThingTypeUID THING_TYPE_SHELLYPLUSI4DC = new ThingTypeUID(BINDING_ID, "shellyplusi4dc"); public static final ThingTypeUID THING_TYPE_SHELLYPLUSI4DC = new ThingTypeUID(BINDING_ID, "shellyplusi4dc");
public static final ThingTypeUID THING_TYPE_SHELLYPLUSHT = new ThingTypeUID(BINDING_ID, "shellyplusht"); public static final ThingTypeUID THING_TYPE_SHELLYPLUSHT = new ThingTypeUID(BINDING_ID, "shellyplusht");
public static final ThingTypeUID THING_TYPE_SHELLYPLUSUNI = new ThingTypeUID(BINDING_ID, "shellyplusuni"); public static final ThingTypeUID THING_TYPE_SHELLYPLUSUNI = new ThingTypeUID(BINDING_ID, "shellyplusuni");
public static final ThingTypeUID THING_TYPE_SHELLYPLUSHTG3 = new ThingTypeUID(BINDING_ID, "shellyhtg3");
public static final ThingTypeUID THING_TYPE_SHELLYPLUSSMOKE = new ThingTypeUID(BINDING_ID, "shellyplussmoke"); public static final ThingTypeUID THING_TYPE_SHELLYPLUSSMOKE = new ThingTypeUID(BINDING_ID, "shellyplussmoke");
public static final ThingTypeUID THING_TYPE_SHELLYPLUSPLUGS = new ThingTypeUID(BINDING_ID, "shellyplusplug"); public static final ThingTypeUID THING_TYPE_SHELLYPLUSPLUGS = new ThingTypeUID(BINDING_ID, "shellyplusplug");
public static final ThingTypeUID THING_TYPE_SHELLYPLUSPLUGUS = new ThingTypeUID(BINDING_ID, "shellyplusplugus"); public static final ThingTypeUID THING_TYPE_SHELLYPLUSPLUGUS = new ThingTypeUID(BINDING_ID, "shellyplusplugus");
@@ -104,7 +104,6 @@ thing-type.shelly.shellyplusi4.description = Shelly Plus i4 - 4xInput Device
thing-type.shelly.shellyplusi4dc.description = Shelly Plus i4DC - 4xDC Input Device thing-type.shelly.shellyplusi4dc.description = Shelly Plus i4DC - 4xDC Input Device
thing-type.shelly.shellyplusuni.description = Shelly Plus UNI - Universal Module thing-type.shelly.shellyplusuni.description = Shelly Plus UNI - Universal Module
thing-type.shelly.shellyplusht.description = Shelly Plus HT - Humidity and Temperature sensor with display thing-type.shelly.shellyplusht.description = Shelly Plus HT - Humidity and Temperature sensor with display
thing-type.shelly.shellyplushtg3.description = Shelly Plus HT Gen 3 - Humidity and Temperature sensor with display
thing-type.shelly.shellyplussmoke.description = Shelly Plus Smoke - Smoke Detector with Alarm thing-type.shelly.shellyplussmoke.description = Shelly Plus Smoke - Smoke Detector with Alarm
thing-type.shelly.shellypluswdus.description = Shelly Wall Dimmer US Device thing-type.shelly.shellypluswdus.description = Shelly Wall Dimmer US Device
thing-type.shelly.shellyplus10v.description = Shelly Plus Dimmer 10V thing-type.shelly.shellyplus10v.description = Shelly Plus Dimmer 10V
@@ -104,7 +104,6 @@ thing-type.shelly.shellyplusi4.description = Shelly Plus i4 mit 4 Analog-Eingän
thing-type.shelly.shellyplusi4dc.description = Shelly Plus i4DC mit 4 Gleichstrom-Eingängen thing-type.shelly.shellyplusi4dc.description = Shelly Plus i4DC mit 4 Gleichstrom-Eingängen
thing-type.shelly.shellyplusuni.description = Shelly Plus UNI (Universelles Sensormodul) thing-type.shelly.shellyplusuni.description = Shelly Plus UNI (Universelles Sensormodul)
thing-type.shelly.shellyplusht.description = Shelly Plus HT - Feuchtigkeits- und Temperatursensor mit Anzeigefeld thing-type.shelly.shellyplusht.description = Shelly Plus HT - Feuchtigkeits- und Temperatursensor mit Anzeigefeld
thing-type.shelly.shellyplushtg3.description = Shelly Plus HT Gen 3 - Feuchtigkeits- und Temperatursensor mit Display
thing-type.shelly.shellyplussmoke.description = Shelly Plus Smoke - Rauchmelder mit Alarm thing-type.shelly.shellyplussmoke.description = Shelly Plus Smoke - Rauchmelder mit Alarm
thing-type.shelly.shellypluswdus.description = Shelly Wall Dimmer US thing-type.shelly.shellypluswdus.description = Shelly Wall Dimmer US
thing-type.shelly.shellyplus10v.description = Shelly Plus Dimmer 10V thing-type.shelly.shellyplus10v.description = Shelly Plus Dimmer 10V
@@ -19,21 +19,6 @@
<config-description-ref uri="thing-type:shelly:battery-gen2"/> <config-description-ref uri="thing-type:shelly:battery-gen2"/>
</thing-type> </thing-type>
<thing-type id="shellyhtg3">
<label>ShellyPlus H&amp;T Gen 3</label>
<description>@text/thing-type.shelly.shellypludhtg3.description</description>
<category>Sensor</category>
<semantic-equipment-tag>Sensor</semantic-equipment-tag>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery-gen2"/>
</thing-type>
<thing-type id="shellyplussmoke"> <thing-type id="shellyplussmoke">
<label>Shelly Plus Smoke</label> <label>Shelly Plus Smoke</label>
<description>@text/thing-type.shelly.shellyplussmoke.description</description> <description>@text/thing-type.shelly.shellyplussmoke.description</description>
@@ -130,7 +130,7 @@ public class ShellyDeviceProfileTest {
Arguments.of(THING_TYPE_SHELLYPRO4PM, true, false), // Arguments.of(THING_TYPE_SHELLYPRO4PM, true, false), //
Arguments.of(THING_TYPE_SHELLYPLUSDIMMERUS, true, false), // Arguments.of(THING_TYPE_SHELLYPLUSDIMMERUS, true, false), //
Arguments.of(THING_TYPE_SHELLYPLUSDIMMER10V, true, false), // Arguments.of(THING_TYPE_SHELLYPLUSDIMMER10V, true, false), //
Arguments.of(THING_TYPE_SHELLYPLUSHTG3, true, false), // Arguments.of(THING_TYPE_SHELLYPLUSHT, true, false), //
Arguments.of(THING_TYPE_SHELLYPLUSSMOKE, true, false), // Arguments.of(THING_TYPE_SHELLYPLUSSMOKE, true, false), //
Arguments.of(THING_TYPE_SHELLYPLUSWALLDISPLAY, true, false), // Arguments.of(THING_TYPE_SHELLYPLUSWALLDISPLAY, true, false), //
@@ -225,9 +225,9 @@ public class ShellyThingCreatorTest {
@Test @Test
void getThingUIDReturnsThingTypeMatchingServiceName() { void getThingUIDReturnsThingTypeMatchingServiceName() {
Set<ThingTypeUID> excludedThingTypeUids = Set.of(THING_TYPE_SHELLY2_RELAY, THING_TYPE_SHELLY2_ROLLER, Set<ThingTypeUID> excludedThingTypeUids = Set.of(THING_TYPE_SHELLY2_RELAY, THING_TYPE_SHELLY2_ROLLER,
THING_TYPE_SHELLY25_ROLLER, THING_TYPE_SHELLY25_RELAY, THING_TYPE_SHELLYPLUSHTG3, THING_TYPE_SHELLY25_ROLLER, THING_TYPE_SHELLY25_RELAY, THING_TYPE_SHELLYPLUS2PM_RELAY,
THING_TYPE_SHELLYPLUS2PM_RELAY, THING_TYPE_SHELLYPLUS2PM_ROLLER, THING_TYPE_SHELLYPRO2, THING_TYPE_SHELLYPLUS2PM_ROLLER, THING_TYPE_SHELLYPRO2, THING_TYPE_SHELLYPRO2PM_ROLLER,
THING_TYPE_SHELLYPRO2PM_ROLLER, THING_TYPE_SHELLYPRO2PM_RELAY, THING_TYPE_SHELLYRGBW2_COLOR); THING_TYPE_SHELLYPRO2PM_RELAY, THING_TYPE_SHELLYRGBW2_COLOR);
for (ThingTypeUID supportedThingTypeUid : SUPPORTED_THING_TYPES.stream() for (ThingTypeUID supportedThingTypeUid : SUPPORTED_THING_TYPES.stream()
.filter(uid -> !excludedThingTypeUids.contains(uid)).toList()) { .filter(uid -> !excludedThingTypeUids.contains(uid)).toList()) {