| shellywalldisplay | Shelly Plus Wall Display | SAWD-0A1XX10EU1 |
### Generation 2 Plus Mini series
+
| thing-type | Model | Vendor ID |
| -------------------- | -------------------------------------------------------- | ---------------------------- |
-| shellymini1 | Shelly Plus 1 Mini with 1x relay | SNSW-001X16EU |
-| shellymini1pm | Shelly Plus 1PM Mini with 1x relay + power meter | SNPM-001PCEU16 |
-| shellyminipm | Shelly Plus PM Mini with 1x power meter | SNSW-001P8EU |
-
+| shellymini1 | Shelly Plus 1 Mini with 1x relay | SNSW-001X8EU |
+| shellymini1pm | Shelly Plus 1PM Mini with 1x relay + power meter | SNSW-001P8EU |
+| shellyminipm | Shelly Plus PM Mini with 1x power meter | SNPM-001PCEU16 |
### Generation 2 Pro series
### Non-battery powered devices
-| Event Type | Description |
-| ----------- | --------------------------------------------------------------------------------- |
-| RESTARTED | The device has been restarted. This could be an indicator for a firmware problem. |
-| WEAK_SIGNAL | An alarm is triggered when RSSI is < -80, which indicates an unstable connection. |
-| OVER_TEMP | The device is overheating, check installation and housing. |
-| OVER_LOAD | An over load condition has been detected, e.g. from the roller motor. |
-| OVER_POWER | Maximum allowed power was exceeded. The relay was turned off. |
-| LOAD_ERROR | Device reported a load problem, so far Dimmer only. |
+| Event Type | Description |
+| ------------ | --------------------------------------------------------------------------------- |
+| RESTARTED | The device has been restarted. This could be an indicator for a firmware problem. |
+| WEAK_SIGNAL | An alarm is triggered when RSSI is < -80, which indicates an unstable connection. |
+| OVERTEMP | The device is overheating, check installation and housing. |
+| OVERLOAD | An over load condition has been detected, e.g. from the roller motor. |
+| OVERPOWER | Maximum allowed power was exceeded. The relay was turned off. |
+| LOAD_ERROR | Device reported a load problem. |
+| SENSOR_ERROR | Device reported a sensor problem. |
+| VALVE_ERROR | Device reported a problem with the valve. |
+| VIBRATION | Device reported vibration. |
+| LOW_BATTERY | Device reported low battery. |
### Sensors
processed = true;
switch (sen.id) {
+ case "6": // 3EM: neutralCurrent
+ break;
+
case "3106": // L, luminosity, lux, U32, -1
case "3110": // S, luminosityLevel, dark/twilight/bright, "unknown"=unknown
case "3111": // B, battery, 0-100%, unknown -1
valid &= addSensor(descr.sen.get(i));
}
}
- coiot.completeMissingSensorDefinition(sensorMap);
-
if (!valid) {
- logger.debug(
- "{}: Incompatible device description detected for CoIoT version {} (id length mismatch), discarding!",
- thingName, coiot.getVersion());
-
- discover();
- return;
+ logger.debug("{}: WARNING: Incompatible device description detected for CoIoT version {}!", thingName,
+ coiot.getVersion());
}
+
+ coiot.completeMissingSensorDefinition(sensorMap); // fix incomplete format
} catch (JsonSyntaxException e) {
logger.warn("{}: Unable to parse CoAP Device Description! JSON={}", thingName, payload);
} catch (NullPointerException | IllegalArgumentException e) {
int duration = (int) (now() - rs.timerStartetAt);
sr.timerRemaining = duration;
}
- if (status.tmp == null) {
- status.tmp = new ShellySensorTmp();
- }
if (rs.temperature != null) {
if (status.tmp == null) {
status.tmp = new ShellySensorTmp();
return false;
}
- updateStatus(ThingStatus.UNKNOWN, ThingStatusDetail.CONFIGURATION_PENDING,
- messages.get("status.unknown.initializing"));
+ if (profile.alwaysOn || !profile.isInitialized()) {
+ updateStatus(ThingStatus.UNKNOWN, ThingStatusDetail.CONFIGURATION_PENDING,
+ messages.get("status.unknown.initializing"));
+ }
// Gen 1 only: Setup CoAP listener to we get the CoAP message, which triggers initialization even the thing
// could not be fully initialized here. In this case the CoAP messages triggers auto-initialization (like the
}
private double getNumber(Command command) {
- if (command instanceof QuantityType quantityCommand) {
+ if (command instanceof QuantityType<?> quantityCommand) {
return quantityCommand.doubleValue();
}
if (command instanceof DecimalType decimalCommand) {
public double getChannelDouble(String group, String channel) {
State value = getChannelValue(group, channel);
if (value != UnDefType.NULL) {
- if (value instanceof QuantityType quantityCommand) {
+ if (value instanceof QuantityType<?> quantityCommand) {
return quantityCommand.toBigDecimal().doubleValue();
}
if (value instanceof DecimalType decimalCommand) {
updated |= thingHandler.updateInputs(status);
if (updated) {
- thingHandler.updateChannel(profile.getControlGroup(0), CHANNEL_LAST_UPDATE, getTimestamp());
+ thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_LAST_UPDATE, getTimestamp());
}
}
return updated;
if (command instanceof DecimalType decimalCommand) {
return decimalCommand.doubleValue();
}
- if (command instanceof QuantityType quantityCommand) {
+ if (command instanceof QuantityType<?> quantityCommand) {
return quantityCommand.doubleValue();
}
throw new IllegalArgumentException("Unable to convert number");
channel-type.shelly.temperature4.label = Temperature 4
channel-type.shelly.temperature4.description = Temperature of external Sensor #4
channel-type.shelly.temperature5.label = Temperature 5
-channel-type.shelly.temperature6.description = Temperature of external Sensor #5
+channel-type.shelly.temperature5.description = Temperature of external Sensor #5
channel-type.shelly.targetTemp.label = Target Temperature
channel-type.shelly.targetTemp.description = Target Temperature in °C to be reached in auto-temperature mode
channel-type.shelly.humidity.label = Humidity
<category>Sensor</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
+ <channel-group id="relay" typeId="relayChannel"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>