diff --git a/bundles/org.openhab.binding.shelly/README.md b/bundles/org.openhab.binding.shelly/README.md
index d007aecebb8..813f60237d9 100644
--- a/bundles/org.openhab.binding.shelly/README.md
+++ b/bundles/org.openhab.binding.shelly/README.md
@@ -96,12 +96,12 @@ The binding provides the same feature set across all devices as good as possible
| 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
@@ -402,14 +402,18 @@ A new alarm will be triggered on a new condition or every 5 minutes if the condi
### 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
diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoIoTVersion2.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoIoTVersion2.java
index 7e1eef50ff4..fc295303695 100644
--- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoIoTVersion2.java
+++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoIoTVersion2.java
@@ -142,6 +142,9 @@ public class Shelly1CoIoTVersion2 extends Shelly1CoIoTProtocol implements Shelly
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
diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoapHandler.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoapHandler.java
index d933736be94..9ab5e29c39b 100644
--- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoapHandler.java
+++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api1/Shelly1CoapHandler.java
@@ -359,16 +359,12 @@ public class Shelly1CoapHandler implements Shelly1CoapListener {
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) {
diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api2/Shelly2ApiClient.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api2/Shelly2ApiClient.java
index 651fb195302..6ca8d4c11a2 100644
--- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api2/Shelly2ApiClient.java
+++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/api2/Shelly2ApiClient.java
@@ -239,9 +239,6 @@ public class Shelly2ApiClient extends ShellyHttpClient {
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();
diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java
index a413fc59aa2..4e0a4a1f141 100755
--- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java
+++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java
@@ -293,8 +293,10 @@ public abstract class ShellyBaseHandler extends BaseThingHandler
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
@@ -513,7 +515,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler
}
private double getNumber(Command command) {
- if (command instanceof QuantityType quantityCommand) {
+ if (command instanceof QuantityType> quantityCommand) {
return quantityCommand.doubleValue();
}
if (command instanceof DecimalType decimalCommand) {
@@ -1279,7 +1281,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler
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) {
diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyComponents.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyComponents.java
index 6f862adc463..fe6e70a5cd9 100644
--- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyComponents.java
+++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyComponents.java
@@ -534,7 +534,7 @@ public class ShellyComponents {
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;
diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java
index e54b5f2693e..5a4a8267667 100644
--- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java
+++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java
@@ -239,7 +239,7 @@ public class ShellyUtils {
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");
diff --git a/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/i18n/shelly.properties b/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/i18n/shelly.properties
index 2c2801bfcbc..94797887498 100644
--- a/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/i18n/shelly.properties
+++ b/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/i18n/shelly.properties
@@ -246,7 +246,7 @@ channel-type.shelly.temperature3.description = Temperature of external Sensor #3
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
diff --git a/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/thing/shellyGen2_sensor.xml b/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/thing/shellyGen2_sensor.xml
index 482379537fe..1d84911bed8 100644
--- a/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/thing/shellyGen2_sensor.xml
+++ b/bundles/org.openhab.binding.shelly/src/main/resources/OH-INF/thing/shellyGen2_sensor.xml
@@ -38,6 +38,7 @@
Sensor
+