mirror of
https://github.com/danieldemus/openhab-addons
synced 2026-07-29 12:34:21 +02:00
[shelly] Add Shelly Plus 1L, Plus 2L, Plus EM, Plus 3EM-63, Plus Shutter (#18937)
* Add Shelly Plus 1L, Plus 2L, Plus EM, Plus 3EM-63, Plus Shutter Also-by: Markus Michels <markus7017@gmail.com> Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
@@ -83,9 +83,14 @@ See section [Discovery](#discovery) for details.
|
||||
| thing-type | Model | Vendor ID |
|
||||
|----------------------|----------------------------------------------------------|---------------------------------------------------------------------------|
|
||||
| shellyplus1 | Shelly Plus 1 with 1x relay | SNSW-001X16EU, S3SW-001X16EU, S3SW-001X16EU, S4SW-001X16EU |
|
||||
| shellyplus1l | Shelly Plus 1L with 1x relay | S3SW-0A1X1EUL |
|
||||
| shellyplus1pm | Shelly Plus 1PM with 1x relay + power meter | SNSW-001P16EU, S3SW-001P16EU, S4SW-001P16EU |
|
||||
| shellyplus2l | Shelly Plus 2L with 2x relay | S3SW-0A2X4EUL |
|
||||
| shellyplus2pm-relay | Shelly Plus 2PM with 2x relay + power meter, relay mode | SNSW-002P16EU, SNSW-102P16EU, S3SW-002P16EU, SNSW-002P15UL, S4SW-002P16EU |
|
||||
| shellyplus2pm-roller | Shelly Plus 2PM with 2x relay + power meter, roller mode | SNSW-002P16EU, SNSW-102P16EU, S3SW-002P16EU, SNSW-002P15UL, S4SW-002P16EU |
|
||||
| shellyplusshutter | Shelly Plus Shutter for 1x roller | S3SH-0A2P4EU |
|
||||
| shellyplusem | Shelly Plus EM | S3EM-002CXCEU |
|
||||
| shellyplus3em63 | Shelly Plus 3EM-63 | S3EM-002CXCEU |
|
||||
| shellyplusplug | Shelly Plug-S | SNPL-00112EU, SNPL-10112EU, S3PL-00112EU |
|
||||
| shellyplusplug | Shelly Plug-IT | SNPL-00110IT |
|
||||
| shellyplusplug | Shelly Plug-UK | SNPL-00112UK |
|
||||
@@ -1131,7 +1136,7 @@ You should calibrate the valve using the device Web UI or Shelly App before star
|
||||
|
||||
## Shelly Plus Series
|
||||
|
||||
### Shelly Plus 1 (thing-type: shellyplus1)
|
||||
### Shelly Plus 1 (thing-type: shellyplus1, shellyplus1l)
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
| ----- | ----------- | ------- | --------- | --------------------------------------------------------------------------------- |
|
||||
@@ -1214,6 +1219,25 @@ If the Shelly Add-On is installed:
|
||||
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
|
||||
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
|
||||
|
||||
### Shelly Plus 2L (thing-type: shellyplus2l)
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
| ------ | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
|
||||
| relay1 | output | Switch | r/w | Relay #1: Controls the relay's output channel (on/off) |
|
||||
| | outputName | String | yes | Logical name of this relay output as configured in the Shelly App |
|
||||
| | input | Switch | yes | ON: Input/Button is powered, see General Notes on Channels |
|
||||
| | autoOn | Number | r/w | Relay #1: Sets a timer to turn the device ON after every OFF command; in seconds |
|
||||
| | autoOff | Number | r/w | Relay #1: Sets a timer to turn the device OFF after every ON command; in seconds |
|
||||
| | timerActive | Switch | yes | Relay #1: ON: An auto-on/off timer is active |
|
||||
| | button | Trigger | yes | Event trigger, see section Button Events |
|
||||
| relay2 | output | Switch | r/w | Relay #2: Controls the relay's output channel (on/off) |
|
||||
| | outputName | String | yes | Logical name of this relay output as configured in the Shelly App |
|
||||
| | input | Switch | yes | ON: Input/Button is powered, see General Notes on Channels |
|
||||
| | autoOn | Number | r/w | Relay #2: Sets a timer to turn the device ON after every OFF command; in seconds |
|
||||
| | autoOff | Number | r/w | Relay #2: Sets a timer to turn the device OFF after every ON command; in seconds |
|
||||
| | timerActive | Switch | yes | Relay #2: ON: An auto-on/off timer is active |
|
||||
| | button | Trigger | yes | Event trigger, see section Button Events |
|
||||
|
||||
### Shelly Plus 2PM - roller mode (thing-type: shellyplus2pm-roller)
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
@@ -1230,6 +1254,22 @@ If the Shelly Add-On is installed:
|
||||
The roller positioning calibration has to be performed using the Shelly Web UI or App before the position can be set in percent.
|
||||
Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration.
|
||||
|
||||
### Shelly Plus Shutter (thing-type: shellyplusshutter)
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
| ------ | ---------- | ------------- | --------- | ------------------------------------------------------------------------------------ |
|
||||
| roller | control | Rollershutter | r/w | can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close) |
|
||||
| | rollerPos | Dimmer | r/w | Roller position: 100%=open...0%=closed; gets updated when the roller stopped |
|
||||
| | input | Switch | yes | ON: Input/Button is powered, see General Notes on Channels |
|
||||
| | state | String | yes | Roller state: open/close/stop |
|
||||
| | stopReason | String | yes | Last stop reasons: normal, safety_switch or obstacle |
|
||||
| | safety | Switch | yes | Indicates status of the Safety Switch, ON=problem detected, powered off |
|
||||
| | event | Trigger | yes | Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP |
|
||||
| meter | | | | See group meter description |
|
||||
|
||||
The roller positioning calibration has to be performed using the Shelly Web UI or App before the position can be set in percent.
|
||||
Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration.
|
||||
|
||||
### Shelly Plus Plug-S/IT/UK/US (thing-type: shellyplusplug, shellyplusplugus)
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
@@ -1259,6 +1299,80 @@ Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoll
|
||||
| meter3 | | | r/w | Power Meter #1 with measurement values |
|
||||
| meter4 | | | r/w | Power Meter #1 with measurement values |
|
||||
|
||||
### Shelly Plus EM (thing-type: shellyplusem)
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
| ------ | ------------- | -------- | --------- | --------------------------------------------------------------------------------- |
|
||||
| relay | output | Switch | r/w | Controls the relay's output channel (on/off) |
|
||||
| | outputName | String | yes | Logical name of this relay output as configured in the Shelly App |
|
||||
| | input | Switch | yes | ON: Input/Button is powered, see general notes on channels |
|
||||
| | button | Trigger | yes | Event trigger, see section Button Events |
|
||||
| | lastEvent | String | yes | Last event type (S/SS/SSS/L) |
|
||||
| | eventCount | Number | yes | Counter gets incremented every time the device issues a button event. |
|
||||
| | autoOn | Number | r/w | Relay #1: Sets a timer to turn the device ON after every OFF command; in seconds |
|
||||
| | autoOff | Number | r/w | Relay #1: Sets a timer to turn the device OFF after every ON command; in seconds |
|
||||
| | timerActive | Switch | yes | Relay #1: ON: An auto-on/off timer is active |
|
||||
| meter1 | currentWatts | Number | yes | Current power consumption in Watts |
|
||||
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
|
||||
| | returnedKWH | Number | yes | Total returned energy, kwh |
|
||||
| | reactiveWatts | Number | yes | Instantaneous reactive power, Watts |
|
||||
| | voltage | Number | yes | RMS voltage, Volts |
|
||||
| | powerFactor | Number | yes | Power Factor in percent |
|
||||
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
|
||||
| meter2 | currentWatts | Number | yes | Current power consumption in Watts |
|
||||
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
|
||||
| | returnedKWH | Number | yes | Total returned energy, kwh |
|
||||
| | reactiveWatts | Number | yes | Instantaneous reactive power, Watts |
|
||||
| | voltage | Number | yes | RMS voltage, Volts |
|
||||
| | powerFactor | Number | yes | Power Factor in percent |
|
||||
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
|
||||
|
||||
### Shelly Plus 3EM-63 (thing-type: shellyplus3em63)
|
||||
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
| ------ | ------------- | -------- | --------- | --------------------------------------------------------------------------------- |
|
||||
| relay | output | Switch | r/w | Controls the relay's output channel (on/off) |
|
||||
| | outputName | String | yes | Logical name of this relay output as configured in the Shelly App |
|
||||
| | input | Switch | yes | ON: Input/Button is powered, see general notes on channels |
|
||||
| | button | Trigger | yes | Event trigger, see section Button Events |
|
||||
| | lastEvent | String | yes | Last event type (S/SS/SSS/L) |
|
||||
| | eventCount | Number | yes | Counter gets incremented every time the device issues a button event. |
|
||||
| | autoOn | Number | r/w | Relay #1: Sets a timer to turn the device ON after every OFF command; in seconds |
|
||||
| | autoOff | Number | r/w | Relay #1: Sets a timer to turn the device OFF after every ON command; in seconds |
|
||||
| | timerActive | Switch | yes | Relay #1: ON: An auto-on/off timer is active |
|
||||
| meter1 | currentWatts | Number | yes | Current power consumption in Watts |
|
||||
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
|
||||
| | returnedKWH | Number | yes | Total returned energy, kwh |
|
||||
| | reactiveWatts | Number | yes | Instantaneous reactive power, Watts |
|
||||
| | voltage | Number | yes | RMS voltage, Volts |
|
||||
| | current | Number | yes | Current in A |
|
||||
| | powerFactor | Number | yes | Power Factor in percent |
|
||||
| | resetTotals | Switch | yes | ON: Resets total values for the power meter |
|
||||
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
|
||||
| meter2 | currentWatts | Number | yes | Current power consumption in Watts |
|
||||
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
|
||||
| | returnedKWH | Number | yes | Total returned energy, kwh |
|
||||
| | reactiveWatts | Number | yes | Instantaneous reactive power, Watts |
|
||||
| | voltage | Number | yes | RMS voltage, Volts |
|
||||
| | current | Number | yes | Current in A |
|
||||
| | powerFactor | Number | yes | Power Factor in percent |
|
||||
| | resetTotals | Switch | yes | ON: Resets total values for the power meter |
|
||||
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
|
||||
| meter3 | currentWatts | Number | yes | Current power consumption in Watts |
|
||||
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
|
||||
| | returnedKWH | Number | yes | Total returned energy, kwh |
|
||||
| | reactiveWatts | Number | yes | Instantaneous reactive power, Watts |
|
||||
| | voltage | Number | yes | RMS voltage, Volts |
|
||||
| | current | Number | yes | Current in A |
|
||||
| | powerFactor | Number | yes | Power Factor in percent |
|
||||
| | resetTotals | Switch | yes | ON: Resets total values for the power meter |
|
||||
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
|
||||
| nmeter | ncurrent | Number | yes | Current current based on N clamp (requires calibration) |
|
||||
| | ixsum | Number | yes | Measured current over all phases |
|
||||
| | nmismatch | Switch | yes | ON: abs(ncurrent-ixsum) is greater than nmTreshhold |
|
||||
| | nmTreshhold | Number | yes | Treshhod (delta) before nMismatch goes ON |
|
||||
|
||||
### Shelly Plus Dimmer 10v (thing-type: shellyplus10v)
|
||||
|
||||
| Group | Channel | Type | read-only | Description |
|
||||
|
||||
+2
-1
@@ -49,7 +49,8 @@ public class ShellyBindingConstants {
|
||||
THING_TYPE_SHELLYPLUSDIMMER10V, THING_TYPE_SHELLYPLUSUNI, THING_TYPE_SHELLYPLUSHT,
|
||||
THING_TYPE_SHELLYPLUSHTG3, THING_TYPE_SHELLYPLUSSMOKE, THING_TYPE_SHELLYPLUSPLUGS,
|
||||
THING_TYPE_SHELLYPLUSPLUGUS, THING_TYPE_SHELLYPLUSDIMMERUS, THING_TYPE_SHELLYPLUSRGBWPM,
|
||||
THING_TYPE_SHELLYPLUSSTRIP,
|
||||
THING_TYPE_SHELLYPLUSSTRIP, THING_TYPE_SHELLYPLUS1L, THING_TYPE_SHELLYPLUS2L, THING_TYPE_SHELLYPLUSSHUTTER,
|
||||
THING_TYPE_SHELLYPLUSEM, THING_TYPE_SHELLYPLUS3EM63,
|
||||
|
||||
// Shelly Wall Display
|
||||
THING_TYPE_SHELLYPLUSWALLDISPLAY,
|
||||
|
||||
+2
-1
@@ -228,7 +228,8 @@ public class ShellyDeviceProfile {
|
||||
|| THING_TYPE_SHELLYBLUBUTTON.equals(thingTypeUID);
|
||||
isTRV = THING_TYPE_SHELLYTRV.equals(thingTypeUID);
|
||||
isWall = THING_TYPE_SHELLYPLUSWALLDISPLAY.equals(thingTypeUID);
|
||||
is3EM = THING_TYPE_SHELLY3EM.equals(thingTypeUID) || THING_TYPE_SHELLYPRO3EM.equals(thingTypeUID);
|
||||
is3EM = THING_TYPE_SHELLY3EM.equals(thingTypeUID) || THING_TYPE_SHELLYPRO3EM.equals(thingTypeUID)
|
||||
|| THING_TYPE_SHELLYPLUSEM.equals(thingTypeUID) || THING_TYPE_SHELLYPLUS3EM63.equals(thingTypeUID);
|
||||
isEM50 = THING_TYPE_SHELLYPROEM50.equals(thingTypeUID);
|
||||
|
||||
isSensor = isHT || isFlood || isDW || isSmoke || isGas || isButton || isUNI || isMotion || isSense || isTRV
|
||||
|
||||
+16
-6
@@ -632,9 +632,17 @@ public class Shelly2ApiClient extends ShellyHttpClient {
|
||||
}
|
||||
int rIdx = getRollerIdx(getProfile(), cs.id);
|
||||
ShellyRollerStatus rs = status.rollers.get(rIdx);
|
||||
ShellySettingsMeter sm = status.meters.get(rIdx);
|
||||
ShellySettingsEMeter emeter = status.emeters.get(rIdx);
|
||||
rs.isValid = sm.isValid = emeter.isValid = true;
|
||||
ShellySettingsMeter sm;
|
||||
ShellySettingsEMeter emeter;
|
||||
if (status.emeters != null) {
|
||||
emeter = status.emeters.get(rIdx);
|
||||
sm = status.meters.get(rIdx);
|
||||
rs.isValid = sm.isValid = emeter.isValid = true;
|
||||
} else {
|
||||
emeter = new ShellySettingsEMeter();
|
||||
sm = new ShellySettingsMeter();
|
||||
rs.isValid = sm.isValid = emeter.isValid = false;
|
||||
}
|
||||
if (cs.state != null) {
|
||||
if (!getString(rs.state).equals(cs.state)) {
|
||||
logger.debug("{}: Roller status changed from {} to {}, updateChannels={}", thingName, rs.state,
|
||||
@@ -679,9 +687,11 @@ public class Shelly2ApiClient extends ShellyHttpClient {
|
||||
|
||||
rollerStatus.set(cs.id, rs);
|
||||
status.rollers.set(cs.id, rs);
|
||||
relayStatus.meters.set(cs.id, sm);
|
||||
status.meters.set(cs.id, sm);
|
||||
status.emeters.set(cs.id, emeter);
|
||||
if (emeter.isValid) { // Shelly Shutter has no meters
|
||||
relayStatus.meters.set(cs.id, sm);
|
||||
status.meters.set(cs.id, sm);
|
||||
status.emeters.set(cs.id, emeter);
|
||||
}
|
||||
|
||||
postAlarms(cs.errors);
|
||||
if (rs.calibrating != null && rs.calibrating) {
|
||||
|
||||
+20
@@ -74,11 +74,14 @@ public class ShellyThingCreator {
|
||||
public static final String SHELLYDT_PLUS1PMG4 = "S4SW-001P16EU";
|
||||
public static final String SHELLYDT_PLUS1UL = "SNSW-001X15UL";
|
||||
public static final String SHELLYDT_PLUS1PMUL = "SNSW-001P15UL";
|
||||
public static final String SHELLYDT_PLUS1L = "S3SW-0A1X1EUL";
|
||||
public static final String SHELLYDT_PLUS2L = "S3SW-0A2X4EUL";
|
||||
public static final String SHELLYDT_PLUS2PM = "SNSW-002P16EU";
|
||||
public static final String SHELLYDT_PLUS2PM_2 = "SNSW-102P16EU";
|
||||
public static final String SHELLYDT_PLUS2PMG3 = "S3SW-002P16EU";
|
||||
public static final String SHELLYDT_PLUS2PMG4 = "S4SW-002P16EU";
|
||||
public static final String SHELLYDT_PLUS2PMUL = "SNSW-002P15UL";
|
||||
public static final String SHELLYDT_PLUSSHUTTER = "S3SH-0A2P4EU";
|
||||
public static final String SHELLYDT_PLUSPLUGS = "SNPL-00112EU";
|
||||
public static final String SHELLYDT_PLUSPLUGS_2 = "SNPL-10112EU";
|
||||
public static final String SHELLYDT_PLUSPLUGSG3 = "S3PL-00112EU"; // Shelly Plug-S G3, Shelly AZ Plug
|
||||
@@ -99,6 +102,8 @@ public class ShellyThingCreator {
|
||||
public static final String SHELLYDT_PLUSWALLDISPLAY = "SAWD-0A1XX10EU1";
|
||||
public static final String SHELLYDT_PLUSRGBWPM = "SNDC-0D4P10WW";
|
||||
public static final String SHELLYDT_PLUSSTRIP = "S4PL-00416EU";
|
||||
public static final String SHELLYDT_PLUSEM = "S3EM-002CXCEU";
|
||||
public static final String SHELLYDT_PLUS3EM63 = "S3EM-003CXCEU63";
|
||||
|
||||
// Shelly Pro Series
|
||||
public static final String SHELLYDT_PRO1 = "SPSW-001XE16EU";
|
||||
@@ -201,10 +206,13 @@ public class ShellyThingCreator {
|
||||
// Shelly Plus
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUS1 = new ThingTypeUID(BINDING_ID, "shellyplus1");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUS1PM = new ThingTypeUID(BINDING_ID, "shellyplus1pm");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUS1L = new ThingTypeUID(BINDING_ID, "shellyplus1l");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUS2PM_RELAY = new ThingTypeUID(BINDING_ID,
|
||||
"shellyplus2pm-relay");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUS2PM_ROLLER = new ThingTypeUID(BINDING_ID,
|
||||
"shellyplus2pm-roller");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUS2L = new ThingTypeUID(BINDING_ID, "shellyplus2l");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSSHUTTER = new ThingTypeUID(BINDING_ID, "shellyplusshutter");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSI4 = new ThingTypeUID(BINDING_ID, "shellyplusi4");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSI4DC = new ThingTypeUID(BINDING_ID, "shellyplusi4dc");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSHT = new ThingTypeUID(BINDING_ID, "shellyplusht");
|
||||
@@ -217,6 +225,8 @@ public class ShellyThingCreator {
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSDIMMER10V = new ThingTypeUID(BINDING_ID, "shellyplus10v");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSRGBWPM = new ThingTypeUID(BINDING_ID, "shellyplusrgbwpm");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSSTRIP = new ThingTypeUID(BINDING_ID, "shellyplusstrip");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSEM = new ThingTypeUID(BINDING_ID, "shellyplusem");
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUS3EM63 = new ThingTypeUID(BINDING_ID, "shellyplus3em63");
|
||||
|
||||
// Shelly Wall Display
|
||||
public static final ThingTypeUID THING_TYPE_SHELLYPLUSWALLDISPLAY = new ThingTypeUID(BINDING_ID,
|
||||
@@ -283,6 +293,9 @@ public class ShellyThingCreator {
|
||||
Map.entry(SHELLYDT_PLUS1PMG3, THING_TYPE_SHELLYPLUS1PM),
|
||||
Map.entry(SHELLYDT_PLUS1PMG4, THING_TYPE_SHELLYPLUS1PM),
|
||||
Map.entry(SHELLYDT_PLUS1PMUL, THING_TYPE_SHELLYPLUS1PM),
|
||||
Map.entry(SHELLYDT_PLUS1L, THING_TYPE_SHELLYPLUS1L), //
|
||||
Map.entry(SHELLYDT_PLUS2L, THING_TYPE_SHELLYPLUS2L),
|
||||
Map.entry(SHELLYDT_PLUSSHUTTER, THING_TYPE_SHELLYPLUSSHUTTER),
|
||||
Map.entry(SHELLYDT_PLUSPLUGS, THING_TYPE_SHELLYPLUSPLUGS),
|
||||
Map.entry(SHELLYDT_PLUSPLUGS_2, THING_TYPE_SHELLYPLUSPLUGS),
|
||||
Map.entry(SHELLYDT_PLUSPLUGSG3, THING_TYPE_SHELLYPLUSPLUGS),
|
||||
@@ -302,6 +315,8 @@ public class ShellyThingCreator {
|
||||
Map.entry(SHELLYDT_PLUSDIMMER10V, THING_TYPE_SHELLYPLUSDIMMER10V),
|
||||
Map.entry(SHELLYDT_PLUSDIMMER0110VG3, THING_TYPE_SHELLYPLUSDIMMER10V),
|
||||
Map.entry(SHELLYDT_PLUSRGBWPM, THING_TYPE_SHELLYPLUSRGBWPM),
|
||||
Map.entry(SHELLYDT_PLUSEM, THING_TYPE_SHELLYPLUSEM),
|
||||
Map.entry(SHELLYDT_PLUS3EM63, THING_TYPE_SHELLYPLUS3EM63),
|
||||
|
||||
// Plus Mini Series
|
||||
Map.entry(SHELLYDT_MINI_1, THING_TYPE_SHELLYMINI_1), //
|
||||
@@ -405,8 +420,11 @@ public class ShellyThingCreator {
|
||||
Map.entry("shellyplus1pm", THING_TYPE_SHELLYPLUS1PM), //
|
||||
Map.entry("shelly1pmg3", THING_TYPE_SHELLYPLUS1PM), //
|
||||
Map.entry("shelly1pmg4", THING_TYPE_SHELLYPLUS1PM), //
|
||||
Map.entry("shellyplus1l", THING_TYPE_SHELLYPLUS1L), //
|
||||
Map.entry("shellyplus2pm-relay", THING_TYPE_SHELLYPLUS2PM_RELAY),
|
||||
Map.entry("shellyplus2pm-roller", THING_TYPE_SHELLYPLUS2PM_ROLLER),
|
||||
Map.entry("shellyplusshutter", THING_TYPE_SHELLYPLUSSHUTTER),
|
||||
Map.entry("shellyplus2l", THING_TYPE_SHELLYPLUS2L), //
|
||||
Map.entry("shellyplugus", THING_TYPE_SHELLYPLUSPLUGUS),
|
||||
Map.entry("shellyplusplug", THING_TYPE_SHELLYPLUSPLUGS),
|
||||
Map.entry("shellyplusplugus", THING_TYPE_SHELLYPLUSPLUGUS),
|
||||
@@ -420,6 +438,8 @@ public class ShellyThingCreator {
|
||||
Map.entry("shellyplus10v", THING_TYPE_SHELLYPLUSDIMMER10V),
|
||||
Map.entry("shellyplusrgbwpm", THING_TYPE_SHELLYPLUSRGBWPM),
|
||||
Map.entry("shellyplusstrip", THING_TYPE_SHELLYPLUSSTRIP),
|
||||
Map.entry("shellyplusem", THING_TYPE_SHELLYPLUSEM),
|
||||
Map.entry("shellyplus3em63", THING_TYPE_SHELLYPLUS3EM63),
|
||||
Map.entry("shellywalldisplay", THING_TYPE_SHELLYPLUSWALLDISPLAY),
|
||||
|
||||
// Shelly Plus Mini Series
|
||||
|
||||
@@ -93,8 +93,11 @@ thing-type.shelly.shellyplusrgbw.description = Shelly Plus RGBW PM - LED Control
|
||||
# Plus Devices
|
||||
thing-type.shelly.shellyplus1.description = Shelly Plus 1 (Single Relay Switch)
|
||||
thing-type.shelly.shellyplus1pm.description = Shelly Plus 1PM - Single Relay Switch with Power Meter
|
||||
thing-type.shelly.shellyplus1l.description = Shelly Plus 1L (Single Relay Switch)
|
||||
thing-type.shelly.shellyplus2pm-relay.description = Shelly Plus 2PM - Dual Relay Switch with Power Meter
|
||||
thing-type.shelly.shellyplus2pm-roller.description = Shelly Plus 2PM - Roller Control with Power Meter
|
||||
thing-type.shelly.shellyplus2l.description = Shelly Plus 2L - Dual Relay Switch
|
||||
thing-type.shelly.shellyplusshutter.description = Shelly Shutter - Roller/Cover
|
||||
thing-type.shelly.shellyplusplug.description = Shelly Plus Plug S/IT/UK. Outlet with Power Meter
|
||||
thing-type.shelly.shellyplusplugus.description = Shelly Plus Plug US. Outlet with Power Meter
|
||||
thing-type.shelly.shellyplusi4.description = Shelly Plus i4 - 4xInput Device
|
||||
@@ -107,6 +110,8 @@ thing-type.shelly.shellypluswdus.description = Shelly Wall Dimmer US Device
|
||||
thing-type.shelly.shellyplus10v.description = Shelly Plus Dimmer 10V
|
||||
thing-type.shelly.shellyplusrgbwpm-color.description = Shelly Plus RGBW PM - RGBW Dimmer with Power Meter
|
||||
thing-type.shelly.shellyplusstrip.description = Shelly Plus Power Strip 4
|
||||
thing-type.shelly.shellyplusem.description = Shelly Plus EM Power Meter
|
||||
thing-type.shelly.shellyplus3em63.description = Shelly Plus 3EM-63 - 3 Phase Power Meter, 63 Amp
|
||||
|
||||
# Plus Mini Devices
|
||||
thing-type.shelly.shelly1mini.description = Shelly Plus Mini 1 - Single Relay Switch
|
||||
|
||||
+90
@@ -33,6 +33,21 @@
|
||||
<config-description-ref uri="thing-type:shelly:relay-gen2"/>
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="shellyplus1l">
|
||||
<label>ShellyPlus 1L</label>
|
||||
<description>@text/thing-type.shelly.shellyplus1l.description</description>
|
||||
<semantic-equipment-tag>ControlDevice</semantic-equipment-tag>
|
||||
<channel-groups>
|
||||
<channel-group id="relay" typeId="relayChannel"/>
|
||||
<channel-group id="sensors" typeId="externalSensors"/>
|
||||
<channel-group id="device" typeId="deviceStatus"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>serviceName</representation-property>
|
||||
<config-description-ref uri="thing-type:shelly:relay-gen2"/>
|
||||
</thing-type>
|
||||
|
||||
|
||||
<thing-type id="shellyplus2pm-relay">
|
||||
<label>ShellyPlus 2PM Relay</label>
|
||||
<description>@text/thing-type.shelly.shellyplus2pm-relay.description</description>
|
||||
@@ -72,6 +87,39 @@
|
||||
<config-description-ref uri="thing-type:shelly:roller-gen2"/>
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="shellyplus2l">
|
||||
<label>ShellyPlus 2L</label>
|
||||
<description>@text/thing-type.shelly.shellyplus2l.description</description>
|
||||
<semantic-equipment-tag>ControlDevice</semantic-equipment-tag>
|
||||
<channel-groups>
|
||||
<channel-group id="relay1" typeId="relayChannel">
|
||||
<label>@text/channel-group-type.shelly.relayChannel1.label</label>
|
||||
</channel-group>
|
||||
<channel-group id="relay2" typeId="relayChannel">
|
||||
<label>@text/channel-group-type.shelly.relayChannel2.label</label>
|
||||
</channel-group>
|
||||
<channel-group id="device" typeId="deviceStatus"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>serviceName</representation-property>
|
||||
<config-description-ref uri="thing-type:shelly:relay-gen2"/>
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="shellyplusshutter">
|
||||
<label>ShellyPlus Shutter</label>
|
||||
<description>@text/thing-type.shelly.shellyplusshutter.description</description>
|
||||
<category>Rollershutter</category>
|
||||
<semantic-equipment-tag>WindowCovering</semantic-equipment-tag>
|
||||
<channel-groups>
|
||||
<channel-group id="roller" typeId="rollerControl"/>
|
||||
<channel-group id="meter" typeId="meter"/>
|
||||
<channel-group id="device" typeId="deviceStatus"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>serviceName</representation-property>
|
||||
<config-description-ref uri="thing-type:shelly:roller-gen2"/>
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="shellyplusplug">
|
||||
<label>ShellyPlus Plug</label>
|
||||
<description>@text/thing-type.shelly.shellyplusplug.description</description>
|
||||
@@ -473,4 +521,46 @@
|
||||
<config-description-ref uri="thing-type:shelly:dimmer-gen2"/>
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="shellyplusem">
|
||||
<label>Shelly Plues EM</label>
|
||||
<description>@text/thing-type.shelly.shellyplusem.description</description>
|
||||
<semantic-equipment-tag>ElectricMeter</semantic-equipment-tag>
|
||||
<channel-groups>
|
||||
<channel-group id="meter1" typeId="meter">
|
||||
<label>@text/channel-group-type.shelly.meter1.label</label>
|
||||
</channel-group>
|
||||
<channel-group id="meter2" typeId="meter">
|
||||
<label>@text/channel-group-type.shelly.meter2.label</label>
|
||||
</channel-group>
|
||||
<channel-group id="nmeter" typeId="nmeter"/>
|
||||
<channel-group id="relay" typeId="relayChannel"/>
|
||||
<channel-group id="device" typeId="deviceStatus"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>serviceName</representation-property>
|
||||
<config-description-ref uri="thing-type:shelly:relay"/>
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="shellyplus3em63">
|
||||
<label>Shelly Plues 3EM-63</label>
|
||||
<description>@text/thing-type.shelly.shellyplus3em63.description</description>
|
||||
<semantic-equipment-tag>ElectricMeter</semantic-equipment-tag>
|
||||
<channel-groups>
|
||||
<channel-group id="meter1" typeId="meter">
|
||||
<label>@text/channel-group-type.shelly.meter1.label</label>
|
||||
</channel-group>
|
||||
<channel-group id="meter2" typeId="meter">
|
||||
<label>@text/channel-group-type.shelly.meter2.label</label>
|
||||
</channel-group>
|
||||
<channel-group id="meter3" typeId="meter">
|
||||
<label>@text/channel-group-type.shelly.meter2.label</label>
|
||||
</channel-group>
|
||||
<channel-group id="nmeter" typeId="nmeter"/>
|
||||
<channel-group id="device" typeId="deviceStatus"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>serviceName</representation-property>
|
||||
<config-description-ref uri="thing-type:shelly:relay"/>
|
||||
</thing-type>
|
||||
|
||||
</thing:thing-descriptions>
|
||||
|
||||
+2
@@ -98,6 +98,8 @@ public class ShellyDeviceProfileTest {
|
||||
Arguments.of(THING_TYPE_SHELLYPLUSPLUGUS, true, false), //
|
||||
Arguments.of(THING_TYPE_SHELLYPLUSI4, true, false), //
|
||||
Arguments.of(THING_TYPE_SHELLYPLUSI4DC, true, false), //
|
||||
Arguments.of(THING_TYPE_SHELLYPLUSEM, true, false), //
|
||||
Arguments.of(THING_TYPE_SHELLYPLUS3EM63, true, false), //
|
||||
|
||||
// Shelly Mini series
|
||||
Arguments.of(THING_TYPE_SHELLYMINI_1, true, false), //
|
||||
|
||||
+5
@@ -145,6 +145,7 @@ public class ShellyThingCreatorTest {
|
||||
Arguments.of(SHELLYDT_PLUS1PMG4, "", THING_TYPE_SHELLYPLUS1PM), //
|
||||
Arguments.of(SHELLYDT_PLUS1UL, "", THING_TYPE_SHELLYPLUS1), //
|
||||
Arguments.of(SHELLYDT_PLUS1PMUL, "", THING_TYPE_SHELLYPLUS1PM), //
|
||||
Arguments.of(SHELLYDT_PLUS1L, "", THING_TYPE_SHELLYPLUS1L), //
|
||||
Arguments.of("SNSW-002P16EU", "relay", THING_TYPE_SHELLYPLUS2PM_RELAY), //
|
||||
Arguments.of("SNSW-002P16EU", "roller", THING_TYPE_SHELLYPLUS2PM_ROLLER), //
|
||||
Arguments.of("SNSW-102P16EU", "relay", THING_TYPE_SHELLYPLUS2PM_RELAY), //
|
||||
@@ -153,6 +154,8 @@ public class ShellyThingCreatorTest {
|
||||
Arguments.of("S3SW-002P16EU", "roller", THING_TYPE_SHELLYPLUS2PM_ROLLER), //
|
||||
Arguments.of("S4SW-002P16EU", "relay", THING_TYPE_SHELLYPLUS2PM_RELAY), //
|
||||
Arguments.of("S4SW-002P16EU", "roller", THING_TYPE_SHELLYPLUS2PM_ROLLER), //
|
||||
Arguments.of(SHELLYDT_PLUS2L, "", THING_TYPE_SHELLYPLUS2L), //
|
||||
Arguments.of(SHELLYDT_PLUSSHUTTER, "", THING_TYPE_SHELLYPLUSSHUTTER), //
|
||||
Arguments.of(SHELLYDT_PLUSPLUGS, "", THING_TYPE_SHELLYPLUSPLUGS), //
|
||||
Arguments.of(SHELLYDT_PLUSPLUGSG3, "", THING_TYPE_SHELLYPLUSPLUGS), //
|
||||
Arguments.of(SHELLYDT_PLUSPLUGIT, "", THING_TYPE_SHELLYPLUSPLUGS), //
|
||||
@@ -170,6 +173,8 @@ public class ShellyThingCreatorTest {
|
||||
Arguments.of(SHELLYDT_PLUSDIMMERUS, "", THING_TYPE_SHELLYPLUSDIMMERUS), //
|
||||
Arguments.of(SHELLYDT_PLUSDIMMER10V, "", THING_TYPE_SHELLYPLUSDIMMER10V), //
|
||||
Arguments.of(SHELLYDT_PLUSDIMMER0110VG3, "", THING_TYPE_SHELLYPLUSDIMMER10V), //
|
||||
Arguments.of(SHELLYDT_PLUSEM, "", THING_TYPE_SHELLYPLUSEM), //
|
||||
Arguments.of(SHELLYDT_PLUS3EM63, "", THING_TYPE_SHELLYPLUS3EM63), //
|
||||
|
||||
// Plus Mini Series
|
||||
Arguments.of(SHELLYDT_MINI_1, "", THING_TYPE_SHELLYMINI_1), //
|
||||
|
||||
Reference in New Issue
Block a user