Skip to content

Commit d5a85fc

Browse files
markus7017computergeek1507
authored andcommitted
[shelly] Add support for Gen4 devices (openhab#18782)
Signed-off-by: Markus Michels <markus7017@gmail.com> Signed-off-by: Scott Hanson <scooter_seh@yahoo.com>
1 parent 2d11341 commit d5a85fc

14 files changed

Lines changed: 243 additions & 103 deletions

File tree

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

Lines changed: 88 additions & 40 deletions
Large diffs are not rendered by default.

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,13 @@ public class ShellyBindingConstants {
4949
THING_TYPE_SHELLYPLUSDIMMER10V, THING_TYPE_SHELLYPLUSUNI, THING_TYPE_SHELLYPLUSHT,
5050
THING_TYPE_SHELLYPLUSHTG3, THING_TYPE_SHELLYPLUSSMOKE, THING_TYPE_SHELLYPLUSPLUGS,
5151
THING_TYPE_SHELLYPLUSPLUGUS, THING_TYPE_SHELLYPLUSDIMMERUS, THING_TYPE_SHELLYPLUSRGBWPM,
52+
THING_TYPE_SHELLYPLUSSTRIP,
5253

5354
// Shelly Wall Display
5455
THING_TYPE_SHELLYPLUSWALLDISPLAY,
5556

5657
// Shelly Plus Mini
57-
THING_TYPE_SHELLY1MINI, THING_TYPE_SHELLYPMMINI, THING_TYPE_SHELLY1PMMINI,
58+
THING_TYPE_SHELLYMINI_1, THING_TYPE_SHELLYMINI_PM, THING_TYPE_SHELLYMINI_1PM, THING_TYPE_SHELLYMINI_EM,
5859

5960
// Shelly Pro
6061
THING_TYPE_SHELLYPRO1, THING_TYPE_SHELLYPRO1PM, THING_TYPE_SHELLYPRO1CB, THING_TYPE_SHELLYPRO2,
@@ -141,6 +142,7 @@ public class ShellyBindingConstants {
141142
public static final String CHANNEL_EMETER_REACTWATTS = "reactiveWatts";
142143
public static final String CHANNEL_EMETER_VOLTAGE = "voltage";
143144
public static final String CHANNEL_EMETER_CURRENT = "current";
145+
public static final String CHANNEL_EMETER_FREQUENCY = "frequency";
144146
public static final String CHANNEL_EMETER_PFACTOR = "powerFactor";
145147
public static final String CHANNEL_EMETER_RESETTOTAL = "resetTotals";
146148
public static final String CHANNEL_GROUP_NMETER = "nmeter";
@@ -297,6 +299,7 @@ public class ShellyBindingConstants {
297299
public static final int DIGITS_KWH = 3;
298300
public static final int DIGITS_VOLT = 1;
299301
public static final int DIGITS_AMPERE = 3;
302+
public static final int DIGITS_FREQUENCY = 1;
300303
public static final int DIGITS_TEMP = 1;
301304
public static final int DIGITS_LUX = 0;
302305
public static final int DIGITS_PERCENT = 1;

bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1ApiJsonDTO.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,7 @@ public static class ShellySettingsEMeter { // ShellyEM meter
553553

554554
public Double pf; // 3EM
555555
public Double current; // 3EM
556+
public Double frequency; // Gen4
556557
}
557558

558559
public static class ShellyEMNCurrentSettings {

bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api2/Shelly2ApiClient.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,9 @@ private boolean updateRelayStatus(int id, ShellySettingsStatus status, @Nullable
322322
if (rs.current != null) {
323323
emeter.current = rs.current;
324324
}
325+
if (rs.frequency != null) {
326+
emeter.frequency = rs.frequency;
327+
}
325328
if (rs.pf != null) {
326329
emeter.pf = rs.pf;
327330
}
@@ -884,7 +887,7 @@ protected void updateBatteryStatus(ShellyStatusSensor sdata, @Nullable Shelly2De
884887
sdata.bat.value = getDouble(value.battery.percent);
885888
}
886889
if (value.external != null && value.external.present != null) {
887-
sdata.charger = getBool(value.external.present);
890+
sdata.charger = value.external.present;
888891
}
889892
}
890893

bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api2/Shelly2ApiJsonDTO.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -932,6 +932,8 @@ public static class Shelly2RelayStatus {
932932
public Double apower;
933933
public Double voltage;
934934
public Double current;
935+
@SerializedName("freq")
936+
public Double frequency;
935937
public Double pf;
936938
public Shelly2Energy aenergy;
937939
public Shelly2DeviceStatusTemp temperature;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ protected void modified(final ComponentContext componentContext) {
131131
config.password = bindingConfig.defaultPassword;
132132

133133
String gen = getString(service.getPropertyString("gen"));
134-
boolean gen2 = "2".equals(gen) || "3".equals(gen) || ShellyDeviceProfile.isGeneration2(serviceName);
134+
boolean gen2 = "2".equals(gen) || "3".equals(gen) || "4".equals(gen)
135+
|| ShellyDeviceProfile.isGeneration2(serviceName);
135136
return ShellyBasicDiscoveryService.createResult(gen2, serviceName, address, bindingConfig, httpClient,
136137
messages);
137138
} catch (IOException e) {

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

Lines changed: 60 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@ public class ShellyThingCreator {
7777
public static final String SHELLYDT_PLUS2PM = "SNSW-002P16EU";
7878
public static final String SHELLYDT_PLUS2PM_2 = "SNSW-102P16EU";
7979
public static final String SHELLYDT_PLUS2PMG3 = "S3SW-002P16EU";
80+
public static final String SHELLYDT_PLUS2PMG4 = "S4SW-002P16EU";
8081
public static final String SHELLYDT_PLUS2PMUL = "SNSW-002P15UL";
8182
public static final String SHELLYDT_PLUSPLUGS = "SNPL-00112EU";
8283
public static final String SHELLYDT_PLUSPLUGS_2 = "SNPL-10112EU";
8384
public static final String SHELLYDT_PLUSPLUGSG3 = "S3PL-00112EU"; // Shelly Plug-S G3, Shelly AZ Plug
8485
public static final String SHELLYDT_PLUSPLUGOUTDOORSG3 = "S3PL-20112EU";
85-
8686
public static final String SHELLYDT_PLUSPLUGIT = "SNPL-00110IT";
8787
public static final String SHELLYDT_PLUSPLUGUK = "SNPL-00112UK";
8888
public static final String SHELLYDT_PLUSPLUGUS = "SNPL-00116US";
@@ -98,6 +98,7 @@ public class ShellyThingCreator {
9898
public static final String SHELLYDT_PLUSDIMMER0110VG3 = "S3DM-0010WW";
9999
public static final String SHELLYDT_PLUSWALLDISPLAY = "SAWD-0A1XX10EU1";
100100
public static final String SHELLYDT_PLUSRGBWPM = "SNDC-0D4P10WW";
101+
public static final String SHELLYDT_PLUSSTRIP = "S4PL-00416EU";
101102

102103
// Shelly Pro Series
103104
public static final String SHELLYDT_PRO1 = "SPSW-001XE16EU";
@@ -121,18 +122,15 @@ public class ShellyThingCreator {
121122
public static final String SHELLYDT_4PRO = "SHPSW04P";
122123

123124
// Shelly Plus Mini Series
124-
// Mini Generation 2
125-
public static final String SHELLYDT_MINI1 = "SNSW-001X8EU";
126-
public static final String SHELLYDT_MINIPM = "SNPM-001PCEU16";
127-
public static final String SHELLYDT_MINI1PM = "SNSW-001P8EU";
128-
// Mini Generation 3
129-
public static final String SHELLYDT_MINIG3_1 = "S3SW-001X8EU";
130-
public static final String SHELLYDT_MINIG3_PM = "S3PM-001PCEU16";
131-
public static final String SHELLYDT_MINIG3_1PM = "S3SW-001P8EU";
132-
// Mini Generation 4
133-
public static final String SHELLYDT_MINIG4_1 = "S4SW-001X8EU";
134-
public static final String SHELLYDT_MINIG4_PM = "S4EM-001PXCEU16";
135-
public static final String SHELLYDT_MINIG4_1PM = "S4SW-001P8EU";
125+
public static final String SHELLYDT_MINI_1 = "SNSW-001X8EU";
126+
public static final String SHELLYDT_MINI_1G3 = "S3SW-001X8EU";
127+
public static final String SHELLYDT_MINI_1G4 = "S4SW-001X8EU";
128+
public static final String SHELLYDT_MINI_1PM = "SNSW-001P8EU";
129+
public static final String SHELLYDT_MINI_1PMG3 = "S3SW-001P8EU";
130+
public static final String SHELLYDT_MINI_1PMG4 = "S4SW-001P8EU";
131+
public static final String SHELLYDT_MINI_PM = "SNPM-001PCEU16";
132+
public static final String SHELLYDT_MINI_PMG3 = "S3PM-001PCEU16";
133+
public static final String SHELLYDT_MINI_EM = "S4EM-001PXCEU16"; // PM was renamed to EM in Gen4
136134

137135
// Shelly BLU Series
138136
public static final String SHELLYDT_BLUBUTTON = "SBBT";
@@ -206,20 +204,23 @@ public class ShellyThingCreator {
206204
public static final String THING_TYPE_SHELLYPLUSDIMMER10V_STR = "shellyplus10v";
207205
public static final String THING_TYPE_SHELLYPLUSDIMMER0110VG3_STR = "shelly0110dimg3";
208206
public static final String THING_TYPE_SHELLYPLUSRGBWPM_STR = "shellyplusrgbwpm";
207+
public static final String THING_TYPE_SHELLYPLUSSTRIP_STR = "shellyplusstrip";
209208

210209
// Shelly Wall Display
211210
public static final String THING_TYPE_SHELLYPLUSWALLDISPLAY_STR = "shellywalldisplay";
212211

213212
// Shelly Plus Mini Series
214-
public static final String THING_TYPE_SHELLY1MINI_STR = "shelly1mini";
215-
public static final String THING_TYPE_SHELLYMINI1G3_STR = "shelly1minig3";
216-
public static final String THING_TYPE_SHELLYMINI1G4_STR = "shelly1minig4";
217-
public static final String THING_TYPE_SHELLYPMMINI_STR = "shellypmmini";
218-
public static final String THING_TYPE_SHELLYPMMINIG3_STR = "shellypmminig3";
219-
public static final String THING_TYPE_SHELLYPMMINIG4_STR = "shellypmminig4";
220-
public static final String THING_TYPE_SHELLY1PMMINI_STR = "shelly1pmmini";
221-
public static final String THING_TYPE_SHELLY1PMMINIG3_STR = "shelly1pmminig3";
222-
public static final String THING_TYPE_SHELLY1PMMINIG4_STR = "shelly1pmminig4";
213+
public static final String THING_TYPE_SHELLYMINI_1_STR = "shelly1mini";
214+
public static final String THING_TYPE_SHELLYMINI_1G3_STR = "shelly1minig3";
215+
public static final String THING_TYPE_SHELLYMINI_1G4_STR = "shelly1minig4";
216+
public static final String THING_TYPE_SHELLYMINI_PM_STR = "shellypmmini";
217+
public static final String THING_TYPE_SHELLYMINI_PMG3_STR = "shellypmminig3";
218+
public static final String THING_TYPE_SHELLYMINI_PMG4_STR = "shellypmminig4";
219+
public static final String THING_TYPE_SHELLYMINI_EM_STR = "shellyemmini"; // G4 device was renamed to EM
220+
public static final String THING_TYPE_SHELLYMINI_1PM_STR = "shelly1pmmini";
221+
public static final String THING_TYPE_SHELLYMINI_1PMG3_STR = "shelly1pmminig3";
222+
public static final String THING_TYPE_SHELLYMINI_1PMG4_STR = "shelly1pmminig4";
223+
223224
// Shelly Pro Series
224225
public static final String THING_TYPE_SHELLYPRO1_STR = "shellypro1";
225226
public static final String THING_TYPE_SHELLYPRO1PM_STR = "shellypro1pm";
@@ -332,17 +333,22 @@ public class ShellyThingCreator {
332333
THING_TYPE_SHELLYPLUSDIMMER10V_STR);
333334
public static final ThingTypeUID THING_TYPE_SHELLYPLUSRGBWPM = new ThingTypeUID(BINDING_ID,
334335
THING_TYPE_SHELLYPLUSRGBWPM_STR);
336+
public static final ThingTypeUID THING_TYPE_SHELLYPLUSSTRIP = new ThingTypeUID(BINDING_ID,
337+
THING_TYPE_SHELLYPLUSSTRIP_STR);
335338

336339
// Shelly Wall Display
337340
public static final ThingTypeUID THING_TYPE_SHELLYPLUSWALLDISPLAY = new ThingTypeUID(BINDING_ID,
338341
THING_TYPE_SHELLYPLUSWALLDISPLAY_STR);
339342

340343
// Shelly Plus Mini Series
341-
public static final ThingTypeUID THING_TYPE_SHELLY1MINI = new ThingTypeUID(BINDING_ID, THING_TYPE_SHELLY1MINI_STR);
342-
public static final ThingTypeUID THING_TYPE_SHELLYPMMINI = new ThingTypeUID(BINDING_ID,
343-
THING_TYPE_SHELLYPMMINI_STR);
344-
public static final ThingTypeUID THING_TYPE_SHELLY1PMMINI = new ThingTypeUID(BINDING_ID,
345-
THING_TYPE_SHELLY1PMMINI_STR);
344+
public static final ThingTypeUID THING_TYPE_SHELLYMINI_1 = new ThingTypeUID(BINDING_ID,
345+
THING_TYPE_SHELLYMINI_1_STR);
346+
public static final ThingTypeUID THING_TYPE_SHELLYMINI_PM = new ThingTypeUID(BINDING_ID,
347+
THING_TYPE_SHELLYMINI_PM_STR);
348+
public static final ThingTypeUID THING_TYPE_SHELLYMINI_1PM = new ThingTypeUID(BINDING_ID,
349+
THING_TYPE_SHELLYMINI_1PM_STR);
350+
public static final ThingTypeUID THING_TYPE_SHELLYMINI_EM = new ThingTypeUID(BINDING_ID,
351+
THING_TYPE_SHELLYMINI_EM_STR);
346352

347353
// Shelly Pro
348354
public static final ThingTypeUID THING_TYPE_SHELLYPRO1 = new ThingTypeUID(BINDING_ID, THING_TYPE_SHELLYPRO1_STR);
@@ -414,11 +420,12 @@ public class ShellyThingCreator {
414420
Map.entry(SHELLYDT_PLUSPLUGOUTDOORSG3, THING_TYPE_SHELLYPLUSPLUGS),
415421
Map.entry(SHELLYDT_PLUSPLUGUK, THING_TYPE_SHELLYPLUSPLUGS),
416422
Map.entry(SHELLYDT_PLUSPLUGUS, THING_TYPE_SHELLYPLUSPLUGUS),
423+
Map.entry(SHELLYDT_PLUSSTRIP, THING_TYPE_SHELLYPLUSSTRIP),
417424
Map.entry(SHELLYDT_PLUSI4, THING_TYPE_SHELLYPLUSI4), //
418425
Map.entry(SHELLYDT_PLUSI4G3, THING_TYPE_SHELLYPLUSI4),
419426
Map.entry(SHELLYDT_PLUSI4DC, THING_TYPE_SHELLYPLUSI4DC),
420-
Map.entry(SHELLYDT_PLUSHT, THING_TYPE_SHELLYPLUSHT),
421-
Map.entry(SHELLYDT_PLUSHTG3, THING_TYPE_SHELLYPLUSHTG3),
427+
Map.entry(SHELLYDT_PLUSHT, THING_TYPE_SHELLYPLUSHT), //
428+
Map.entry(SHELLYDT_PLUSHTG3, THING_TYPE_SHELLYPLUSHT),
422429
Map.entry(SHELLYDT_PLUSSMOKE, THING_TYPE_SHELLYPLUSSMOKE),
423430
Map.entry(SHELLYDT_PLUSUNI, THING_TYPE_SHELLYPLUSUNI),
424431
Map.entry(SHELLYDT_PLUSDIMMERUS, THING_TYPE_SHELLYPLUSDIMMERUS),
@@ -427,15 +434,15 @@ public class ShellyThingCreator {
427434
Map.entry(SHELLYDT_PLUSRGBWPM, THING_TYPE_SHELLYPLUSRGBWPM),
428435

429436
// Plus Mini Series
430-
Map.entry(SHELLYDT_MINI1, THING_TYPE_SHELLY1MINI), //
431-
Map.entry(SHELLYDT_MINIG3_1, THING_TYPE_SHELLY1MINI), //
432-
Map.entry(SHELLYDT_MINIG4_1, THING_TYPE_SHELLY1MINI), //
433-
Map.entry(SHELLYDT_MINIPM, THING_TYPE_SHELLYPMMINI), //
434-
Map.entry(SHELLYDT_MINIG3_PM, THING_TYPE_SHELLYPMMINI),
435-
Map.entry(SHELLYDT_MINIG4_PM, THING_TYPE_SHELLYPMMINI),
436-
Map.entry(SHELLYDT_MINI1PM, THING_TYPE_SHELLY1PMMINI),
437-
Map.entry(SHELLYDT_MINIG3_1PM, THING_TYPE_SHELLY1PMMINI),
438-
Map.entry(SHELLYDT_MINIG4_1PM, THING_TYPE_SHELLY1PMMINI),
437+
Map.entry(SHELLYDT_MINI_1, THING_TYPE_SHELLYMINI_1), //
438+
Map.entry(SHELLYDT_MINI_1G3, THING_TYPE_SHELLYMINI_1),
439+
Map.entry(SHELLYDT_MINI_1G4, THING_TYPE_SHELLYMINI_1),
440+
Map.entry(SHELLYDT_MINI_PM, THING_TYPE_SHELLYMINI_PM),
441+
Map.entry(SHELLYDT_MINI_PMG3, THING_TYPE_SHELLYMINI_PM),
442+
Map.entry(SHELLYDT_MINI_EM, THING_TYPE_SHELLYMINI_PM),
443+
Map.entry(SHELLYDT_MINI_1PM, THING_TYPE_SHELLYMINI_1PM),
444+
Map.entry(SHELLYDT_MINI_1PMG3, THING_TYPE_SHELLYMINI_1PM),
445+
Map.entry(SHELLYDT_MINI_1PMG4, THING_TYPE_SHELLYMINI_1PM),
439446

440447
// Pro Series
441448
Map.entry(SHELLYDT_PRO1, THING_TYPE_SHELLYPRO1), //
@@ -469,8 +476,10 @@ public class ShellyThingCreator {
469476
// Plus Series
470477
Map.entry(SHELLYDT_PLUS2PM, THING_TYPE_SHELLYPLUS2PM_RELAY),
471478
Map.entry(SHELLYDT_PLUS2PM_2, THING_TYPE_SHELLYPLUS2PM_RELAY),
472-
Map.entry(SHELLYDT_PLUS2PMUL, THING_TYPE_SHELLYPLUS2PM_RELAY),
473479
Map.entry(SHELLYDT_PLUS2PMG3, THING_TYPE_SHELLYPLUS2PM_RELAY),
480+
Map.entry(SHELLYDT_PLUS2PMG4, THING_TYPE_SHELLYPLUS2PM_RELAY),
481+
Map.entry(SHELLYDT_PLUS2PMUL, THING_TYPE_SHELLYPLUS2PM_RELAY),
482+
474483
// Pro Series
475484
Map.entry(SHELLYDT_PRO2PM, THING_TYPE_SHELLYPRO2PM_RELAY),
476485
Map.entry(SHELLYDT_PRO2PM_2, THING_TYPE_SHELLYPRO2PM_RELAY),
@@ -482,6 +491,8 @@ public class ShellyThingCreator {
482491
Map.entry(SHELLYDT_PLUS2PM_2, THING_TYPE_SHELLYPLUS2PM_ROLLER),
483492
Map.entry(SHELLYDT_PLUS2PMUL, THING_TYPE_SHELLYPLUS2PM_ROLLER),
484493
Map.entry(SHELLYDT_PLUS2PMG3, THING_TYPE_SHELLYPLUS2PM_ROLLER),
494+
Map.entry(SHELLYDT_PLUS2PMG4, THING_TYPE_SHELLYPLUS2PM_ROLLER),
495+
485496
// Pro Series
486497
Map.entry(SHELLYDT_PRO2PM, THING_TYPE_SHELLYPRO2PM_ROLLER),
487498
Map.entry(SHELLYDT_PRO2PM_2, THING_TYPE_SHELLYPRO2PM_ROLLER),
@@ -536,18 +547,20 @@ public class ShellyThingCreator {
536547
Map.entry(THING_TYPE_SHELLYPLUSUNI_STR, THING_TYPE_SHELLYPLUSUNI),
537548
Map.entry(THING_TYPE_SHELLYPLUSDIMMERUS_STR, THING_TYPE_SHELLYPLUSDIMMERUS),
538549
Map.entry(THING_TYPE_SHELLYPLUSDIMMER10V_STR, THING_TYPE_SHELLYPLUSDIMMER10V),
539-
Map.entry(THING_TYPE_SHELLYPLUSDIMMER0110VG3_STR, THING_TYPE_SHELLYPLUSDIMMER10V),
540550
Map.entry(THING_TYPE_SHELLYPLUSRGBWPM_STR, THING_TYPE_SHELLYPLUSRGBWPM),
551+
Map.entry(THING_TYPE_SHELLYPLUSSTRIP_STR, THING_TYPE_SHELLYPLUSSTRIP),
541552
Map.entry(THING_TYPE_SHELLYPLUSWALLDISPLAY_STR, THING_TYPE_SHELLYPLUSWALLDISPLAY),
542553

543554
// Shelly Plus Mini
544-
Map.entry(THING_TYPE_SHELLY1MINI_STR, THING_TYPE_SHELLY1MINI),
545-
Map.entry(THING_TYPE_SHELLYMINI1G3_STR, THING_TYPE_SHELLY1MINI),
546-
Map.entry(THING_TYPE_SHELLYMINI1G4_STR, THING_TYPE_SHELLY1MINI),
547-
Map.entry(THING_TYPE_SHELLYPMMINI_STR, THING_TYPE_SHELLYPMMINI),
548-
Map.entry(THING_TYPE_SHELLYPMMINIG3_STR, THING_TYPE_SHELLYPMMINI),
549-
Map.entry(THING_TYPE_SHELLYPMMINIG4_STR, THING_TYPE_SHELLYPMMINI),
550-
Map.entry(THING_TYPE_SHELLY1PMMINI_STR, THING_TYPE_SHELLY1PMMINI),
555+
Map.entry(THING_TYPE_SHELLYMINI_1_STR, THING_TYPE_SHELLYMINI_1),
556+
Map.entry(THING_TYPE_SHELLYMINI_1G3_STR, THING_TYPE_SHELLYMINI_1),
557+
Map.entry(THING_TYPE_SHELLYMINI_1G4_STR, THING_TYPE_SHELLYMINI_1),
558+
Map.entry(THING_TYPE_SHELLYMINI_PM_STR, THING_TYPE_SHELLYMINI_PM),
559+
Map.entry(THING_TYPE_SHELLYMINI_PMG3_STR, THING_TYPE_SHELLYMINI_PM),
560+
Map.entry(THING_TYPE_SHELLYMINI_EM_STR, THING_TYPE_SHELLYMINI_EM),
561+
Map.entry(THING_TYPE_SHELLYMINI_1PM_STR, THING_TYPE_SHELLYMINI_1PM),
562+
Map.entry(THING_TYPE_SHELLYMINI_1PMG3_STR, THING_TYPE_SHELLYMINI_1PM),
563+
Map.entry(THING_TYPE_SHELLYMINI_1PMG4_STR, THING_TYPE_SHELLYMINI_1PM),
551564

552565
// Shelly Pro
553566
Map.entry(THING_TYPE_SHELLYPRO1_STR, THING_TYPE_SHELLYPRO1),

bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyComponents.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.openhab.binding.shelly.internal.api1.Shelly1ApiJsonDTO.ShellyRollerStatus;
2727
import org.openhab.binding.shelly.internal.api1.Shelly1ApiJsonDTO.ShellySettingsDimmer;
2828
import org.openhab.binding.shelly.internal.api1.Shelly1ApiJsonDTO.ShellySettingsEMeter;
29+
import org.openhab.binding.shelly.internal.api1.Shelly1ApiJsonDTO.ShellySettingsLight;
2930
import org.openhab.binding.shelly.internal.api1.Shelly1ApiJsonDTO.ShellySettingsMeter;
3031
import org.openhab.binding.shelly.internal.api1.Shelly1ApiJsonDTO.ShellySettingsRelay;
3132
import org.openhab.binding.shelly.internal.api1.Shelly1ApiJsonDTO.ShellySettingsStatus;
@@ -284,6 +285,8 @@ public static boolean updateMeters(ShellyThingInterface thingHandler, ShellySett
284285
toQuantityType(getDouble(emeter.voltage), DIGITS_VOLT, Units.VOLT));
285286
updated |= thingHandler.updateChannel(groupName, CHANNEL_EMETER_CURRENT,
286287
toQuantityType(getDouble(emeter.current), DIGITS_AMPERE, Units.AMPERE));
288+
updated |= thingHandler.updateChannel(groupName, CHANNEL_EMETER_FREQUENCY,
289+
toQuantityType(getDouble(emeter.frequency), DIGITS_FREQUENCY, Units.HERTZ));
287290
updated |= thingHandler.updateChannel(groupName, CHANNEL_EMETER_PFACTOR,
288291
toQuantityType(computePF(emeter), Units.PERCENT));
289292

0 commit comments

Comments
 (0)