Skip to content

Commit 17f131d

Browse files
authored
[shelly] Add support for Shelly Plug M Gen3 (#20632)
* [shelly] Add support for Shelly Plug M Gen3 Signed-off-by: Martin Bartsch <kaenguruhs@gmx.net>
1 parent 15dc199 commit 17f131d

6 files changed

Lines changed: 10 additions & 4 deletions

File tree

bundles/org.openhab.binding.shelly/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,10 @@ See section [Discovery](#discovery) for details.
9494
| shellyplusplug | Shelly Plug-S | SNPL-00112EU, SNPL-10112EU, S3PL-00112EU |
9595
| shellyplusplug | Shelly Plug-IT | SNPL-00110IT |
9696
| shellyplusplug | Shelly Plug-UK | SNPL-00112UK |
97-
| shellyplusplug | Shelly Plug-S Gen 3, Shelly AZ Plug | S3PL-00112EU |
97+
| shellyplusplug | Shelly Plug-S Gen 3 | S3PL-00112EU |
9898
| shellyplusplug | Shelly AZ Plug | S3PL-10112EU |
9999
| shellyplusplug | Shelly Outdoor Plug-S | S3PL-20112EU |
100+
| shellyplusplug | Shelly Plug M Gen3 | S3PL-30110EU |
100101
| shellyplusplugus | Shelly Plug-US | SNPL-00116US |
101102
| shellyplusstrip | Shelly Plus Power Strip 4 | S4PL-00416EU |
102103
| shellyplusi4 | Shelly Plus i4 with 4x AC input | SNSN-0024X, S3SN-0024X |

bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/ShellyDevices.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public class ShellyDevices {
9090
public static final String SHELLYDT_PLUSPLUGSG3 = "S3PL-00112EU"; // Shelly Plug-S G3
9191
public static final String SHELLYDT_PLUSPLUGSAZ = "S3PL-10112EU"; // Shelly AZ Plug
9292
public static final String SHELLYDT_PLUSPLUGOUTDOORSG3 = "S3PL-20112EU";
93+
public static final String SHELLYDT_PLUSPLUGMG3 = "S3PL-30110EU"; // Shelly Plug M Gen 3
9394
public static final String SHELLYDT_PLUSPLUGIT = "SNPL-00110IT";
9495
public static final String SHELLYDT_PLUSPLUGUK = "SNPL-00112UK";
9596
public static final String SHELLYDT_PLUSPLUGUS = "SNPL-00116US";
@@ -422,6 +423,7 @@ public class ShellyDevices {
422423
Map.entry(SHELLYDT_PLUSPLUGIT, THING_TYPE_SHELLYPLUSPLUGS),
423424
Map.entry(SHELLYDT_PLUSPLUGOUTDOORSG3, THING_TYPE_SHELLYPLUSPLUGS),
424425
Map.entry(SHELLYDT_PLUSPLUGUK, THING_TYPE_SHELLYPLUSPLUGS),
426+
Map.entry(SHELLYDT_PLUSPLUGMG3, THING_TYPE_SHELLYPLUSPLUGS), // Shelly Plug M G3
425427
Map.entry(SHELLYDT_PLUSPLUGUS, THING_TYPE_SHELLYPLUSPLUGUS),
426428
Map.entry(SHELLYDT_PLUSSTRIP, THING_TYPE_SHELLYPLUSSTRIP),
427429
Map.entry(SHELLYDT_PLUSI4, THING_TYPE_SHELLYPLUSI4), //
@@ -597,6 +599,7 @@ public class ShellyDevices {
597599
Map.entry("shellyplugus", THING_TYPE_SHELLYPLUSPLUGUS),
598600
Map.entry("shellyplusplug", THING_TYPE_SHELLYPLUSPLUGS), //
599601
Map.entry("shellyplugsg3", THING_TYPE_SHELLYPLUSPLUGS),
602+
Map.entry("shellyplugmg3", THING_TYPE_SHELLYPLUSPLUGS),
600603
Map.entry("shellyplusplugus", THING_TYPE_SHELLYPLUSPLUGUS),
601604
Map.entry("shellyplusi4", THING_TYPE_SHELLYPLUSI4), //
602605
Map.entry("shellyi4g3", THING_TYPE_SHELLYPLUSI4), //

bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/discovery/ShellyThingCreator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public static ThingTypeUID getThingTypeUID(String serviceName, String deviceType
7777
}
7878

7979
if (serviceNameLowerCase.startsWith(SERVICE_NAME_SHELLYPLUG_PREFIX) && !serviceNameLowerCase.contains("plugus")
80-
&& !serviceNameLowerCase.contains("plugsg3")) {
80+
&& !serviceNameLowerCase.contains("plugsg3") && !serviceNameLowerCase.contains("plugmg3")) {
8181
// shellyplug-s needs to be mapped to shellyplugs to follow the schema
8282
// for the thing types: <thing type>-<mode>
8383
if (serviceNameLowerCase.startsWith(SERVICE_NAME_SHELLYPLUGS_PREFIX)

bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/i18n/shelly.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ thing-type.shelly.shellyplusi4dc.group.status2.label = Input 2
164164
thing-type.shelly.shellyplusi4dc.group.status3.label = Input 3
165165
thing-type.shelly.shellyplusi4dc.group.status4.label = Input 4
166166
thing-type.shelly.shellyplusplug.label = ShellyPlus Plug
167-
thing-type.shelly.shellyplusplug.description = Shelly Plus Plug S/IT/UK. Outlet with Power Meter
167+
thing-type.shelly.shellyplusplug.description = Shelly Plus Plug (e.g. S/M/IT/UK, AZ and Outdoor Plug-S). Outlet with Power Meter
168168
thing-type.shelly.shellyplusplugus.label = ShellyPlus Plug US
169169
thing-type.shelly.shellyplusplugus.description = Shelly Plus Plug US. Outlet with Power Meter
170170
thing-type.shelly.shellyplusrgbwpm.label = Shelly Plus RGBW

bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/thing/shellyGen2_relay.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122

123123
<thing-type id="shellyplusplug">
124124
<label>ShellyPlus Plug</label>
125-
<description>Shelly Plus Plug S/IT/UK. Outlet with Power Meter</description>
125+
<description>Shelly Plus Plug (e.g. S/M/IT/UK, AZ and Outdoor Plug-S). Outlet with Power Meter</description>
126126
<category>PowerOutlet</category>
127127
<semantic-equipment-tag>PowerOutlet</semantic-equipment-tag>
128128
<channel-groups>

bundles/org.openhab.binding.shelly/src/test/java/org/openhab/binding/shelly/internal/discovery/ShellyThingCreatorTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ private static Stream<Arguments> provideTestCasesForGetThingUIDReturnsThingUidAc
7979
Arguments.of("shellyplugu1-" + DEVICE_ID, "", THING_TYPE_SHELLYPLUGU1), //
8080
Arguments.of("shellyplusplug-" + DEVICE_ID, "", THING_TYPE_SHELLYPLUSPLUGS), //
8181
Arguments.of("shellyplugsg3-" + DEVICE_ID, "", THING_TYPE_SHELLYPLUSPLUGS), //
82+
Arguments.of("shellyplugmg3-" + DEVICE_ID, "", THING_TYPE_SHELLYPLUSPLUGS), //
8283
Arguments.of("shellyplugus-" + DEVICE_ID, "", THING_TYPE_SHELLYPLUSPLUGUS), //
8384
Arguments.of("shellydimmer-" + DEVICE_ID, "", THING_TYPE_SHELLYDIMMER), //
8485
Arguments.of("shellydimmer2-" + DEVICE_ID, "", THING_TYPE_SHELLYDIMMER2), //
@@ -189,6 +190,7 @@ private static Stream<Arguments> provideTestCasesForGetThingUIDReturnsThingUidBy
189190
Arguments.of(SHELLYDT_PLUSSHUTTER, "", THING_TYPE_SHELLYPLUSSHUTTER), //
190191
Arguments.of(SHELLYDT_PLUSPLUGS, "", THING_TYPE_SHELLYPLUSPLUGS), //
191192
Arguments.of(SHELLYDT_PLUSPLUGSG3, "", THING_TYPE_SHELLYPLUSPLUGS), //
193+
Arguments.of(SHELLYDT_PLUSPLUGMG3, "", THING_TYPE_SHELLYPLUSPLUGS), //
192194
Arguments.of(SHELLYDT_PLUSPLUGSAZ, "", THING_TYPE_SHELLYPLUSPLUGS), //
193195
Arguments.of(SHELLYDT_PLUSPLUGIT, "", THING_TYPE_SHELLYPLUSPLUGS), //
194196
Arguments.of(SHELLYDT_PLUSPLUGUK, "", THING_TYPE_SHELLYPLUSPLUGS), //

0 commit comments

Comments
 (0)