[shelly] TRV+Motion2 support, various fixes & enhancements (#12325)

* TRV support, various fixes & enhancements

Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>

* #12236 fixed

Signed-off-by: Markus Michels <markus7017@gmail.com> (github: markus7017)
Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>

* TRV support competed

Signed-off-by: Markus Michels <markus7017@gmail.com> (github: markus7017)
Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>

* Complete TRV support

Signed-off-by: Markus Michels <markus7017@gmail.com> (github: markus7017)
Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>

* - TRV polling optimized

Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>

* # WARNING: head commit changed in the meantime

- Shelly Motion 2 support
- TRV polling optimized
- channel creatiom of ledStatusLed fixed if no ledPowerLed was created
- Handling of sensor.status_error fixed when = no error (0/"0")
- channel timerActive was missing for Dimmer 1/2
- Motion timestamp channels were 1h off
- exception with data format while initializing a bulb fixed
- README updated

Signed-off-by: Markus Michels <markus7017@gmail.com> (github: markus7017)
Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>

* - added new TRV value boost minute, polling remnoved on valve position
changes (req. latest firmware)
- fix: don't create accu channels for roller
- fix: fix Id for some status messages

Signed-off-by: Markus Michels <markus7017@gmail.com> (github: markus7017)
Signed-off-by: Markus Michels <markus7017@gmail.com>

* log types revised

Signed-off-by: Markus Michels <markus7017@gmail.com> (github: markus7017)
Signed-off-by: Markus Michels <markus7017@gmail.com>
This commit is contained in:
Markus Michels
2022-04-18 19:32:16 +02:00
committed by GitHub
parent 2d1b337987
commit 532a03375a
25 changed files with 2597 additions and 688 deletions

View File

@@ -67,8 +67,10 @@ public class ShellyBindingConstants {
public static final String THING_TYPE_SHELLYDOORWIN2_STR = "shellydw2";
public static final String THING_TYPE_SHELLYEYE_STR = "shellyseye";
public static final String THING_TYPE_SHELLYSENSE_STR = "shellysense";
public static final String THING_TYPE_SHELLYTRV_STR = "shellytrv";
public static final String THING_TYPE_SHELLYMOTION_STR = "shellymotion";
public static final String THING_TYPE_SHELLYBUTTON1_STR = "shellybutton1";
public static final String THING_TYPE_SHELLYBUTTON2_STR = "shellybutton2";
public static final String THING_TYPE_SHELLYUNI_STR = "shellyuni";
public static final String THING_TYPE_SHELLYPROTECTED_STR = "shellydevice";
public static final String THING_TYPE_SHELLYUNKNOWN_STR = "shellyunknown";
@@ -90,6 +92,7 @@ public class ShellyBindingConstants {
public static final String SHELLYDT_DW2 = "SHDW-2";
public static final String SHELLYDT_SENSE = "SHSEN-1";
public static final String SHELLYDT_MOTION = "SHMOS-01";
public static final String SHELLYDT_MOTION2 = "SHMOS-02";
public static final String SHELLYDT_GAS = "SHGS-1";
public static final String SHELLYDT_DIMMER = "SHDM-1";
public static final String SHELLYDT_DIMMER2 = "SHDM-2";
@@ -100,7 +103,9 @@ public class ShellyBindingConstants {
public static final String SHELLYDT_VINTAGE = "SHVIN-1";
public static final String SHELLYDT_RGBW2 = "SHRGBW2";
public static final String SHELLYDT_BUTTON1 = "SHBTN-1";
public static final String SHELLYDT_BUTTON2 = "SHBTN-2";
public static final String SHELLYDT_UNI = "SHUNI-1";
public static final String SHELLYDT_TRV = "SHTRV-01";
// List of all Thing Type UIDs
public static final ThingTypeUID THING_TYPE_SHELLY1 = new ThingTypeUID(BINDING_ID, THING_TYPE_SHELLY1_STR);
@@ -142,8 +147,11 @@ public class ShellyBindingConstants {
THING_TYPE_SHELLYDOORWIN_STR);
public static final ThingTypeUID THING_TYPE_SHELLYDOORWIN2 = new ThingTypeUID(BINDING_ID,
THING_TYPE_SHELLYDOORWIN2_STR);
public static final ThingTypeUID THING_TYPE_SHELLYTRV = new ThingTypeUID(BINDING_ID, THING_TYPE_SHELLYTRV_STR);
public static final ThingTypeUID THING_TYPE_SHELLYBUTTON1 = new ThingTypeUID(BINDING_ID,
THING_TYPE_SHELLYBUTTON1_STR);
public static final ThingTypeUID THING_TYPE_SHELLYBUTTON2 = new ThingTypeUID(BINDING_ID,
THING_TYPE_SHELLYBUTTON2_STR);
public static final ThingTypeUID THING_TYPE_SHELLYEYE = new ThingTypeUID(BINDING_ID, THING_TYPE_SHELLYEYE_STR);
public static final ThingTypeUID THING_TYPE_SHELLMOTION = new ThingTypeUID(BINDING_ID, THING_TYPE_SHELLYMOTION_STR);
public static final ThingTypeUID THING_TYPE_SHELLYRGBW2_COLOR = new ThingTypeUID(BINDING_ID,
@@ -162,9 +170,10 @@ public class ShellyBindingConstants {
THING_TYPE_SHELLYPLUGS, THING_TYPE_SHELLYPLUGU1, THING_TYPE_SHELLYUNI, THING_TYPE_SHELLYDIMMER,
THING_TYPE_SHELLYDIMMER2, THING_TYPE_SHELLYIX3, THING_TYPE_SHELLYBULB, THING_TYPE_SHELLYDUO,
THING_TYPE_SHELLYVINTAGE, THING_TYPE_SHELLYDUORGBW, THING_TYPE_SHELLYRGBW2_COLOR,
THING_TYPE_SHELLYRGBW2_WHITE, THING_TYPE_SHELLYHT, THING_TYPE_SHELLYSENSE, THING_TYPE_SHELLYEYE,
THING_TYPE_SHELLYSMOKE, THING_TYPE_SHELLYGAS, THING_TYPE_SHELLYFLOOD, THING_TYPE_SHELLYDOORWIN,
THING_TYPE_SHELLYDOORWIN2, THING_TYPE_SHELLYBUTTON1, THING_TYPE_SHELLMOTION,
THING_TYPE_SHELLYRGBW2_WHITE, THING_TYPE_SHELLYHT, THING_TYPE_SHELLYTRV, THING_TYPE_SHELLYSENSE,
THING_TYPE_SHELLYEYE, THING_TYPE_SHELLYSMOKE, THING_TYPE_SHELLYGAS, THING_TYPE_SHELLYFLOOD,
THING_TYPE_SHELLYDOORWIN, THING_TYPE_SHELLYDOORWIN2, THING_TYPE_SHELLYBUTTON1,
THING_TYPE_SHELLYBUTTON2, THING_TYPE_SHELLMOTION, THING_TYPE_SHELLMOTION,
THING_TYPE_SHELLYPROTECTED, THING_TYPE_SHELLYUNKNOWN).collect(Collectors.toSet()));
// Thing Configuration Properties
@@ -242,23 +251,30 @@ public class ShellyBindingConstants {
public static final String CHANNEL_SENSOR_TILT = "tilt";
public static final String CHANNEL_SENSOR_FLOOD = "flood";
public static final String CHANNEL_SENSOR_SMOKE = "smoke";
public static final String CHANNEL_SENSOR_CONTACT = "state";
public static final String CHANNEL_SENSOR_STATE = "state";
public static final String CHANNEL_SENSOR_VALVE = "valve";
public static final String CHANNEL_SENSOR_SSTATE = "status"; // Shelly Gas
public static final String CHANNEL_SENSOR_ALARM_STATE = "alarmState";
public static final String CHANNEL_SENSOR_MOTION_ACT = "motionActive";
public static final String CHANNEL_SENSOR_MOTION = "motion";
public static final String CHANNEL_SENSOR_MOTION_TS = "motionTimestamp";
public static final String CHANNEL_SENSOR_SLEEPTIME = "sensorSleepTime";
public static final String CHANNEL_SENSOR_ALARM_STATE = "alarmState";
public static final String CHANNEL_SENSOR_ERROR = "lastError";
public static final String CHANNEL_CONTROL_SETTEMP = "targetTemp"; // Shelly TRV: target temp
public static final String CHANNEL_CONTROL_POSITION = "position"; // Shelly TRV: Valve position
public static final String CHANNEL_CONTROL_MODE = "mode"; // Shelly TRV
public static final String CHANNEL_CONTROL_PROFILE = "profile"; // Shelly TRV
public static final String CHANNEL_CONTROL_BCONTROL = "boost"; // Shelly TRV
public static final String CHANNEL_CONTROL_BTIMER = "boostTimer"; // Shelly TRV
// External sensors for Shelly1/1PM
public static final String CHANNEL_ESENDOR_TEMP1 = CHANNEL_SENSOR_TEMP + "1";
public static final String CHANNEL_ESENDOR_TEMP2 = CHANNEL_SENSOR_TEMP + "2";
public static final String CHANNEL_ESENDOR_TEMP3 = CHANNEL_SENSOR_TEMP + "3";
public static final String CHANNEL_ESENDOR_HUMIDITY = CHANNEL_SENSOR_HUM;
public static final String CHANNEL_GROUP_SENSE_CONTROL = "control";
public static final String CHANNEL_GROUP_CONTROL = "control";
public static final String CHANNEL_SENSE_KEY = "key";
public static final String CHANNEL_GROUP_BATTERY = "battery";
@@ -302,6 +318,8 @@ public class ShellyBindingConstants {
public static final String CHANNEL_DEVST_UPDATE = "updateAvailable";
public static final String CHANNEL_DEVST_SELFTTEST = "selfTest";
public static final String CHANNEL_DEVST_VOLTAGE = "supplyVoltage";
public static final String CHANNEL_DEVST_CALIBRATED = "calibrated";
public static final String CHANNEL_DEVST_SCHEDULE = "schedule";
public static final String CHANNEL_LED_STATUS_DISABLE = "statusLed";
public static final String CHANNEL_LED_POWER_DISABLE = "powerLed";
@@ -336,6 +354,7 @@ public class ShellyBindingConstants {
public static final String ALARM_TYPE_LOADERR = "LOAD_ERROR";
public static final String ALARM_TYPE_SENSOR_ERROR = "SENSOR_ERROR";
public static final String ALARM_TYPE_LOW_BATTERY = "LOW_BATTERY";
public static final String ALARM_TYPE_VALVE_ERROR = "VALVE_ERROR";
public static final String EVENT_TYPE_VIBRATION = "VIBRATION";
// Event types
@@ -358,7 +377,7 @@ public class ShellyBindingConstants {
public static final int DIGITS_LUX = 0;
public static final int DIGITS_PERCENT = 1;
public static final int SHELLY_API_TIMEOUT_MS = 5000;
public static final int SHELLY_API_TIMEOUT_MS = 15000;
public static final int UPDATE_STATUS_INTERVAL_SECONDS = 3; // check for updates every x sec
public static final int UPDATE_SKIP_COUNT = 20; // update every x triggers or when a key was pressed
public static final int UPDATE_MIN_DELAY = 15;// update every x triggers or when a key was pressed

View File

@@ -101,6 +101,9 @@ public class ShellyHandlerFactory extends BaseThingHandlerFactory {
logger.debug("Using OH HTTP port {}", httpPort);
this.coapServer = new ShellyCoapServer();
// Promote Shelly Manager usage
logger.info("{}", messages.get("status.managerstarted", localIP, httpPort));
}
@Override

View File

@@ -55,6 +55,13 @@ public class ShellyApiJsonDTO {
public static final String SHELLY_URL_SETTINGS_DIMMER = "/settings/light";
// Wakeup reasons
public static final String SHELLY_WAKEUPT_SENSOR = "SENSOR"; // new sensordata
public static final String SHELLY_WAKEUPT_PERIODIC = "PERIODIC"; // periodic wakeup
public static final String SHELLY_WAKEUPT_BUTTON = "BUTTON"; // button pressed
public static final String SHELLY_WAKEUPT_POWERON = "POWERON"; // device powered up
public static final String SHELLY_WAKEUPT_UNKNOWN = "UNKNOWN"; // other event
//
// Action URLs according to the device type
//
@@ -230,6 +237,13 @@ public class ShellyApiJsonDTO {
// Motion
public static final int SHELLY_MOTION_SLEEPTIME_OFFSET = 3; // we need to substract and offset
// TRV
public static final int SHELLY_TRV_MIN_TEMP = 5; // < 5: means: lowest (valve fully closed)
public static final int SHELLY_TRV_MAX_TEMP = 30; // > 30: means: highest (valve fully open)
public static final String SHELLY_TRV_MODE_MANUAL = "manual";
public static final String SHELLY_TRV_MODE_AUTO = "automatic";
// CoIoT Multicast setting
public static final String SHELLY_COIOT_MCAST = "mcast";
@@ -574,6 +588,7 @@ public class ShellyApiJsonDTO {
public String mode;
@SerializedName("max_power")
public Double maxPower;
public Boolean calibrated;
public ArrayList<ShellySettingsRelay> relays;
public Double voltage; // AC voltage for Shelly 2.5
@@ -584,6 +599,8 @@ public class ShellyApiJsonDTO {
public ArrayList<ShellySettingsEMeter> emeters;
public ArrayList<ShellySettingsInput> inputs; // ix3
public ArrayList<ShellyThermnostat> thermostats; // TRV
@SerializedName("temperature_units")
public String temperatureUnits; // Either'C'or'F'
@@ -699,6 +716,10 @@ public class ShellyApiJsonDTO {
public Boolean loaderror;
public Boolean overload;
// Shelly TRV
public Boolean calibrated;
public ArrayList<ShellyThermnostat> thermostats;
public ShellySettingsUpdate update;
@SerializedName("ram_total")
public Long ramTotal;
@@ -754,6 +775,9 @@ public class ShellyApiJsonDTO {
public Boolean ison; // Whether output channel is on or off
public String mode; // color or white - valid only for Bulb and RGBW2 even Dimmer returns it also
public Integer brightness; // brightness: 0.100%
@SerializedName("has_timer")
public Boolean hasTimer;
}
public static class ShellyStatusRelay {
@@ -828,6 +852,34 @@ public class ShellyApiJsonDTO {
public String unit;
}
// Shelly TRV
public class ShellyThermnostat {
public class ShellyThermTargetTemp {
public Boolean enabled;
public Double value;
public String unit;
}
public class ShellyThermTemp {
public Double value;
public String units;
@SerializedName("is_valid")
public Boolean isValid;
}
public Double pos;
@SerializedName("target_t")
public ShellyThermTargetTemp targetTemp;
public Boolean schedule;
@SerializedName("schedule_profile")
public Integer profile;
@SerializedName("schedule_profile_names")
public String[] profileNames;
public ShellyThermTemp tmp;
@SerializedName("boost_minutes")
public Integer boostMinutes;
}
public static class ShellyStatusSensor {
// https://shelly-api-docs.shelly.cloud/#h-amp-t-settings
public static class ShellySensorTmp {
@@ -931,7 +983,7 @@ public class ShellyApiJsonDTO {
public Boolean rainSensor; // Shelly Flood: true=in rain mode
public Boolean motion; // Shelly Sense: true=motion detected
public Boolean charger; // Shelly Sense: true=charger connected
public Boolean charger; // Shelly Sense, TRV: true=charger connected
@SerializedName("act_reasons")
public List<Object> actReasons; // HT/Smoke/Flood: list of reasons which woke up the device
@@ -953,6 +1005,10 @@ public class ShellyApiJsonDTO {
// Shelly UNI FW 1.9+
public ArrayList<ShellyADC> adcs;
// Shelly TRV
public Boolean calibrated;
public ArrayList<ShellyThermnostat> thermostats;
}
public static class ShellySettingsSmoke {

View File

@@ -93,6 +93,7 @@ public class ShellyDeviceProfile {
public boolean isDW = false; // true for Door Window sensor
public boolean isButton = false; // true for a Shelly Button 1
public boolean isIX3 = false; // true for a Shelly IX
public boolean isTRV = false; // true for a Shelly TRV
public int minTemp = 0; // Bulb/Duo: Min Light Temp
public int maxTemp = 0; // Bulb/Duo: Max Light Temp
@@ -154,7 +155,7 @@ public class ShellyDeviceProfile {
updatePeriod = getString(settings.sleepMode.unit).equalsIgnoreCase("m") ? settings.sleepMode.period * 60 // minutes
: settings.sleepMode.period * 3600; // hours
updatePeriod += 60; // give 1min extra
} else if ((settings.coiot != null) && (settings.coiot.updatePeriod != null)) {
} else if ((settings.coiot != null) && settings.coiot.updatePeriod != null && !isTRV) {
// Derive from CoAP update interval, usually 2*15+10s=40sec -> 70sec
updatePeriod = Math.max(UPDATE_SETTINGS_INTERVAL_SECONDS, 2 * getInteger(settings.coiot.updatePeriod)) + 10;
} else {
@@ -204,9 +205,10 @@ public class ShellyDeviceProfile {
isMotion = thingType.startsWith(THING_TYPE_SHELLYMOTION_STR);
isSense = thingType.equals(THING_TYPE_SHELLYSENSE_STR);
isIX3 = thingType.equals(THING_TYPE_SHELLYIX3_STR);
isButton = thingType.equals(THING_TYPE_SHELLYBUTTON1_STR);
isSensor = isHT || isFlood || isDW || isSmoke || isGas || isButton || isUNI || isMotion || isSense;
hasBattery = isHT || isFlood || isDW || isSmoke || isButton || isMotion;
isButton = thingType.equals(THING_TYPE_SHELLYBUTTON1_STR) || thingType.equals(THING_TYPE_SHELLYBUTTON2_STR);
isSensor = isHT || isFlood || isDW || isSmoke || isGas || isButton || isUNI || isMotion || isSense || isTRV;
hasBattery = isHT || isFlood || isDW || isSmoke || isButton || isMotion || isTRV;
isTRV = thingType.equals(THING_TYPE_SHELLYTRV_STR);
alwaysOn = !hasBattery || isMotion || isSense; // true means: device is reachable all the time (no sleep mode)
}

View File

@@ -199,8 +199,8 @@ public class ShellyHttpApi {
status.tmp.tC = status.tmp.units.equals(SHELLY_TEMP_CELSIUS) ? status.tmp.value
: ImperialUnits.FAHRENHEIT.getConverterTo(SIUnits.CELSIUS).convert(getDouble(status.tmp.value))
.doubleValue();
double f = SIUnits.CELSIUS.getConverterTo(ImperialUnits.FAHRENHEIT).convert(getDouble(status.tmp.value))
.doubleValue();
double f = (double) SIUnits.CELSIUS.getConverterTo(ImperialUnits.FAHRENHEIT)
.convert(getDouble(status.tmp.value));
status.tmp.tF = status.tmp.units.equals(SHELLY_TEMP_FAHRENHEIT) ? status.tmp.value : f;
}
if ((status.charger == null) && (profile.settings.externalPower != null)) {
@@ -225,6 +225,36 @@ public class ShellyHttpApi {
request(SHELLY_URL_SETTINGS + "?sleep_time=" + value);
}
public void setTemperature(int valveId, int value) throws ShellyApiException {
request("/thermostat/" + valveId + "?target_t_enabled=1&target_t=" + value);
}
public void setValveMode(int valveId, boolean auto) throws ShellyApiException {
String uri = "/settings/thermostat/" + valveId + "?target_t_enabled=" + (auto ? "1" : "0");
if (auto) {
uri = uri + "&target_t=" + getDouble(profile.settings.thermostats.get(0).targetTemp.value);
}
request(uri); // percentage to open the valve
}
public void setProfile(int valveId, int value) throws ShellyApiException {
String uri = "/settings/thermostat/" + valveId + "?";
request(uri + (value == 0 ? "schedule=0" : "schedule=1&schedule_profile=" + value));
}
public void setValvePosition(int valveId, double value) throws ShellyApiException {
request("/thermostat/" + valveId + "?pos=" + value); // percentage to open the valve
}
public void setBoostTime(int valveId, int value) throws ShellyApiException {
request("/settings/thermostat/" + valveId + "?boost_minutes=" + value);
}
public void startBoost(int valveId, int value) throws ShellyApiException {
int minutes = value != -1 ? value : getInteger(profile.settings.thermostats.get(0).boostMinutes);
request("/thermostat/" + valveId + "?boost_minutes=" + minutes);
}
public void setLedStatus(String ledName, Boolean value) throws ShellyApiException {
request(SHELLY_URL_SETTINGS + "?" + ledName + "=" + (value ? SHELLY_API_TRUE : SHELLY_API_FALSE));
}

View File

@@ -127,6 +127,8 @@ public class ShellyCoIoTProtocol {
s.value == 1 ? OnOffType.ON : OnOffType.OFF);
break;
case "vibration": // DW with FW1.6.5+
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_VIBRATION,
s.value == 1 ? OnOffType.ON : OnOffType.OFF);
if (s.value == 1) {
thingHandler.triggerChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_ALARM_STATE,
EVENT_TYPE_VIBRATION);
@@ -166,7 +168,8 @@ public class ShellyCoIoTProtocol {
ShellyColorUtils.toPercent((int) s.value, SHELLY_MIN_GAIN, SHELLY_MAX_GAIN));
break;
case "sensorerror":
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_ERROR, getStringType(s.valueStr));
String sensorError = s.valueStr != null ? getString(s.valueStr) : "" + s.value;
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_ERROR, getStringType(sensorError));
break;
default:
// Unknown
@@ -280,10 +283,10 @@ public class ShellyCoIoTProtocol {
} else if (profile.isSensor) {
// Sensor state
if (profile.isDW) { // Door Window has item type Contact
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_CONTACT,
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE,
s.value != 0 ? OpenClosedType.OPEN : OpenClosedType.CLOSED);
} else {
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_CONTACT,
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE,
s.value == 1 ? OnOffType.ON : OnOffType.OFF);
}
}

View File

@@ -36,6 +36,7 @@ import org.openhab.core.library.types.OpenClosedType;
import org.openhab.core.library.unit.SIUnits;
import org.openhab.core.library.unit.Units;
import org.openhab.core.types.State;
import org.openhab.core.types.UnDefType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -86,8 +87,53 @@ public class ShellyCoIoTVersion2 extends ShellyCoIoTProtocol implements ShellyCo
boolean processed = true;
double value = getDouble(s.value);
String reason = "";
if (profile.isTRV) {
// Special handling for TRV, because it uses duplicate ID values with different meanings
switch (sen.id) {
case "3101": // current temp
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_TEMP,
toQuantityType(value, DIGITS_TEMP, SIUnits.CELSIUS));
break;
case "3103": // target temp in C. 4/31, 999=unknown
updateChannel(updates, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_SETTEMP,
toQuantityType(value, DIGITS_TEMP, SIUnits.CELSIUS));
break;
case "3116": // S, valveError, 0/1
if (s.value == 1) {
thingHandler.postEvent(ALARM_TYPE_VALVE_ERROR, false);
}
break;
case "3117": // S, mode, 0-5 (0=disabled)
value = getDouble(s.value).intValue();
updateChannel(updates, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_PROFILE, getDecimal(value));
updateChannel(updates, CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_SCHEDULE, getOnOff(value > 0));
break;
case "3118": // Valve state
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE,
value != 0 ? OpenClosedType.OPEN : OpenClosedType.CLOSED);
break;
case "3121": // valvePos, Type=S, Range=0/100;
updateChannel(updates, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_POSITION,
s.value != -1 ? toQuantityType(getDouble(s.value), 0, Units.PERCENT) : UnDefType.UNDEF);
break;
case "3122": // boostMinutes
updateChannel(updates, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_BTIMER,
s.value != -1 ? toQuantityType(s.value, DIGITS_NONE, Units.MINUTE) : UnDefType.UNDEF);
break;
default:
processed = false;
}
} else {
processed = false;
}
if (processed) {
return true;
}
processed = true;
switch (sen.id) {
case "3103": // H, humidity, 0-100 percent, unknown 999
case "3106": // L, luminosity, lux, U32, -1
case "3110": // S, luminosityLevel, dark/twilight/bright, "unknown"=unknown
case "3111": // B, battery, 0-100%, unknown -1
@@ -121,7 +167,7 @@ public class ShellyCoIoTVersion2 extends ShellyCoIoTProtocol implements ShellyCo
updateChannel(updates, CHANNEL_GROUP_ROL_CONTROL, CHANNEL_ROL_CONTROL_POS,
toQuantityType((double) pos, Units.PERCENT));
break;
case "1105": // S, valvle, closed/opened/not_connected/failure/closing/opening/checking or unbknown
case "1105": // Gas: S, valve, closed/opened/not_connected/failure/closing/opening/checking or unknown
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_VALVE, getStringType(s.valueStr));
break;
@@ -150,13 +196,20 @@ public class ShellyCoIoTVersion2 extends ShellyCoIoTProtocol implements ShellyCo
if (idx >= 0) {
// H&T, Fllod, DW only have 1 channel, 1/1PM with Addon have up to to 3 sensors
String channel = profile.isSensor ? CHANNEL_SENSOR_TEMP : CHANNEL_SENSOR_TEMP + idx;
// Some devices report values = -999 or 99 during fw update
boolean valid = value > -50 && value < 90;
updateChannel(updates, CHANNEL_GROUP_SENSOR, channel,
toQuantityType(value, DIGITS_TEMP, SIUnits.CELSIUS));
valid ? toQuantityType(value, DIGITS_TEMP, SIUnits.CELSIUS) : UnDefType.UNDEF);
} else {
logger.debug("{}: Unable to get extSensorId {} from {}/{}", thingName, sen.id, sen.type, sen.desc);
}
break;
case "3104": // T, deviceTemp, Celsius -40/300; 999=unknown
if ("targetTemp".equalsIgnoreCase(sen.desc)) {
break; // target temp in F-> ignore
}
// sensor_0: T, internalTemp, F, 39/88, unknown 999
updateChannel(updates, CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_ITEMP,
toQuantityType(value, DIGITS_NONE, SIUnits.CELSIUS));
break;
@@ -172,7 +225,7 @@ public class ShellyCoIoTVersion2 extends ShellyCoIoTProtocol implements ShellyCo
break;
case "3108": // DW: S, dwIsOpened, 0/1, -1=unknown
if (value != -1) {
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_CONTACT,
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE,
value != 0 ? OpenClosedType.OPEN : OpenClosedType.CLOSED);
} else {
logger.debug("{}: Sensor error reported, check device, battery and installation", thingName);
@@ -302,29 +355,27 @@ public class ShellyCoIoTVersion2 extends ShellyCoIoTProtocol implements ShellyCo
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_MOTION,
value == 1 ? OnOffType.ON : OnOffType.OFF);
break;
case "3119": // Motion timestamp
case "3119": // Motion timestamp (timestamp os GMT, not adapted to the adapted timezone)
// {"I":3119,"T":"S","D":"timestamp","U":"s","R":["U32","-1"],"L":1},
if (s.value != 0) {
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_MOTION_TS,
getTimestamp(getString(profile.settings.timezone), (long) s.value));
getTimestamp(getString("GMT"), (long) s.value));
}
break;
case "3120": // motionActive
case "3120": // motionActive (timestamp os GMT, not adapted to the adapted timezone)
// {"I":3120,"T":"S","D":"motionActive","R":["0/1","-1"],"L":1},
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_MOTION_ACT,
getTimestamp(getString(profile.settings.timezone), (long) s.value));
getTimestamp("GMT", (long) s.value));
break;
case "6108": // A, gas, none/mild/heavy/test or unknown
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_ALARM_STATE, getStringType(s.valueStr));
break;
case "6110": // A, vibration, 0/1, -1=unknown
if (profile.isMotion) {
// handle as status
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_VIBRATION,
s.value == 1 ? OnOffType.ON : OnOffType.OFF);
} else if (s.value == 1) {
// handle as event
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_VIBRATION,
s.value == 1 ? OnOffType.ON : OnOffType.OFF);
if (s.value == 1) {
// post event
thingHandler.triggerChannel(CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_ALARM, EVENT_TYPE_VIBRATION);
}
break;

View File

@@ -525,7 +525,7 @@ public class ShellyCoapHandler implements ShellyCoapListener {
// Old firmware release are lacking various status values, which are not updated using CoIoT.
// In this case we keep a refresh so it gets polled using REST. Beginning with Firmware 1.6 most
// of the values are available
if ((!thingHandler.autoCoIoT && (thingHandler.scheduledUpdates <= 1))
if ((!thingHandler.autoCoIoT && (thingHandler.scheduledUpdates < 1))
|| (thingHandler.autoCoIoT && !profile.isLight && !profile.hasBattery)) {
thingHandler.requestUpdates(1, false);
}

View File

@@ -53,7 +53,13 @@ public class ShellyBindingConfiguration {
localIP = (String) e.getValue();
break;
case CONFIG_AUTOCOIOT:
autoCoIoT = (boolean) e.getValue();
Object value = e.getValue();
if (value instanceof String) {
// support config through shelly.cfg
autoCoIoT = ((String) value).equalsIgnoreCase("true");
} else {
autoCoIoT = (boolean) value;
}
break;
}

View File

@@ -51,8 +51,11 @@ public class ShellyThingCreator {
THING_TYPE_MAPPING.put(SHELLYDT_DIMMER2, THING_TYPE_SHELLYDIMMER2_STR);
THING_TYPE_MAPPING.put(SHELLYDT_IX3, THING_TYPE_SHELLYIX3_STR);
THING_TYPE_MAPPING.put(SHELLYDT_BUTTON1, THING_TYPE_SHELLYBUTTON1_STR);
THING_TYPE_MAPPING.put(SHELLYDT_BUTTON2, THING_TYPE_SHELLYBUTTON2_STR);
THING_TYPE_MAPPING.put(SHELLYDT_UNI, THING_TYPE_SHELLYUNI_STR);
THING_TYPE_MAPPING.put(SHELLYDT_HT, THING_TYPE_SHELLYHT_STR);
THING_TYPE_MAPPING.put(SHELLYDT_TRV, THING_TYPE_SHELLYTRV_STR);
THING_TYPE_MAPPING.put(SHELLYDT_MOTION, THING_TYPE_SHELLYMOTION_STR);
// mapping by thing type
THING_TYPE_MAPPING.put(THING_TYPE_SHELLY1_STR, THING_TYPE_SHELLY1_STR);
@@ -73,11 +76,13 @@ public class ShellyThingCreator {
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYSMOKE_STR, THING_TYPE_SHELLYSMOKE_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYGAS_STR, THING_TYPE_SHELLYGAS_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYFLOOD_STR, THING_TYPE_SHELLYFLOOD_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYTRV_STR, THING_TYPE_SHELLYTRV_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYDOORWIN_STR, THING_TYPE_SHELLYDOORWIN_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYDOORWIN2_STR, THING_TYPE_SHELLYDOORWIN2_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYSENSE_STR, THING_TYPE_SHELLYSENSE_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYEYE_STR, THING_TYPE_SHELLYEYE_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYBUTTON1_STR, THING_TYPE_SHELLYBUTTON1_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYBUTTON2_STR, THING_TYPE_SHELLYBUTTON2_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYUNI_STR, THING_TYPE_SHELLYUNI_STR);
THING_TYPE_MAPPING.put(THING_TYPE_SHELLYPROTECTED_STR, THING_TYPE_SHELLYPROTECTED_STR);

View File

@@ -270,7 +270,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
api.setCoIoTPeer(ourpeer);
logger.info("{}: CoIoT peer updated to {}", thingName, ourpeer);
} catch (ShellyApiException e) {
logger.debug("{}: Unable to set CoIoT peer: {}", thingName, e.toString());
logger.warn("{}: Unable to set CoIoT peer: {}", thingName, e.toString());
}
} else if (!devpeer.isEmpty() && !devpeer.equals(ourpeer)) {
logger.warn("{}: CoIoT peer in device settings does not point this to this host", thingName);
@@ -344,11 +344,40 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
case CHANNEL_SENSOR_SLEEPTIME:
logger.debug("{}: Set sensor sleep time to {}", thingName, command);
int value = ((DecimalType) command).intValue();
int value = (int) getNumber(command);
value = value > 0 ? Math.max(SHELLY_MOTION_SLEEPTIME_OFFSET, value - SHELLY_MOTION_SLEEPTIME_OFFSET)
: 0;
api.setSleepTime(value);
break;
case CHANNEL_CONTROL_PROFILE:
logger.debug("{}: Select profile {}", thingName, command);
int profile = (int) getNumber(command);
if (profile < 0 || profile > 5) {
logger.warn("{}: Invalid profile Id {} requested", thingName, profile);
break;
}
api.setProfile(0, profile);
break;
case CHANNEL_CONTROL_MODE:
logger.debug("{}: Set mode to {}", thingName, command);
api.setValveMode(0, SHELLY_TRV_MODE_AUTO.equalsIgnoreCase(command.toString()));
break;
case CHANNEL_CONTROL_SETTEMP:
logger.debug("{}: Set temperature to {}", thingName, command);
api.setTemperature(0, (int) getNumber(command));
break;
case CHANNEL_CONTROL_POSITION:
logger.debug("{}: Set position to {}", thingName, command);
api.setValvePosition(0, getNumber(command));
break;
case CHANNEL_CONTROL_BCONTROL:
logger.debug("{}: Set boost mode to {}", thingName, command);
api.startBoost(0, command == OnOffType.ON ? -1 : 0);
break;
case CHANNEL_CONTROL_BTIMER:
logger.debug("{}: Set boost timer to {}", thingName, command);
api.setBoostTime(0, (int) getNumber(command));
break;
default:
update = handleDeviceCommand(channelUID, command);
@@ -356,7 +385,8 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
}
restartWatchdog();
if (update && !autoCoIoT) {
if (update && !autoCoIoT && !isUpdateScheduled()) {
logger.debug("{}: Command process, request status update", thingName);
requestUpdates(1, false);
}
} catch (ShellyApiException e) {
@@ -375,6 +405,19 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
}
}
private double getNumber(Command command) {
if (command instanceof QuantityType) {
return ((QuantityType<?>) command).doubleValue();
}
if (command instanceof DecimalType) {
return ((DecimalType) command).doubleValue();
}
if (command instanceof Number) {
return ((Number) command).doubleValue();
}
throw new IllegalArgumentException("Invalid Number type for conversion: " + command);
}
/**
* Update device status and channels
*/
@@ -397,7 +440,8 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
initializeThing(); // may fire an exception if initialization failed
}
// Get profile, if refreshSettings == true reload settings from device
logger.trace("{}: Updating status (refreshSettings={})", thingName, refreshSettings);
logger.trace("{}: Updating status (scheduledUpdates={}, refreshSettings={})", thingName,
scheduledUpdates, refreshSettings);
ShellySettingsStatus status = api.getStatus();
boolean restarted = checkRestarted(status);
profile = getProfile(refreshSettings || restarted);
@@ -486,6 +530,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
updateStatus(ThingStatus.ONLINE);
// request 3 updates in a row (during the first 2+3*3 sec)
logger.debug("{}: Thing went online, request status update", thingName);
requestUpdates(profile.alwaysOn ? 3 : 1, !channelsCreated);
}
restartWatchdog();
@@ -494,7 +539,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
@Override
public void setThingOffline(ThingStatusDetail detail, String messageKey) {
if (!isThingOffline()) {
logger.info("{}: Thing goes OFFLINE: {}", thingName, messages.get(messageKey));
logger.debug("{}: Thing goes OFFLINE: {}", thingName, messages.get(messageKey));
updateStatus(ThingStatus.OFFLINE, detail, "@text/" + messageKey);
watchdog = 0;
channelsCreated = false; // check for new channels after devices gets re-initialized (e.g. new
@@ -591,22 +636,31 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
*
* @param alarm Alarm Message
*/
public void postEvent(String alarm, boolean force) {
public void postEvent(String event, boolean force) {
String channelId = mkChannelId(CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_ALARM);
State value = cache.getValue(channelId);
String lastAlarm = value != UnDefType.NULL ? value.toString() : "";
if (force || !lastAlarm.equals(alarm)
|| (lastAlarm.equals(alarm) && now() > stats.lastAlarmTs + HEALTH_CHECK_INTERVAL_SEC)) {
if (alarm.isEmpty() || alarm.equals(ALARM_TYPE_NONE)) {
cache.updateChannel(channelId, getStringType(alarm));
} else {
logger.info("{}: {}", thingName, messages.get("event.triggered", alarm));
triggerChannel(channelId, alarm);
cache.updateChannel(channelId, getStringType(alarm));
stats.lastAlarm = alarm;
stats.lastAlarmTs = now();
stats.alarms++;
if (force || !lastAlarm.equals(event)
|| (lastAlarm.equals(event) && now() > stats.lastAlarmTs + HEALTH_CHECK_INTERVAL_SEC)) {
switch (event) {
case "0": // DW2 1.8
case SHELLY_WAKEUPT_SENSOR:
case SHELLY_WAKEUPT_PERIODIC:
case SHELLY_WAKEUPT_BUTTON:
case SHELLY_WAKEUPT_POWERON:
case SHELLY_WAKEUPT_UNKNOWN:
logger.debug("{}: {}", thingName, messages.get("event.filtered", event));
case "":
case ALARM_TYPE_NONE:
break;
default:
logger.debug("{}: {}", thingName, messages.get("event.triggered", event));
triggerChannel(channelId, event);
cache.updateChannel(channelId, getStringType(event));
stats.lastAlarm = event;
stats.lastAlarmTs = now();
stats.alarms++;
}
}
}
@@ -699,7 +753,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
case SHELLY_EVENT_CLOSE: // DW 1.7
case SHELLY_EVENT_OPEN: // DW 1.7
updateChannel(group, CHANNEL_SENSOR_CONTACT,
updateChannel(group, CHANNEL_SENSOR_STATE,
event.equalsIgnoreCase(SHELLY_API_DWSTATE_OPEN) ? OpenClosedType.OPEN
: OpenClosedType.CLOSED);
break;
@@ -755,7 +809,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
config = getConfigAs(ShellyThingConfiguration.class);
if (config.deviceIp.isEmpty()) {
logger.info("{}: IP address for the device must not be empty", thingName); // may not set in .things file
logger.warn("{}: IP address for the device must not be empty", thingName); // may not set in .things file
return;
}
try {
@@ -813,7 +867,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
if (bindingConfig.autoCoIoT && ((version.compare(prf.fwVersion, SHELLY_API_MIN_FWCOIOT)) >= 0)
|| (prf.fwVersion.equalsIgnoreCase("production_test"))) {
if (!config.eventsCoIoT) {
logger.info("{}: {}", thingName, messages.get("versioncheck.autocoiot"));
logger.debug("{}: {}", thingName, messages.get("versioncheck.autocoiot"));
}
autoCoIoT = true;
}
@@ -837,7 +891,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
private boolean isAuthorizationFailed(ShellyApiResult result) {
if (result.isHttpAccessUnauthorized()) {
// If the device is password protected the API doesn't provide settings to the device settings
logger.info("{}: {}", thingName, messages.get("init.protected"));
logger.warn("{}: {}", thingName, messages.get("init.protected"));
setThingOffline(ThingStatusDetail.CONFIGURATION_ERROR, "offline.conf-error-access-denied");
changeThingType(THING_TYPE_SHELLYPROTECTED_STR, "");
return true;
@@ -908,6 +962,10 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
return false;
}
public boolean isUpdateScheduled() {
return scheduledUpdates > 0;
}
/**
* Map input states to channels
*
@@ -984,6 +1042,7 @@ public class ShellyBaseHandler extends BaseThingHandler implements ShellyDeviceL
String id = channelId.contains("$") ? substringBefore(channelId, "$") : channelId;
if (!stopping && isLinked(id)) {
updateState(id, value);
logger.debug("{}: Channel {} updated with {} (type {}).", thingName, channelId, value, value.getClass());
}
}

View File

@@ -17,12 +17,14 @@ import static org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.*;
import static org.openhab.binding.shelly.internal.util.ShellyUtils.*;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.shelly.internal.api.ShellyApiException;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellySettingsEMeter;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellySettingsMeter;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellySettingsStatus;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyStatusSensor;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyStatusSensor.ShellyADC;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyThermnostat;
import org.openhab.binding.shelly.internal.api.ShellyDeviceProfile;
import org.openhab.binding.shelly.internal.provider.ShellyChannelDefinitions;
import org.openhab.core.library.types.OnOffType;
@@ -69,6 +71,12 @@ public class ShellyComponents {
thingHandler.updateChannel(CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_UPDATE, getOnOff(status.hasUpdate));
ShellyDeviceProfile profile = thingHandler.getProfile();
if (profile.settings.calibrated != null) {
thingHandler.updateChannel(CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_CALIBRATED,
getOnOff(profile.settings.calibrated));
}
return false; // device status never triggers update
}
@@ -269,15 +277,16 @@ public class ShellyComponents {
if ((sdata.sensor != null) && sdata.sensor.isValid) {
// Shelly DW: “sensor”:{“state”:“open”, “is_valid”:true},
updated |= thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_CONTACT,
updated |= thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE,
getString(sdata.sensor.state).equalsIgnoreCase(SHELLY_API_DWSTATE_OPEN) ? OpenClosedType.OPEN
: OpenClosedType.CLOSED);
String sensorError = sdata.sensorError;
boolean changed = thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_ERROR,
getStringType(sdata.sensorError));
if (changed) {
getStringType(sensorError));
if (!"0".equals(sensorError) && changed) {
thingHandler.postEvent(getString(sdata.sensorError), true);
updated |= changed;
}
updated |= changed;
}
if ((sdata.tmp != null) && getBool(sdata.tmp.isValid)) {
thingHandler.logger.trace("{}: Updating temperature", thingHandler.thingName);
@@ -288,8 +297,41 @@ public class ShellyComponents {
// convert Fahrenheit to Celsius
temp = ImperialUnits.FAHRENHEIT.getConverterTo(SIUnits.CELSIUS).convert(temp).doubleValue();
}
temp = convertToC(temp, getString(sdata.tmp.units));
updated |= thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_TEMP,
toQuantityType(temp.doubleValue(), DIGITS_TEMP, SIUnits.CELSIUS));
} else if (status.thermostats != null && status.thermostats.size() > 0) {
// Shelly TRV
ShellyThermnostat t = status.thermostats.get(0);
ShellyThermnostat ps = profile.settings.thermostats.get(0);
int bminutes = getInteger(t.boostMinutes) > 0 ? getInteger(t.boostMinutes)
: getInteger(ps.boostMinutes);
updated |= thingHandler.updateChannel(CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_BCONTROL,
getOnOff(getInteger(t.boostMinutes) > 0));
updated |= thingHandler.updateChannel(CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_BTIMER,
toQuantityType((double) bminutes, DIGITS_NONE, Units.MINUTE));
updated |= thingHandler.updateChannel(CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_MODE,
getStringType(getBool(t.targetTemp.enabled) ? SHELLY_TRV_MODE_AUTO : SHELLY_TRV_MODE_MANUAL));
updated |= thingHandler.updateChannel(CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_PROFILE,
getDecimal(getBool(t.schedule) ? t.profile : 0));
updated |= thingHandler.updateChannel(CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_SCHEDULE,
getOnOff(t.schedule));
if (t.tmp != null) {
Double temp = convertToC(t.tmp.value, getString(t.tmp.units));
// Some devices report values = -999 or 99 during fw update
boolean valid = temp.intValue() > -50 && temp.intValue() < 90;
updated |= thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_TEMP,
toQuantityType(temp.doubleValue(), DIGITS_TEMP, SIUnits.CELSIUS));
temp = convertToC(t.targetTemp.value, getString(t.targetTemp.unit));
updated |= thingHandler.updateChannel(CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_SETTEMP,
toQuantityType(t.targetTemp.value, DIGITS_TEMP, SIUnits.CELSIUS));
}
if (t.pos != null) {
updated |= thingHandler.updateChannel(CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_POSITION,
t.pos != -1 ? toQuantityType(t.pos, DIGITS_NONE, Units.PERCENT) : UnDefType.UNDEF);
updated |= thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE,
getDouble(t.pos) > 0 ? OpenClosedType.OPEN : OpenClosedType.CLOSED);
}
}
if (sdata.hum != null) {
thingHandler.logger.trace("{}: Updating humidity", thingHandler.thingName);
@@ -382,4 +424,15 @@ public class ShellyComponents {
}
return updated;
}
private static Double convertToC(@Nullable Double temp, String unit) {
if (temp == null) {
return 0.0;
}
if (SHELLY_TEMP_FAHRENHEIT.equalsIgnoreCase(unit)) {
// convert Fahrenheit to Celsius
return ImperialUnits.FAHRENHEIT.getConverterTo(SIUnits.CELSIUS).convert(temp).doubleValue();
}
return temp;
}
}

View File

@@ -374,7 +374,7 @@ public class ShellyLightHandler extends ShellyBaseHandler {
updated |= updateChannel(colorGroup, CHANNEL_COLOR_BLUE, col.percentBlue);
updated |= updateChannel(colorGroup, CHANNEL_COLOR_WHITE, col.percentWhite);
updated |= updateChannel(colorGroup, CHANNEL_COLOR_GAIN, col.percentGain);
updated |= updateChannel(colorGroup, CHANNEL_COLOR_EFFECT, new DecimalType(col.effect));
updated |= updateChannel(colorGroup, CHANNEL_COLOR_EFFECT, getDecimal(col.effect));
setFullColor(colorGroup, col);
logger.trace("{}: update {}.color picker", thingName, colorGroup);

View File

@@ -35,6 +35,8 @@ import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellySettingsMe
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellySettingsRelay;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellySettingsRgbwLight;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellySettingsStatus;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyShortLightStatus;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyShortStatusRelay;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyStatusLightChannel;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyStatusRelay;
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyStatusSensor;
@@ -89,6 +91,7 @@ public class ShellyChannelDefinitions {
private static final String CHGR_STATUS = CHANNEL_GROUP_STATUS;
private static final String CHGR_METER = CHANNEL_GROUP_METER;
private static final String CHGR_SENSOR = CHANNEL_GROUP_SENSOR;
private static final String CHGR_CONTROL = CHANNEL_GROUP_CONTROL;
private static final String CHGR_BAT = CHANNEL_GROUP_BATTERY;
public static final String PREFIX_GROUP = "group-type." + BINDING_ID + ".";
@@ -117,6 +120,8 @@ public class ShellyChannelDefinitions {
.add(new ShellyChannel(m, CHGR_DEVST, CHANNEL_DEVST_UPTIME, "uptime", ITEMT_NUMBER))
.add(new ShellyChannel(m, CHGR_DEVST, CHANNEL_DEVST_HEARTBEAT, "heartBeat", ITEMT_DATETIME))
.add(new ShellyChannel(m, CHGR_DEVST, CHANNEL_DEVST_UPDATE, "updateAvailable", ITEMT_SWITCH))
.add(new ShellyChannel(m, CHGR_DEVST, CHANNEL_DEVST_CALIBRATED, "calibrated", ITEMT_SWITCH))
.add(new ShellyChannel(m, CHGR_DEVST, CHANNEL_DEVST_SCHEDULE, "deviceSchedule", ITEMT_SWITCH))
// Relay
.add(new ShellyChannel(m, CHGR_RELAY, CHANNEL_OUTPUT_NAME, "outputName", ITEMT_STRING))
@@ -174,7 +179,7 @@ public class ShellyChannelDefinitions {
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_LUX, "sensorLux", ITEMT_LUX))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_ILLUM, "sensorIllumination", ITEMT_STRING))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_VOLTAGE, "sensorADC", ITEMT_VOLT))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_CONTACT, "sensorContact", ITEMT_CONTACT))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_STATE, "sensorContact", ITEMT_CONTACT))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_SSTATE, "sensorState", ITEMT_STRING))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_TILT, "sensorTilt", ITEMT_ANGLE))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_MOTION, "sensorMotion", ITEMT_SWITCH))
@@ -187,8 +192,9 @@ public class ShellyChannelDefinitions {
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_VALVE, "sensorValve", ITEMT_STRING))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_ALARM_STATE, "alarmState", ITEMT_STRING))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_ERROR, "sensorError", ITEMT_STRING))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_SLEEPTIME, "sensorSleepTime", ITEMT_NUMBER))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_LAST_UPDATE, "lastUpdate", ITEMT_DATETIME))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSOR_SLEEPTIME, "sensorSleepTime", ITEMT_NUMBER))
.add(new ShellyChannel(m, CHGR_SENSOR, CHANNEL_SENSE_KEY, "senseKey", ITEMT_STRING)) // Sense
// Button/ix3
.add(new ShellyChannel(m, CHGR_STATUS, CHANNEL_INPUT, "inputState", ITEMT_SWITCH))
@@ -205,7 +211,15 @@ public class ShellyChannelDefinitions {
// Battery
.add(new ShellyChannel(m, CHGR_BAT, CHANNEL_SENSOR_BAT_LEVEL, "system:battery-level", ITEMT_PERCENT))
.add(new ShellyChannel(m, CHGR_BAT, CHANNEL_SENSOR_BAT_LOW, "system:low-battery", ITEMT_SWITCH));
.add(new ShellyChannel(m, CHGR_BAT, CHANNEL_SENSOR_BAT_LOW, "system:low-battery", ITEMT_SWITCH))
// TRV
.add(new ShellyChannel(m, CHGR_CONTROL, CHANNEL_CONTROL_POSITION, "sensorPosition", ITEMT_DIMMER))
.add(new ShellyChannel(m, CHGR_CONTROL, CHANNEL_CONTROL_MODE, "controlMode", ITEMT_STRING))
.add(new ShellyChannel(m, CHGR_CONTROL, CHANNEL_CONTROL_PROFILE, "controlProfile", ITEMT_NUMBER))
.add(new ShellyChannel(m, CHGR_CONTROL, CHANNEL_CONTROL_SETTEMP, "targetTemp", ITEMT_TEMP))
.add(new ShellyChannel(m, CHGR_CONTROL, CHANNEL_CONTROL_BCONTROL, "boostControl", ITEMT_SWITCH))
.add(new ShellyChannel(m, CHGR_CONTROL, CHANNEL_CONTROL_BTIMER, "boostTimer", ITEMT_TIME));
}
public static @Nullable ShellyChannel getDefinition(String channelName) throws IllegalArgumentException {
@@ -255,18 +269,22 @@ public class ShellyChannelDefinitions {
addChannel(thing, add, profile.settings.sleepTime != null, CHGR_SENSOR, CHANNEL_SENSOR_SLEEPTIME);
// If device has more than 1 meter the channel accumulatedWatts receives the accumulated value
boolean accuChannel = (((status.meters != null) && (status.meters.size() > 1) && !profile.isRoller
&& !profile.isRGBW2) || ((status.emeters != null && status.emeters.size() > 1)));
boolean accuChannel = !profile.isRoller && !profile.isRGBW2
&& (((status.meters != null) && (status.meters.size() > 1))
|| ((status.emeters != null && status.emeters.size() > 1)));
addChannel(thing, add, accuChannel, CHGR_DEVST, CHANNEL_DEVST_ACCUWATTS);
addChannel(thing, add, accuChannel, CHGR_DEVST, CHANNEL_DEVST_ACCUTOTAL);
addChannel(thing, add, accuChannel && (status.emeters != null), CHGR_DEVST, CHANNEL_DEVST_ACCURETURNED);
addChannel(thing, add, status.voltage != null || profile.settings.supplyVoltage != null, CHGR_DEVST,
CHANNEL_DEVST_VOLTAGE);
addChannel(thing, add,
!profile.isRoller && !profile.isRGBW2
&& (status.voltage != null || profile.settings.supplyVoltage != null),
CHGR_DEVST, CHANNEL_DEVST_VOLTAGE);
addChannel(thing, add, true, CHGR_DEVST, CHANNEL_DEVST_UPDATE);
addChannel(thing, add, true, CHGR_DEVST, CHANNEL_DEVST_UPTIME);
addChannel(thing, add, true, CHGR_DEVST, CHANNEL_DEVST_HEARTBEAT);
addChannel(thing, add, profile.settings.ledPowerDisable != null, CHGR_DEVST, CHANNEL_LED_POWER_DISABLE);
addChannel(thing, add, profile.settings.ledPowerDisable != null, CHGR_DEVST, CHANNEL_LED_STATUS_DISABLE); // WiFi
addChannel(thing, add, profile.settings.ledStatusDisable != null, CHGR_DEVST, CHANNEL_LED_STATUS_DISABLE); // WiFi
addChannel(thing, add, profile.settings.calibrated != null, CHGR_DEVST, CHANNEL_DEVST_CALIBRATED);
return add;
}
@@ -282,11 +300,14 @@ public class ShellyChannelDefinitions {
String group = profile.getControlGroup(idx);
ShellySettingsRelay rs = profile.settings.relays.get(idx);
ShellyShortStatusRelay rstatus = relay.relays.get(idx);
boolean timer = rs.hasTimer != null || (rstatus != null && rstatus.hasTimer != null); // Dimmer 1/2 have
// has_timer under /status
addChannel(thing, add, rs.ison != null, group, CHANNEL_OUTPUT);
addChannel(thing, add, rs.name != null, group, CHANNEL_OUTPUT_NAME);
addChannel(thing, add, rs.autoOn != null, group, CHANNEL_TIMER_AUTOON);
addChannel(thing, add, rs.autoOff != null, group, CHANNEL_TIMER_AUTOOFF);
addChannel(thing, add, rs.hasTimer != null, group, CHANNEL_TIMER_ACTIVE);
addChannel(thing, add, timer, group, CHANNEL_TIMER_ACTIVE);
// Shelly 1/1PM Addon
if (relay.extTemperature != null) {
@@ -312,6 +333,9 @@ public class ShellyChannelDefinitions {
ShellySettingsDimmer ds = profile.settings.dimmers.get(idx);
addChannel(thing, add, ds.autoOn != null, group, CHANNEL_TIMER_AUTOON);
addChannel(thing, add, ds.autoOff != null, group, CHANNEL_TIMER_AUTOOFF);
ShellyShortLightStatus dss = dstatus.dimmers.get(idx);
addChannel(thing, add, dss != null && dss.hasTimer != null, group, CHANNEL_TIMER_ACTIVE);
return add;
}
@@ -406,7 +430,8 @@ public class ShellyChannelDefinitions {
Map<String, Channel> newChannels = new LinkedHashMap<>();
// Sensor data
addChannel(thing, newChannels, sdata.tmp != null, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_TEMP);
addChannel(thing, newChannels, sdata.tmp != null || sdata.thermostats != null, CHANNEL_GROUP_SENSOR,
CHANNEL_SENSOR_TEMP);
addChannel(thing, newChannels, sdata.hum != null, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_HUM);
addChannel(thing, newChannels, sdata.lux != null, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_LUX);
addChannel(thing, newChannels, sdata.lux != null && sdata.lux.illumination != null, CHANNEL_GROUP_SENSOR,
@@ -419,7 +444,7 @@ public class ShellyChannelDefinitions {
sdata.motion != null || ((sdata.sensor != null) && (sdata.sensor.motion != null)), CHANNEL_GROUP_SENSOR,
CHANNEL_SENSOR_MOTION);
if (sdata.sensor != null) { // DW, Sense or Motion
addChannel(thing, newChannels, sdata.sensor.state != null, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_CONTACT); // DW/DW2
addChannel(thing, newChannels, sdata.sensor.state != null, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE); // DW/DW2
addChannel(thing, newChannels, sdata.sensor.motionActive != null, CHANNEL_GROUP_SENSOR, // Motion
CHANNEL_SENSOR_MOTION_ACT);
addChannel(thing, newChannels, sdata.sensor.motionTimestamp != null, CHANNEL_GROUP_SENSOR, // Motion
@@ -443,7 +468,23 @@ public class ShellyChannelDefinitions {
CHANNEL_SENSOR_ALARM_STATE);
}
addChannel(thing, newChannels, sdata.adcs != null, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_VOLTAGE); // UNI
// Sense
addChannel(thing, newChannels, profile.isSense, CHANNEL_GROUP_SENSOR, CHANNEL_SENSE_KEY);
// UNI
addChannel(thing, newChannels, sdata.adcs != null, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_VOLTAGE);
// TRV
if (profile.isTRV) {
addChannel(thing, newChannels, true, CHANNEL_GROUP_DEV_STATUS, CHANNEL_DEVST_SCHEDULE);
addChannel(thing, newChannels, true, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_SETTEMP);
addChannel(thing, newChannels, true, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_BCONTROL);
addChannel(thing, newChannels, true, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_BTIMER);
addChannel(thing, newChannels, true, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_POSITION);
addChannel(thing, newChannels, true, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_MODE);
addChannel(thing, newChannels, true, CHANNEL_GROUP_CONTROL, CHANNEL_CONTROL_PROFILE);
addChannel(thing, newChannels, true, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_STATE); // TRV
}
// Battery
if (sdata.bat != null) {
@@ -539,7 +580,7 @@ public class ShellyChannelDefinitions {
}
public boolean getReadyOnly() {
String attr = getChannelAttribute("advanced");
String attr = getChannelAttribute("readOnly");
return attr.isEmpty() ? false : Boolean.valueOf(attr);
}

View File

@@ -10,7 +10,6 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.openhab.binding.shelly.internal.util;
import static org.openhab.binding.shelly.internal.util.ShellyUtils.mkChannelId;
@@ -88,8 +87,6 @@ public class ShellyChannelCache {
} else {
channelData.replace(channelId, newValue);
}
logger.debug("{}: Channel {} updated with {} (type {}).", thingName, channelId, newValue,
newValue.getClass());
return true;
}
} catch (IllegalArgumentException e) {

View File

@@ -14,6 +14,7 @@ package org.openhab.binding.shelly.internal.util;
import static org.openhab.binding.shelly.internal.ShellyBindingConstants.*;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLEncoder;
@@ -88,7 +89,8 @@ public class ShellyUtils {
}
return obj;
} catch (JsonSyntaxException e) {
throw new ShellyApiException(PRE + className + "from JSON (syntax/format error): " + json, e);
throw new ShellyApiException(
PRE + className + "from JSON (syntax/format error: " + e.getMessage() + "): " + json, e);
} catch (RuntimeException e) {
throw new ShellyApiException(PRE + className + "from JSON: " + json, e);
}
@@ -270,7 +272,11 @@ public class ShellyUtils {
}
public static String urlEncode(String input) {
return URLEncoder.encode(input, StandardCharsets.UTF_8);
try {
return URLEncoder.encode(input, StandardCharsets.UTF_8.toString());
} catch (UnsupportedEncodingException e) {
return input;
}
}
public static Long now() {

View File

@@ -5,6 +5,11 @@
xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https://openhab.org/schemas/config-description-1.0.0.xsd">
<config-description uri="thing-type:shelly:relay">
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="userId" type="text" required="false">
<label>User</label>
<description>User ID for HTTP API access.</description>
@@ -14,11 +19,6 @@
<description>Password for HTTP API access.</description>
<context>password</context>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="eventsButton" type="boolean" required="false">
<label>Enable Button Events</label>
<description>True if the binding should register to get the Buttons Events.</description>
@@ -53,6 +53,11 @@
</config-description>
<config-description uri="thing-type:shelly:roller">
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="userId" type="text" required="false">
<label>User</label>
<description>User ID for HTTP API access.</description>
@@ -72,11 +77,6 @@
<description>Which position favorite should be used for DOWN (0=none, favorites are defined in the Shelly App)</description>
<default>0</default>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="eventsRoller" type="boolean" required="false">
<label>Enable Roller Events (Roller only)</label>
<description>True if the binding should register to get Roller Events.</description>
@@ -98,6 +98,11 @@
</parameter>
</config-description>
<config-description uri="thing-type:shelly:dimmer">
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="userId" type="text" required="false">
<label>User</label>
<description>User ID for HTTP API access.</description>
@@ -107,11 +112,6 @@
<description>Password for HTTP API access.</description>
<context>password</context>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="brightnessAutoOn" type="boolean" required="false">
<label>Brightness Auto-ON</label>
<description>true: Turn device ON if brightness above 0 is set; false: don't touch power status when brightness is
@@ -152,6 +152,11 @@
</config-description>
<config-description uri="thing-type:shelly:light">
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="userId" type="text" required="false">
<label>User</label>
<description>User ID for HTTP API access.</description>
@@ -161,11 +166,6 @@
<description>Password for HTTP API access.</description>
<context>password</context>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="brightnessAutoOn" type="boolean" required="false">
<label>Brightness Auto-ON</label>
<description>true: Turn device ON if brightness > 0 is set; false: don't touch power status when brightness is set.</description>
@@ -193,6 +193,11 @@
</config-description>
<config-description uri="thing-type:shelly:rgbw2">
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="userId" type="text" required="false">
<label>User</label>
<description>User ID for HTTP API access.</description>
@@ -202,11 +207,6 @@
<description>Password for HTTP API access.</description>
<context>password</context>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="brightnessAutoOn" type="boolean" required="false">
<label>Brightness Auto-ON</label>
<description>true: Turn device ON if brightness > 0 is set; false: don't touch power status when brightness is set.</description>
@@ -229,6 +229,11 @@
<config-description uri="thing-type:shelly:battery">
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="userId" type="text" required="false">
<label>User ID</label>
<description>User ID for HTTP API access.</description>
@@ -238,11 +243,6 @@
<description>Password for HTTP API access.</description>
<context>password</context>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="lowBattery" type="integer" required="false">
<label>Low Battery Threshold</label>
<description>Threshold for the battery level, alert will be signed when battery level is below. Default: 20%</description>
@@ -271,6 +271,11 @@
</config-description>
<config-description uri="thing-type:shelly:basic">
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="userId" type="text" required="false">
<label>User ID</label>
<description>User ID for HTTP API access.</description>
@@ -280,11 +285,6 @@
<description>Password for HTTP API access.</description>
<context>password</context>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>Device IP Address</label>
<description>IP-Address of the Shelly device.</description>
<context>network-address</context>
</parameter>
<parameter name="eventsSensorReport" type="boolean" required="false">
<label>Enable Sensor Events</label>
<description>True: Register event URL for sensor updates.</description>

View File

@@ -1,3 +1,6 @@
# binding
binding.shelly.name = Shelly Binding
binding.shelly.description = This binding integrates Shelly devices that can be controlled via WiFi.
binding.shelly.config.defaultUserId.label = Default UserId
binding.shelly.config.defaultUserId.description = This default user id will be used for device access if no one is specified in the thing configuration.
binding.shelly.config.defaultPassword.label = Default Password
@@ -8,69 +11,747 @@ binding.shelly.config.autoCoIoT.label = Auto-CoIoT
binding.shelly.config.autoCoIoT.description = If enabled CoIoT will be automatically used when the devices runs a firmware version 1.6 or newer; false: Use thing configuration to enabled/disable CoIoT events.
# Config status messages
config-status.error.missing-device-ip = IP address of the Shelly device is missing.
message.config-status.error.missing-device-ip = IP address of the Shelly device is missing.
message.config-status.error.missing-userid = No user ID in the Thing configuration
# Thing status descriptions
offline.conf-error-no-credentials = Device is password protected, but no credentials have been configured.
offline.conf-error-access-denied = Access denied, check user id and password.
offline.conf-error-wrong-mode = Device is no longer in the configured device mode {0}, required {1}. Delete the thing and re-discover the device.
offline.status-error-timeout = Device is not reachable (API timeout).
offline.status-error-unexpected-api-result = An unexpected API response. Please verify the logfile to get more detailed information.
offline.status-error-watchdog = Device is not responding, seems to be unavailable.
offline.status-error-restarted = The device has restarted and will be re-initialized.
offline.status-error-fwupgrade = Firmware upgrade in progress
message.offline.conf-error-no-credentials = Device is password protected, but no credentials have been configured.
message.offline.conf-error-access-denied = Access denied, check user id and password.
message.offline.conf-error-wrong-mode = Device is no longer in the configured device mode {0}, required {1}. Delete the thing and re-discover the device.
message.offline.status-error-timeout = Device is not reachable (API timeout).
message.offline.status-error-unexpected-api-result = An unexpected API response. Please verify the logfile to get more detailed information.
message.offline.status-error-watchdog = Device is not responding, seems to be unavailable.
message.offline.status-error-restarted = The device has restarted and will be re-initialized.
message.offline.status-error-fwupgrade = Firmware upgrade in progress
# General messages
message.versioncheck.failed = Unable to check firmware version: {0}
message.versioncheck.beta = Device is running a Beta version: {0}/{1}.
message.versioncheck.tooold = WARNING: Firmware might be too old, installed: {0}/{1}, required minimal {3}.
message.versioncheck.update = INFO: New firmware available: current version: {0}, new version: {1}
message.versioncheck.autocoiot = INFO: Firmware is full-filling the minimum version to auto-enable CoIoT
message.roller.calibrating = Device is not calibrated, use Shelly App to perform initial roller calibration.
message.init.noipaddress = Unable to detect local IP address. Please make sure that IPv4 is enabled for this interface and check openHAB Network Configuration.
message.init.protected = Device is password protected, enter correct credentials in thing configuration.
message.command.failed = ERROR: Unable to process command {0} for channel {1}
message.command.init = Thing not yet initialized, command {0} triggers initialization
message.status.unknown.initializing = Initializing or device in sleep mode.
message.statusupdate.failed = Unable to update status
message.status.managerstarted = Shelly Manager started at http(s)://{0}:{1}/shelly/manager"
message.event.triggered = Event triggered: {0}
message.event.filtered = Event filtered: {0}
message.coap.init.failed = Unable to start CoIoT: {0}
message.discovery.disabled = Device is marked as non-discoverable, will be skipped
message.discovery.protected = Device {0} reported 'Access defined' (missing userid/password or incorrect).
message.discovery.failed = Device discovery of device with IP address {0} failed: {1}
message.roller.calibrating = Device is not calibrated, use Shelly App to perform initial roller calibration.
message.roller.favmissing = Roller position favorites are not supported by installed firmware or not configured in the Shelly App
# Device
channel-type.shelly.deviceName.label = Device Name
channel-type.shelly.deviceName.description = Symbolic Device Name as configured in the Shelly App.
channel-type.shelly.sensorSleepTime.label = Sensor Sleep Time
channel-type.shelly.sensorSleepTime.description = The sensor will not send notifications and will not perform actions until the specified time expires. (0=disable)
# thing types - descriptions only
thing-type.shelly.shellydevice.description = A password protected or unknown device
thing-type.shelly.shellyunknown.description = This device is currently not supported
thing-type.shelly.shelly1.description = Shelly 1 (Single Relay Switch)
thing-type.shelly.shelly1l.description = Shelly 1L (Single Relay Switch, no Neutral required)
thing-type.shelly.shelly1pm.description = Shelly 1PM (Single Relay Switch with integrated Power Meter)
thing-type.shelly.shellyem.description = Shelly EM (with integrated Power Meter)
thing-type.shelly.shellyem3.description = Shelly 3EM (with 3 integrated Power Meters and a relay)
thing-type.shelly.shelly2-relay.description = Shelly 2 in Relay Mode (Double Relay Switch)
thing-type.shelly.shelly2-roller.description = Shelly 2 in Roller Mode (Single Roller Shutter)
thing-type.shelly.shelly25-relay.description = Shelly 2.5 in Relay Mode (Double Relay Switch with integrated Power Meter)
thing-type.shelly.shelly25-roller.description = Shelly 2.5 in Roller Mode (Single Roller Shutter with integrated Power Meter)
thing-type.shelly.shelly4pro.description = Shelly 4 Pro (4x Relay Switch with integrated Power Meters)
thing-type.shelly.shellyplug.description = Shelly Plug (Plug with integrated Power Meter)
thing-type.shelly.shellyplugu1.description = Shelly Plug-US (Plug (US) with integrated Power Meter (110V))
thing-type.shelly.shellyplugs.description = Shelly Plug-S (Plug with integrated Power Meter)
thing-type.shelly.shellyuni.description = Shelly UNI (Universal Module)
thing-type.shelly.shellydimmer.description = Shelly Dimmer (Dimmer Functionality)
thing-type.shelly.shellydimmer2.description = Shelly Dimmer 2 (Dimmer Functionality, 2nd Generation)
thing-type.shelly.shellybutton1.description = Shelly Button 1 (battery powered)
thing-type.shelly.shellybutton2.description = Shelly Button 2 (battery powered)
thing-type.shelly.shellyht.description = Shelly H&amp;T (Humidity &amp; Temperature Sensor)
thing-type.shelly.shellydw.description = Shelly Door/Window (Door and Window Sensor with Lux Measurement (battery powered))
thing-type.shelly.shellydw2.description = Shelly Door/Window 2 (Door and Window Sensor with Lux Measurement (battery powered), 2nd Generation)
thing-type.shelly.shellysmoke.description = Shelly Smoke Sensor (battery powered)
thing-type.shelly.shellyflood.description = Shelly Flood Sensor (battery powered)
thing-type.shelly.shellysense.description = Shelly Sense (Motion Sensor and Remote IR Controller)
thing-type.shelly.shellybulb.description = Shelly Bulb (Dimmable RGB+W Bulb)
thing-type.shelly.shellybulbduo.description = Shelly Duo (Dimmable WW/CW Bulb)
thing-type.shelly.shellycolorbulb.description = Shelly Color Bulb (Dimmable RGB+W Bulb)
thing-type.shelly.shellyvintage.description = Shelly Vintage (Dimmable Vintage Bulb)
thing-type.shelly.shellyrgbw2-color.description = Shelly RGBW2 (LED Controller in Color Mode)
thing-type.shelly.shellyrgbw2-white.description = Shelly RGBW2 (LED Controller in White Mode, 4 strips)
thing-type.shelly.shellymotion.description = Shelly Motion (Motion Detection (battery powered))
thing-type.shelly.shellygas.description = Shelly Gas (Gas Sensor - Gas Leak Detection)
thing-type.shelly.shellytrv.description = Shelly TRV (Radiator value, battery powered)
thing-type.shelly.shellyix3.description = Shelly ix3 (Activation Device with 3 inputs)
# Relay, external sensors
# thing config - shellydevice
thing-type.config.shellydevice.userId.label = User ID
thing-type.config.shellydevice.userId.description = User ID for API access
thing-type.config.shellydevice.password.label = Password
thing-type.config.shellydevice.password.description = Password for API access
thing-type.config.shellydevice.deviceIp.label = IP Address
thing-type.config.shellydevice.deviceIp.description = IP Address of the Shelly device
# thing config - relay
thing-type.config.shelly.relay.userId.label = User ID
thing-type.config.shelly.relay.userId.description = User ID for API access
thing-type.config.shelly.relay.password.label = Password
thing-type.config.shelly.relay.password.description = Password for API access
thing-type.config.shelly.relay.deviceIp.label = IP Address
thing-type.config.shelly.relay.deviceIp.description = IP Address of the Shelly device
thing-type.config.shelly.relay.eventsButton.label = Button Events
thing-type.config.shelly.relay.eventsButton.description = Activates the Button Action URLS
thing-type.config.shelly.relay.eventsPush.label = Push Events
thing-type.config.shelly.relay.eventsPush.description = Activates the Push Button Action URLS
thing-type.config.shelly.relay.eventsSwitch.label = Output Events
thing-type.config.shelly.relay.eventsSwitch.description = Activates the Output Action URLS
thing-type.config.shelly.relay.eventsCoIoT.label = Activate CoIoT
thing-type.config.shelly.relay.eventsCoIoT.description = Activates the CoIoT-Protocol (CoAP based)
thing-type.config.shelly.relay.updateInterval.label = Status Interval
thing-type.config.shelly.relay.updateInterval.description = Interval for the device status update
# thing config - roller
thing-type.config.shelly.roller.userId.label = User ID
thing-type.config.shelly.roller.userId.description = User ID for API access
thing-type.config.shelly.roller.password.label = Password
thing-type.config.shelly.roller.password.description = Password for API access
thing-type.config.shelly.roller.favoriteUP.label = Favorite ID for UP
thing-type.config.shelly.roller.favoriteUP.description = Specifies the favorite ID that is used during the command UP on the roller#control channel (use the Shelly App to configure favorites)
thing-type.config.shelly.roller.favoriteDOWN.label = Favorite ID for DOWN
thing-type.config.shelly.roller.favoriteDOWN.description = Specifies the favorite ID that is used during the command DOWN on the roller#control channel (use the Shelly App to configure favorites)
thing-type.config.shelly.roller.deviceIp.label = IP Address
thing-type.config.shelly.roller.deviceIp.description = IP Address of the Shelly device
thing-type.config.shelly.roller.eventsRoller.label = Roller Events
thing-type.config.shelly.roller.eventsRoller.description = Activates the Roller Action URLS
thing-type.config.shelly.roller.eventsCoIoT.label = Activate CoIoT
thing-type.config.shelly.roller.eventsCoIoT.description = Activates the CoIoT-Protocol (CoAP based)
thing-type.config.shelly.roller.updateInterval.label = Status Interval
thing-type.config.shelly.roller.updateInterval.description = Interval for the device status update
# thing config - dimmer
thing-type.config.shelly.dimmer.userId.label = User ID
thing-type.config.shelly.dimmer.userId.description = User ID for API access
thing-type.config.shelly.dimmer.password.label = Password
thing-type.config.shelly.dimmer.password.description = Password for API access
thing-type.config.shelly.dimmer.deviceIp.label = IP Address
thing-type.config.shelly.dimmer.deviceIp.description = IP Address of the Shelly device
thing-type.config.shelly.dimmer.brightnessAutoOn.label = Brightness Auto-ON
thing-type.config.shelly.dimmer.brightnessAutoOn.description = ON: Light is switched on when a brightness value greater than 0 is set; OFF: Brightness is set, but the device is not switched on
thing-type.config.shelly.dimmer.eventsButton.label = Button Events
thing-type.config.shelly.dimmer.eventsButton.description = Activates the Button Action URLS
thing-type.config.shelly.dimmer.eventsPush.label = Push Events
thing-type.config.shelly.dimmer.eventsPush.description = Activates the Push Button Action URLS
thing-type.config.shelly.dimmer.eventsSwitch.label = Output Events
thing-type.config.shelly.dimmer.eventsSwitch.description = Activates the Output Action URLS
thing-type.config.shelly.dimmer.eventsCoIoT.label = Activate CoIoT
thing-type.config.shelly.dimmer.eventsCoIoT.description = Activates the CoIoT-Protocol (CoAP based)
thing-type.config.shelly.dimmer.updateInterval.label = Status Interval
thing-type.config.shelly.dimmer.updateInterval.description = Interval for the device status update
# thing config - light
thing-type.config.shelly.light.userId.label = User ID
thing-type.config.shelly.light.userId.description = User ID for API access
thing-type.config.shelly.light.password.label = Password
thing-type.config.shelly.light.password.description = Password for API access
thing-type.config.shelly.light.deviceIp.label = IP Address
thing-type.config.shelly.light.deviceIp.description = IP Address of the Shelly device
thing-type.config.shelly.light.brightnessAutoOn.label = Brightness Auto-ON
thing-type.config.shelly.light.brightnessAutoOn.description = ON: Light is switched on when a brightness value greater than 0 is set; OFF: Brightness is set, but the device is not switched on
thing-type.config.shelly.light.eventsButton.label = Button Events
thing-type.config.shelly.light.eventsButton.description = Activates the Button Action URLS
thing-type.config.shelly.light.eventsPush.label = Push Events
thing-type.config.shelly.light.eventsPush.description = Activates the Push Button Action URLS
thing-type.config.shelly.light.eventsSwitch.label = Output Events
thing-type.config.shelly.light.eventsSwitch.description = Activates the Output Action URLS
thing-type.config.shelly.light.eventsCoIoT.label = Activate CoIoT
thing-type.config.shelly.light.eventsCoIoT.description = Activates the CoIoT-Protocol (CoAP based)
thing-type.config.shelly.light.updateInterval.label = Status Interval
thing-type.config.shelly.light.updateInterval.description = Interval for the device status update
# thing config - RGBW2
thing-type.config.shelly.rgbw2.userId.label = User ID
thing-type.config.shelly.rgbw2.userId.description = User ID for API access
thing-type.config.shelly.rgbw2.password.label = Password
thing-type.config.shelly.rgbw2.password.description = Password for API access
thing-type.config.shelly.rgbw2.deviceIp.label = IP Address
thing-type.config.shelly.rgbw2.deviceIp.description = IP Address of the Shelly device
thing-type.config.shelly.rgbw2.brightnessAutoOn.label = Brightness Auto-ON
thing-type.config.shelly.rgbw2.brightnessAutoOn.description = ON: Light is switched on when a brightness value greater than 0 is set; OFF: Brightness is set, but the device is not switched on
thing-type.config.shelly.rgbw2.eventsCoIoT.label = Activate CoIoT
thing-type.config.shelly.rgbw2.eventsCoIoT.description = Activates the CoIoT-Protocol (CoAP based)
thing-type.config.shelly.rgbw2.updateInterval.label = Status Interval
thing-type.config.shelly.rgbw2.updateInterval.description = Interval for the device status update
# thing config - battery
thing-type.config.shelly.battery.userId.label = User ID
thing-type.config.shelly.battery.userId.description = User ID for API access
thing-type.config.shelly.battery.password.label = Password
thing-type.config.shelly.battery.password.description = Password for API access
thing-type.config.shelly.battery.deviceIp.label = IP Address
thing-type.config.shelly.battery.deviceIp.description = IP Address of the Shelly device
thing-type.config.shelly.battery.eventsSensorReport.label = Sensor Events
thing-type.config.shelly.battery.eventsSensorReport.description = Activates the Sensor Action URLS
thing-type.config.shelly.battery.eventsCoIoT.label = Activate CoIoT
thing-type.config.shelly.battery.eventsCoIoT.description = Activates the CoIoT-Protocol (CoAP based)
thing-type.config.shelly.battery.lowBattery.label = Low Battery Treshold (%)
thing-type.config.shelly.battery.lowBattery.description = An alarm is triggered when the device reports a battery charge lower than this threshold. Default: 20%
thing-type.config.shelly.battery.updateInterval.label = Status Interval
thing-type.config.shelly.battery.updateInterval.description = Interval for the device status update
# channel-groups
thing-type.shelly.shelly1.group.relay.label = Relay
thing-type.shelly.shelly1.group.relay.description = Relay input/output and status
thing-type.shelly.shelly1.group.sensors.label = External Sensors
thing-type.shelly.shelly1.group.sensors.description = Values from external sensors connected to the optional Addon
thing-type.shelly.shelly1.group.device.label = Device Status
thing-type.shelly.shelly1.group.device.description = Device Status Information
thing-type.shelly.shelly1pm.group.relay.label = Relay
thing-type.shelly.shelly1pm.group.relay.description = Relay input/output and status
thing-type.shelly.shelly1pm.group.meter.label = Power Consumption
thing-type.shelly.shelly1pm.group.meter.description = Consumption values and other information
thing-type.shelly.shelly1pm.group.sensors.label = External Sensors
thing-type.shelly.shelly1pm.group.sensors.description = Values from external sensors connected to the optional Addon
thing-type.shelly.shelly1pm.group.device.label = Device Status
thing-type.shelly.shelly1pm.group.device.description = Device Status Information
thing-type.shelly.shelly1l.group.relay.label = Relay
thing-type.shelly.shelly1l.group.relay.description = Relay input/output and status
thing-type.shelly.shelly1l.group.meter.label = Power Consumption
thing-type.shelly.shelly1l.group.meter.description = Consumption values and other information
thing-type.shelly.shelly1l.group.sensors.label = External Sensors
thing-type.shelly.shelly1l.group.sensors.description = Values from external sensors connected to the optional Addon
thing-type.shelly.shelly1l.group.device.label = Device Status
thing-type.shelly.shelly1l.group.device.description = Device Status Information
thing-type.shelly.shellyem.group.relay.label = Relay
thing-type.shelly.shellyem.group.relay.description = Relay input/output and status
thing-type.shelly.shellyem.group.meter1.label = Power Consumption 1
thing-type.shelly.shellyem.group.meter1.description = Consumption values and other information
thing-type.shelly.shellyem.group.meter2.label = Power Consumption 2
thing-type.shelly.shellyem.group.meter2.description = Consumption values and other information
thing-type.shelly.shellyem.group.device.label = Device Status
thing-type.shelly.shellyem.group.device.description = Device Status Information
thing-type.shelly.shellyem3.group.relay.label = Relay
thing-type.shelly.shellyem3.group.relay.description = Relay input/output and status
thing-type.shelly.shellyem3.group.meter1.label = Power Consumption 1
thing-type.shelly.shellyem3.group.meter1.description = Consumption values and other information
thing-type.shelly.shellyem3.group.meter2.label = Power Consumption 2
thing-type.shelly.shellyem3.group.meter2.description = Consumption values and other information
thing-type.shelly.shellyem3.group.meter3.label = Power Consumption 3
thing-type.shelly.shellyem3.group.meter3.description = Consumption values and other information
thing-type.shelly.shellyem3.group.device.label = Device Status
thing-type.shelly.shellyem3.group.device.description = Device Status Information
thing-type.shelly.shelly2-relay.group.relay1.label = Relay 1
thing-type.shelly.shelly2-relay.group.relay1.description = Relay input/output and status
thing-type.shelly.shelly2-relay.group.relay2.label = Relay 2
thing-type.shelly.shelly2-relay.group.relay2.description = Relay input/output and status
thing-type.shelly.shelly2-relay.group.meter.label = Power Consumption
thing-type.shelly.shelly2-relay.group.meter.description = Consumption values and other information
thing-type.shelly.shelly2-relay.group.device.label = Device Status
thing-type.shelly.shelly2-relay.group.device.description = Device Status Information
thing-type.shelly.shelly2-roller.group.roller.label = Roller shutter
thing-type.shelly.shelly2-roller.group.roller.description = Roller shutter control and status
thing-type.shelly.shelly2-roller.group.meter.label = Power Consumption
thing-type.shelly.shelly2-roller.group.meter.description = Consumption values and other information
thing-type.shelly.shelly2-roller.group.device.label = Device Status
thing-type.shelly.shelly2-roller.group.device.description = Device Status Information
thing-type.shelly.shelly25-relay.group.relay1.label = Relay 1
thing-type.shelly.shelly25-relay.group.relay1.description = Relay 1 input/output and status
thing-type.shelly.shelly25-relay.group.relay2.label = Relay 2
thing-type.shelly.shelly25-relay.group.relay2.description = Relay 2 input/output and status
thing-type.shelly.shelly25-relay.group.meter1.label = Power Consumption 1
thing-type.shelly.shelly25-relay.group.meter1.description = Consumption values and other information
thing-type.shelly.shelly25-relay.group.meter2.label = Power Consumption 2
thing-type.shelly.shelly25-relay.group.meter2.description = Consumption values and other information
thing-type.shelly.shelly25-relay.group.device.label = Device Status
thing-type.shelly.shelly25-relay.group.device.description = Device Status Information
thing-type.shelly.shelly25-roller.group.roller.label = Roller shutter
thing-type.shelly.shelly25-roller.group.roller.description = Roller shutter control and status
thing-type.shelly.shelly25-roller.group.meter.label = Power Consumption
thing-type.shelly.shelly25-roller.group.meter.description = Consumption values and other information
thing-type.shelly.shelly25-roller.group.device.label = Device Status
thing-type.shelly.shelly25-roller.group.device.description = Device Status Information
thing-type.shelly.shelly4pro.group.relay1.label = Relay 1
thing-type.shelly.shelly4pro.group.relay1.description = Relay input/output and status
thing-type.shelly.shelly4pro.group.relay2.label = Relay 2
thing-type.shelly.shelly4pro.group.relay2.description = Relay input/output and status
thing-type.shelly.shelly4pro.group.relay3.label = Relay 3
thing-type.shelly.shelly4pro.group.relay3.description = Relay input/output and status
thing-type.shelly.shelly4pro.group.relay4.label = Relay 4
thing-type.shelly.shelly4pro.group.relay4.description = Relay input/output and status
thing-type.shelly.shelly4pro.group.meter1.label = Power Consumption 1
thing-type.shelly.shelly4pro.group.meter1.description = Consumption values and other information
thing-type.shelly.shelly4pro.group.meter2.label = Power Consumption 2
thing-type.shelly.shelly4pro.group.meter2.description = Consumption values and other information
thing-type.shelly.shelly4pro.group.meter3.label = Power Consumption 3
thing-type.shelly.shelly4pro.group.meter3.description = Consumption values and other information
thing-type.shelly.shelly4pro.group.meter4.label = Power Consumption 4
thing-type.shelly.shelly4pro.group.meter4.description = Consumption values and other information
thing-type.shelly.shelly4pro.group.device.label = Device Status
thing-type.shelly.shelly4pro.group.device.description = Device Status Information
thing-type.shelly.shellyplug.group.relay.label = Relay
thing-type.shelly.shellyplug.group.relay.description = Relay input/output and status
thing-type.shelly.shellyplug.group.meter.label = Power Consumption
thing-type.shelly.shellyplug.group.meter.description = Consumption values and other information
thing-type.shelly.shellyplug.group.device.label = Device Status
thing-type.shelly.shellyplug.group.device.description = Device Status Information
thing-type.shelly.shellyplugs.group.relay.label = Relay
thing-type.shelly.shellyplugs.group.relay.description = Relay input/output and status
thing-type.shelly.shellyplugs.group.meter.label = Power Consumption
thing-type.shelly.shellyplugs.group.meter.description = Consumption values and other information
thing-type.shelly.shellyplugs.group.device.label = Device Status
thing-type.shelly.shellyplugs.group.device.description = Device Status Information
thing-type.shelly.shellyplugu1.group.relay.label = Relay
thing-type.shelly.shellyplugu1.group.relay.description = Relay input/output and status
thing-type.shelly.shellyplugu1.group.meter.label = Power Consumption
thing-type.shelly.shellyplugu1.group.meter.description = Consumption values and other information
thing-type.shelly.shellyplugu1.group.device.label = Device Status
thing-type.shelly.shellyplugu1.group.device.description = Device Status Information
thing-type.shelly.shellyuni.group.relay1.label = Relay 1
thing-type.shelly.shellyuni.group.relay1.description = Relay input/output and status
thing-type.shelly.shellyuni.group.relay2.label = Relay 2
thing-type.shelly.shellyuni.group.relay2.description = Relay input/output and status
thing-type.shelly.shellyuni.group.sensors.label = Sensor data
thing-type.shelly.shellyuni.group.sensors.description = Data of the connected sensors
thing-type.shelly.shellyuni.group.device.label = Device Status
thing-type.shelly.shellyuni.group.device.description = Device Status Information
thing-type.shelly.shellydimmer.group.relay.label = Relay
thing-type.shelly.shellydimmer.group.relay.description = Relay input/output and status
thing-type.shelly.shellydimmer.group.meter.label = Power Consumption
thing-type.shelly.shellydimmer.group.meter.description = Consumption values and other information
thing-type.shelly.shellydimmer.group.device.label = Device Status
thing-type.shelly.shellydimmer.group.device.description = Device Status Information
thing-type.shelly.shellydimmer2.group.relay.label = Relay
thing-type.shelly.shellydimmer2.group.relay.description = Relay input/output and status
thing-type.shelly.shellydimmer2.group.meter.label = Power Consumption
thing-type.shelly.shellydimmer2.group.meter.description = Consumption values and other information
thing-type.shelly.shellydimmer2.group.device.label = Device Status
thing-type.shelly.shellydimmer2.group.device.description = Device Status Information
thing-type.shelly.shellyix3.group.status1.label = Input 1
thing-type.shelly.shellyix3.group.status1.description = Input 1 status
thing-type.shelly.shellyix3.group.status2.label = Input 2
thing-type.shelly.shellyix3.group.status2.description = Input 2 status
thing-type.shelly.shellyix3.group.status3.label = Input 3
thing-type.shelly.shellyix3.group.status3.description = Input 3 status
thing-type.shelly.shellyix3.group.device.label = Device Status
thing-type.shelly.shellyix3.group.device.description = Device Status Information
thing-type.shelly.shellybutton1.group.status.label = Button status
thing-type.shelly.shellybutton1.group.status.description = Device Status Information
thing-type.shelly.shellybutton1.group.battery.label = Battery status
thing-type.shelly.shellybutton1.group.battery.description = Battery Information
thing-type.shelly.shellybutton1.group.device.label = Device Status
thing-type.shelly.shellybutton1.group.device.description = Device Status Information
thing-type.shelly.shellybulb.group.control.label = Control
thing-type.shelly.shellybulb.group.control.description = Control the Light
thing-type.shelly.shellybulb.group.color.label = Color Mode
thing-type.shelly.shellybulb.group.color.description = Settings for the Color Mode
thing-type.shelly.shellybulb.group.white.label = White Mode
thing-type.shelly.shellybulb.group.white.description = Settings for the White Mode
thing-type.shelly.shellybulb.group.device.label = Device Status
thing-type.shelly.shellybulb.group.device.description = Device Status Information
thing-type.shelly.shellybulbduo.group.control.label = Control
thing-type.shelly.shellybulbduo.group.control.description = Control the Light
thing-type.shelly.shellybulbduo.group.white.label = White Mode
thing-type.shelly.shellybulbduo.group.white.description = Settings for the White Mode
thing-type.shelly.shellybulbduo.group.meter.label = Power Consumption
thing-type.shelly.shellybulbduo.group.meter.description = Power Consumption Values
thing-type.shelly.shellybulbduo.group.device.label = Device Status
thing-type.shelly.shellybulbduo.group.device.description = Device Status Information
thing-type.shelly.shellycolorbulb.group.control.label = Control
thing-type.shelly.shellycolorbulb.group.control.description = Control the Light
thing-type.shelly.shellycolorbulb.group.white.label = White Mode
thing-type.shelly.shellycolorbulb.group.white.description = Settings for the White Mode
thing-type.shelly.shellycolorbulb.group.meter.label = Power Consumption
thing-type.shelly.shellycolorbulb.group.meter.description = Power Consumption Values
thing-type.shelly.shellycolorbulb.group.device.label = Device Status
thing-type.shelly.shellycolorbulb.group.device.description = Device Status Information
thing-type.shelly.shellyvintage.group.control.label = Control
thing-type.shelly.shellyvintage.group.control.description = Control the Light
thing-type.shelly.shellyvintage.group.white.label = Control
thing-type.shelly.shellyvintage.group.white.description = Device settings
thing-type.shelly.shellyvintage.group.meter.label = Power Consumption
thing-type.shelly.shellyvintage.group.meter.description = Power Consumption Values
thing-type.shelly.shellyvintage.group.device.label = Device Status
thing-type.shelly.shellyvintage.group.device.description = Device Status Information
thing-type.shelly.shellyrgbw2-color.group.control.label = Control
thing-type.shelly.shellyrgbw2-color.group.control.description = Controller operation
thing-type.shelly.shellyrgbw2-color.group.color.label = Colors
thing-type.shelly.shellyrgbw2-color.group.color.description = Color values and profiles
thing-type.shelly.shellyrgbw2-color.group.meter.label = Power Consumption
thing-type.shelly.shellyrgbw2-color.group.meter.description = Consumption values and other information
thing-type.shelly.shellyrgbw2-color.group.device.label = Device Status
thing-type.shelly.shellyrgbw2-color.group.device.description = Device Status Information
thing-type.shelly.shellyrgbw2-white.group.control.label = Control
thing-type.shelly.shellyrgbw2-white.group.control.description = Control the Light
thing-type.shelly.shellyrgbw2-white.group.channel1.label = Channel 1
thing-type.shelly.shellyrgbw2-white.group.channel1.description = Control for channel 1
thing-type.shelly.shellyrgbw2-white.group.channel2.label = Channel 2
thing-type.shelly.shellyrgbw2-white.group.channel2.description = Control for channel 2
thing-type.shelly.shellyrgbw2-white.group.channel3.label = Channel 3
thing-type.shelly.shellyrgbw2-white.group.channel3.description = Control for channel 3
thing-type.shelly.shellyrgbw2-white.group.channel4.label = Channel 4
thing-type.shelly.shellyrgbw2-white.group.channel4.description = Control for channel 4
thing-type.shelly.shellyrgbw2-white.group.meter.label = Power Consumption
thing-type.shelly.shellyrgbw2-white.group.meter.description = Consumption values and other information
thing-type.shelly.shellyrgbw2-white.group.device.label = Device Status
thing-type.shelly.shellyrgbw2-white.group.device.description = Device Status Information
thing-type.shelly.shellyht.group.sensors.label = Sensor data
thing-type.shelly.shellyht.group.sensors.description = Measured values and status of the sensor
thing-type.shelly.shellyht.group.battery.label = Battery Status
thing-type.shelly.shellyht.group.battery.description = Battery Information
thing-type.shelly.shellyht.group.device.label = Device Status
thing-type.shelly.shellyht.group.device.description = Device Status Information
thing-type.shelly.shellyflood.group.sensors.label = Sensor data
thing-type.shelly.shellyflood.group.sensors.description = Measured values and status of the sensor
thing-type.shelly.shellyflood.group.battery.label = Battery Status
thing-type.shelly.shellyflood.group.battery.description = Battery Information
thing-type.shelly.shellyflood.group.device.label = Device Status
thing-type.shelly.shellyflood.group.device.description = Device Status Information
thing-type.shelly.shellydw.group.sensors.label = Sensor data
thing-type.shelly.shellydw.group.sensors.description = Measured values and status of the sensor
thing-type.shelly.shellydw.group.battery.label = Battery Status
thing-type.shelly.shellydw.group.battery.description = Battery Information
thing-type.shelly.shellydw.group.device.label = Device Status
thing-type.shelly.shellydw.group.device.description = Device Status Information
thing-type.shelly.shellydw2.group.sensors.label = Sensor data
thing-type.shelly.shellydw2.group.sensors.description = Measured values and status of the sensor
thing-type.shelly.shellydw2.group.battery.label = Battery Status
thing-type.shelly.shellydw2.group.battery.description = Battery Information
thing-type.shelly.shellydw2.group.device.label = Device Status
thing-type.shelly.shellydw2.group.device.description = Device Status Information
thing-type.shelly.shellysmoke.sensors.device.label = Sensor data
thing-type.shelly.shellysmoke.sensors.device.description = Measured values and status of the sensor
thing-type.shelly.shellysmoke.group.battery.label = Battery Status
thing-type.shelly.shellysmoke.group.battery.description = Battery Information
thing-type.shelly.shellysmoke.group.device.label = Device Status
thing-type.shelly.shellysmoke.group.device.description = Device Status Information
thing-type.shelly.shellysense.sensors.device.label = Sensor data
thing-type.shelly.shellysense.sensors.device.description = Measured values and status of the sensor
thing-type.shelly.shellysense.group.device.label = Device Status
thing-type.shelly.shellysense.group.device.description = Device Status Information
thing-type.shelly.shellygas.group.sensors.label = Sensor data
thing-type.shelly.shellygas.group.sensors.description = Measured values and status of the sensor
thing-type.shelly.shellygas.group.device.label = Device Status
thing-type.shelly.shellygas.group.device.description = Device Status Information
thing-type.shelly.shellymotion.group.sensors.label = Sensor data
thing-type.shelly.shellymotion.group.sensors.description = Measured values and status of the sensor
thing-type.shelly.shellymotion.group.battery.label = Battery Status
thing-type.shelly.shellymotion.group.battery.description = Battery Information
thing-type.shelly.shellymotion.group.device.label = Device Status
thing-type.shelly.shellymotion.group.device.description = Device Status Information
# channel groups
channel-group-type.shelly.sensorData.label = Sensor Data
channel-group-type.shelly.sensorData.description = Data from the various sensors
channel-group-type.shelly.batteryStatus.label = Battery Status
channel-group-type.shelly.batteryStatus.description = Battery Information
channel-group-type.shelly.control.label = Control
channel-group-type.shelly.control.description = Control the device
channel-group-type.shelly.buttonState.label = Button State
channel-group-type.shelly.buttonState.description = Status of the Button
channel-group-type.shelly.deviceStatus.label = Device Status
channel-group-type.shelly.deviceStatus.description = Information about the device status
channel-group-type.shelly.bulbControl.label = Light Control
channel-group-type.shelly.bulbControl.description = Control your light
channel-group-type.shelly.duoControl.label = Light Control
channel-group-type.shelly.duoControl.description = Control your light
channel-group-type.shelly.rgbw2ColorControl.label = LED Strip Control (RGBW)
channel-group-type.shelly.rgbw2ColorControl.description = Control your LED stripes in color mode
channel-group-type.shelly.rgbw2WhiteControl.label = LED Strip Control (White)
channel-group-type.shelly.rgbw2WhiteControl.description = Control your LED stripes in white mode
channel-group-type.shelly.colorSettingsBulb.label = Colors
channel-group-type.shelly.colorSettingsBulb.description = Light colors
channel-group-type.shelly.colorSettingsRGBW2.label = Colors
channel-group-type.shelly.colorSettingsRGBW2.description = Light colors
channel-group-type.shelly.whiteSettings.label = White settings
channel-group-type.shelly.whiteSettings.description = Adjust colors when device is in white mode
channel-group-type.shelly.whiteSettingsSimple.label = White settings
channel-group-type.shelly.whiteSettingsSimple.description = Adjust colors when device is in white mode
channel-group-type.shelly.rgbw2Channel.label = Control
channel-group-type.shelly.rgbw2Channel.description = Switch channel and adjust settings
channel-group-type.shelly.relayChannel.label = Relay
channel-group-type.shelly.relayChannel.description = A Shelly relay channel
channel-group-type.shelly.relayChannelPlug.label = Relay
channel-group-type.shelly.relayChannelPlug.description = A Shelly relay channel
channel-group-type.shelly.dimmerChannel.label = Dimmer
channel-group-type.shelly.dimmerChannel.description = A Shelly Dimmer channel
channel-group-type.shelly.ix3Channel.label = Input
channel-group-type.shelly.ix3Channel.description = Input Status
channel-group-type.shelly.rollerControl.label = Roller Control
channel-group-type.shelly.rollerControl.description = Controlling the roller mode
channel-group-type.shelly.meter.label = Power Meter
channel-group-type.shelly.meter.description = Power consumption for the relay
channel-group-type.shelly.externalSensors.label = External Sensors
channel-group-type.shelly.externalSensors.description = Temperatures from external sensors connected to the optional Addon
# channels
channel-type.shelly.outputName.label = Output Name
channel-type.shelly.outputName.description = Output/Channel Name as configured in the Shelly App.
channel-type.shelly.outputName.description = Output/Channel Name as configured in the Shelly App
channel-type.shelly.timerAutoOn.label = Auto-ON Timer
channel-type.shelly.timerAutoOn.description = When the relay is switched off, it will be switched on automatically after n seconds
channel-type.shelly.timerAutoOff.label = Auto-OFF Timer
channel-type.shelly.timerAutoOff.description = When the relay is switched on, it will be switched off automatically after n seconds
channel-type.shelly.timerActive.label = Auto ON/OFF timer active
channel-type.shelly.timerActive.description = ON: A timer is active, OFF: no timer active
channel-type.shelly.temperature.label = Temperature
channel-type.shelly.temperature.description = Temperature reported by the sensor
channel-type.shelly.temperature1.label = Temperature 1
channel-type.shelly.temperature1.description = Temperature of external Sensor #1
channel-type.shelly.temperature2.label = Temperature 2
channel-type.shelly.temperature2.description = Temperature of external Sensor #2
channel-type.shelly.temperature3.label = Temperature 3
channel-type.shelly.temperature3.description = Temperature of external Sensor #3
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
channel-type.shelly.humidity.description = Relative humidity (0..100%)
channel-type.shelly.rollerShutter.label = Roller Control (0=open, 100=closed)
channel-type.shelly.rollerShutter.description = Control the Roller Shutter: UP, DOWN, STOP, Position (0=open, 100=closed)
channel-type.shelly.rollerPosition.label = Roller Position (100=open, 0=closed)
channel-type.shelly.rollerPosition.description = Position the Roller Shutter (100-0 in percent, where 100%=open, 0%=closed)
channel-type.shelly.rollerFavorite.label = Position Favorite
channel-type.shelly.rollerFavorite.description = Set roller position by selecting favorite 1-4 (needs to be defined in the Shelly App, 0=n/a)
channel-type.shelly.rollerState.label = Roller State
channel-type.shelly.rollerState.description = State of the roller (open/close/stop)
channel-type.shelly.rollerState.state.option.open = opening
channel-type.shelly.rollerState.state.option.close = closing
channel-type.shelly.rollerState.state.option.stop = stopped
channel-type.shelly.rollerStop.label = Roller stop reason
channel-type.shelly.rollerStop.description = Last reason for stopping the Roller Shutter (normal, safety switch, obstacle detected)
channel-type.shelly.rollerStop.state.option.normal = normal
channel-type.shelly.rollerStop.state.option.safety_switch = safety switch
channel-type.shelly.rollerStop.state.option.obstacle = obstacle detected
channel-type.shelly.rollerDirection.label = Last Roller Direction
channel-type.shelly.rollerDirection.description = Last direction: open/close/stopped
channel-type.shelly.rollerDirection.state.option.open = open
channel-type.shelly.rollerDirection.state.option.close = close
channel-type.shelly.rollerDirection.state.option.stop = stopped
channel-type.shelly.rollerSafety.label = Safety Switch
channel-type.shelly.rollerSafety.description = Status of the safety switch
channel-type.shelly.inputState.label = Input
channel-type.shelly.inputState.description = Input/Button state
channel-type.shelly.inputState1.label = Input #1
channel-type.shelly.inputState1.description = Input/Button state #1
channel-type.shelly.inputState2.label = Input #2
channel-type.shelly.inputState2.description = Input/Button state #2
channel-type.shelly.inputState3.label = Input #3
channel-type.shelly.inputState3.description = Input/Button state #3
channel-type.shelly.dimmerBrightness.label = Brightness
channel-type.shelly.dimmerBrightness.description = Light Brightness in percent (0-100%, 0=OFF)
channel-type.shelly.whiteBrightness.label = Brightness
channel-type.shelly.whiteBrightness.description = Brightness (0-100%, 0=OFF)
channel-type.shelly.meterWatts.label = Power Consumption
channel-type.shelly.meterWatts.description = Current Power Consumption in Watts
channel-type.shelly.meterAccuWatts.label = Accumulated Power Consumption
channel-type.shelly.meterAccuWatts.description = Accumulated Power Consumption in Watts of the device (including all meters)
channel-type.shelly.meterAccuTotal.label = Accumulated Total Power
channel-type.shelly.meterAccuTotal.description = Accumulated Total Power in kW/h of the device (including all meters)
channel-type.shelly.meterAccuReturned.label = Accumulated Returned Power
channel-type.shelly.meterAccuReturned.description = Accumulated Returned Power in kW/h of the device (including all meters)
channel-type.shelly.meterReactive.label = Reactive Energy
channel-type.shelly.meterReactive.description = Instantaneous reactive power in Watts (W)
channel-type.shelly.lastPower1.label = Last Power #1
channel-type.shelly.lastPower1.description = Last power consumption #1 - one rounded minute
channel-type.shelly.meterTotal.label = Total Energy Consumption
channel-type.shelly.meterTotal.description = Total energy consumption in kW/h since the device powered up (resets on restart)
channel-type.shelly.meterReturned.label = Total Returned Energy
channel-type.shelly.meterReturned.description = Total returned energy in kW/h
channel-type.shelly.meterVoltage.label = Voltage
channel-type.shelly.meterVoltage.description = RMS voltage in Volt
channel-type.shelly.meterCurrent.label = Current
channel-type.shelly.meterCurrent.description = Current in A
channel-type.shelly.meterPowerFactor.label = Power Factor
channel-type.shelly.meterPowerFactor.description = Power Factor in percent for photovoltaic
channel-type.shelly.timestamp.label = Last Update
channel-type.shelly.timestamp.description = Timestamp of last measurement
channel-type.shelly.ledStatusDisable.label = Disable Status LED
channel-type.shelly.ledStatusDisable.description = Disable LED indication for network status
channel-type.shelly.ledPowerDisable.label = Disable Power LED
channel-type.shelly.ledPowerDisable.description = Disable LED indication for output status
channel-type.shelly.colorMode.label = Mode (ON=color, OFF=white)
channel-type.shelly.colorMode.description = ON: Device is in color mode, OFF: Device is in White Mode
channel-type.shelly.colorFull.label = Full Color
channel-type.shelly.colorFull.description = Setting this channel sets the selected color to 255, all others to 0
channel-type.shelly.colorFull.state.option.red = Red
channel-type.shelly.colorFull.state.option.green = Green
channel-type.shelly.colorFull.state.option.blue = Blue
channel-type.shelly.colorFull.state.option.yellow = Yellow
channel-type.shelly.colorFull.state.option.white = White
channel-type.shelly.colorRed.label = Red
channel-type.shelly.colorRed.description = Red (0-255), applies only in Color Mode
channel-type.shelly.colorGreen.label = Green
channel-type.shelly.colorGreen.description = Green (0-255), applies only in Color Mode
channel-type.shelly.colorBlue.label = Blue
channel-type.shelly.colorBlue.description = Blue (0-255), applies only in Color Mode
channel-type.shelly.colorWhite.label = White
channel-type.shelly.colorWhite.description = White (0-255), applies only in Color Mode
channel-type.shelly.colorGain.label = Gain
channel-type.shelly.colorGain.description = Gain for all channels (0-100%), applies only in Color Mode
channel-type.shelly.whiteTemp.label = Light Temperature
channel-type.shelly.whiteTemp.description = Light Temperature (Bulb/RGBW2: 3000K-6500K; Duo: 2700K-6500K)
channel-type.shelly.colorEffectBulb.label = Effect
channel-type.shelly.colorEffectBulb.description = Currently applied effect, description: 0: Off, 1: Meteor Shower, 2: Gradual Change, 3: Breath, 4: Flash, 5: On/Off Gradual, 6: Red/Green Change
channel-type.shelly.colorEffectBulb.option.0 = Off
channel-type.shelly.colorEffectBulb.option.1 = Meteor Shower
channel-type.shelly.colorEffectBulb.option.2 = Gradual Change
channel-type.shelly.colorEffectBulb.option.3 = Breath
channel-type.shelly.colorEffectBulb.option.4 = Flash
channel-type.shelly.colorEffectBulb.option.5 = On/Off Gradual
channel-type.shelly.colorEffectBulb.option.6 = Red/Green Change
channel-type.shelly.colorEffectRGBW2.label = Effect
channel-type.shelly.colorEffectRGBW2.description = Currently applied effect, description: 0: Off, 1: Meteor Shower, 2: Gradual Change, 3: Flash
channel-type.shelly.colorEffectRGBW2.option.0 = Off
channel-type.shelly.colorEffectRGBW2.option.1 = Meteor Shower
channel-type.shelly.colorEffectRGBW2.option.2 = Gradual Change
channel-type.shelly.colorEffectRGBW2.option.3 = Flash
channel-type.shelly.sensorTemp.label = Temperature
channel-type.shelly.sensorTemp.description = Temperature from the sensor
channel-type.shelly.sensorExtTemp.label = Temperature
channel-type.shelly.sensorExtTemp.description = Temperature from the external sensor
channel-type.shelly.sensorExtHum.label = Humidity
channel-type.shelly.sensorExtHum.description = Relative humidity in percent (0..100%) from external sensor
channel-type.shelly.sensorHumidity.label = Humidity
channel-type.shelly.sensorHumidity.description = Relative humidity in percent (0..100%)
channel-type.shelly.sensorFlood.label = Flood Alarm
channel-type.shelly.sensorFlood.description = Indicates flood / water detection when toggled ON
channel-type.shelly.sensorSmoke.label = Smoke Alarm
channel-type.shelly.sensorSmoke.description = Indicates smoke detection when toggled ON
channel-type.shelly.sensorLux.label = Lux
channel-type.shelly.sensorLux.description = Brightness from the sensor (Lux)
channel-type.shelly.sensorIllumination.label = Illumination
channel-type.shelly.sensorIllumination.description = Current illumination (Dark/Twilight/Bright/Unknown)
channel-type.shelly.sensorIllumination.state.option.dark = Dark
channel-type.shelly.sensorIllumination.state.option.twilight = Twilight
channel-type.shelly.sensorIllumination.state.option.bright = Bright
channel-type.shelly.sensorIllumination.state.option.unknown = Unknown
channel-type.shelly.sensorPPM.label = Gas Concentration
channel-type.shelly.sensorPPM.description = Gas concentration in ppm
channel-type.shelly.sensorPosition.label = Position
channel-type.shelly.sensorPosition.description = Position of the valve
channel-type.shelly.sensorADC.label = Voltage (ADC)
channel-type.shelly.sensorADC.description = ADC voltage in V
channel-type.shelly.sensorTilt.label = Tilt
channel-type.shelly.sensorTilt.description = Tilt in degrees (requires calibration)
channel-type.shelly.sensorVibration.label = Vibration
channel-type.shelly.sensorVibration.description = Vibration detected when toggled ON
channel-type.shelly.sensorMotion.label = Motion
channel-type.shelly.sensorMotion.description = Motion detected when toggled ON
channel-type.shelly.motionActive.label = Motion Active
channel-type.shelly.motionActive.description = Indicates if motion sensor is active or within sleep time
channel-type.shelly.motionTimestamp.label = Last Motion
channel-type.shelly.motionTimestamp.description = Timestamp when last motion was detected.
# Roller
channel-type.shelly.rollerState.label = State
channel-type.shelly.rollerState.description = State of the roller (open/closed/stopped).
# LED disable
channel-type.shelly.ledPowerDisable.label = Disable Power LED
channel-type.shelly.ledPowerDisable.description = ON: The power status LED will be deactivated
channel-type.shelly.ledStatusDisable.label = Disable Status LED
channel-type.shelly.ledStatusDisable.description = ON: The WiFi status LED will be deactivated
channel-type.shelly.motionTimestamp.description = Timestamp when last motion was detected
channel-type.shelly.sensorValve.label = Valve
channel-type.shelly.sensorValve.description = Current valve status (Closed/Opened/Not connected/Failure/Closing/Opening/Checking)
channel-type.shelly.sensorValve.state.option.closed = Closed
channel-type.shelly.sensorValve.state.option.opened = Opened
channel-type.shelly.sensorValve.state.option.not_connected = Not connected
channel-type.shelly.sensorValve.state.option.failure = Failure
channel-type.shelly.sensorValve.state.option.closing = Closing
channel-type.shelly.sensorValve.state.option.opening = Opening
channel-type.shelly.sensorValve.state.option.checking = Checking
channel-type.shelly.sensorValve.state.option.UNKNOWN = Unknown
channel-type.shelly.sensorCharger.label = Charger Connected
channel-type.shelly.sensorCharger.description = ON: External charger is connected
channel-type.shelly.sensorContact.label = State
channel-type.shelly.sensorContact.description = State of the contact (open/closed)
channel-type.shelly.sensorContact.state.option.OPEN = Open
channel-type.shelly.sensorContact.state.option.CLOSED = Closed
channel-type.shelly.sensorState.label = Sensor State
channel-type.shelly.sensorState.description = Sensor State (Warm-Up/Normal/Fault/Unknown)
channel-type.shelly.sensorState.state.option.warmup = Warm-Up
channel-type.shelly.sensorState.state.option.normal = Normal
channel-type.shelly.sensorState.state.option.fault = Fault
channel-type.shelly.sensorState.state.option.unknown = Unknown
channel-type.shelly.sensorWakeup.label = Wakeup Reason
channel-type.shelly.sensorWakeup.description = Last reason which woke up the device (button/battery/perodic/powerdown/sensor/alarm/ext_power)
channel-type.shelly.sensorWakeup.state.option.button = Button
channel-type.shelly.sensorWakeup.state.option.battery = Battery
channel-type.shelly.sensorWakeup.state.option.periodic = Periodic
channel-type.shelly.sensorWakeup.state.option.poweron = Power-On
channel-type.shelly.sensorWakeup.state.option.sensor = Sensor
channel-type.shelly.sensorWakeup.state.option.alarm = Alarm
channel-type.shelly.sensorWakeup.state.option.ext_power = Charger connected
channel-type.shelly.controlMode.label = Mode
channel-type.shelly.controlMode.description = Sensor/Control Mode
channel-type.shelly.controlMode.state.option.manual = Manual
channel-type.shelly.controlMode.state.option.automatic = Automatic
channel-type.shelly.controlProfile.label = Profile
channel-type.shelly.controlProfile.description = Selected Profile
channel-type.shelly.boostControl.label = Boost Mode
channel-type.shelly.boostControl.description = ON: Boost mode is activated (overwrites automatic temperature mode)
channel-type.shelly.boostTimer.label = Boost Timer
channel-type.shelly.boostTimer.description = Number of minutes to boost maximum power
channel-type.shelly.batVoltage.label = Battery Voltage
channel-type.shelly.batVoltage.description = Battery voltage (V)
channel-type.shelly.charger.label = Charger Connected
channel-type.shelly.charger.description = ON: External power is connected
channel-type.shelly.calibrated.label = Calibrated
channel-type.shelly.calibrated.description = ON: The device/sensor is calibrated
channel-type.shelly.externalPower.label = External Power
channel-type.shelly.externalPower.description = ON: Device is charging, OFF: No charger connected
channel-type.shelly.senseKey.label = IR Key to Send
channel-type.shelly.senseKey.description = Send a defined key code
channel-type.shelly.deviceName.label = Device Name
channel-type.shelly.deviceName.description = Symbolic Device Name as configured in the Shelly App
channel-type.shelly.uptime.label = Uptime
channel-type.shelly.uptime.description = Number of seconds since the device was powered up
channel-type.shelly.heartBeat.label = Last Heartbeat
channel-type.shelly.heartBeat.description = Last time we received a signal from the device (API result or sensor report), This indicates that device communication works on the network layer (WiFi + IP)
channel-type.shelly.updateAvailable.label = Update available
channel-type.shelly.updateAvailable.description = ON: A firmware update is available (use the Shelly App to perform update)
channel-type.shelly.deviceTemp.label = Internal Temperature
channel-type.shelly.deviceTemp.description = Internal device temperature, helps to detect overheating due to installation issues
channel-type.shelly.supplyVoltage.label = Supply Voltage
channel-type.shelly.supplyVoltage.description = External voltage supplied to the device
channel-type.shelly.lastUpdate.label = Last Update
channel-type.shelly.lastUpdate.description = Timestamp of last status update
channel-type.shelly.lastEvent.label = Event
channel-type.shelly.lastEvent.description = Event Type (S=Short push, SS=Double-Short push, SSS=Triple-Short push, L=Long push, SL=Short-Long push, LS=Long-Short push)
channel-type.shelly.lastEvent.state.option.S = Short push
channel-type.shelly.lastEvent.state.option.SS = Double-Short push
channel-type.shelly.lastEvent.state.option.SSS = Triple-Short push
channel-type.shelly.lastEvent.state.option.L = Long push
channel-type.shelly.lastEvent.state.option.SL = Short-Long push
channel-type.shelly.lastEvent.state.option.LS = Long-Short push
channel-type.shelly.eventCount.label = Event Count
channel-type.shelly.eventCount.description = Event Count
channel-type.shelly.eventTrigger.label = Event
channel-type.shelly.eventTrigger.description = Event Trigger (ROLLER_OPEN/ROLLER_CLOSE/ROLLER_STOP)
channel-type.shelly.eventTrigger.option.ROLLER_OPEN = Roller is open
channel-type.shelly.eventTrigger.option.ROLLER_CLOSE = Roller is closed
channel-type.shelly.eventTrigger.option.ROLLER_STOP = Roller has stopped
channel-type.shelly.alarmTrigger.label = Alarm
channel-type.shelly.alarmTrigger.description = Alarm Trigger, e.g. weak WiFi Signal detected or over heating
channel-type.shelly.alarmTrigger.option.NONE = None
channel-type.shelly.alarmTrigger.option.WEAK_SIGNAL = Weak WiFi
channel-type.shelly.alarmTrigger.option.RESTARTED = Device restarted
channel-type.shelly.alarmTrigger.option.OVERTEMP = Device is overheating
channel-type.shelly.alarmTrigger.option.OVERLOAD = Device is overloaded
channel-type.shelly.alarmTrigger.option.OVERPOWER = Device is over max power
channel-type.shelly.alarmTrigger.option.LOAD_ERROR = Load error
channel-type.shelly.alarmTrigger.option.LOW_BATTERY = Low battery
channel-type.shelly.alarmTrigger.option.BATTERY = Wakeup by battery
channel-type.shelly.alarmTrigger.option.POWERON = Device was powered on
channel-type.shelly.alarmTrigger.option.BUTTON = Button was pressed
channel-type.shelly.alarmTrigger.option.SENSOR = Sensor data updated
channel-type.shelly.alarmState.label = Alarm State
channel-type.shelly.alarmState.description = Alarm State (Unknown/None/Mild/Heavy/Test)
channel-type.shelly.alarmState.state.option.unknown = Unknown
channel-type.shelly.alarmState.state.option.none = None
channel-type.shelly.alarmState.state.option.mild = Mild
channel-type.shelly.alarmState.state.option.heavy = Heavy
channel-type.shelly.alarmState.state.option.test = Test
channel-type.shelly.selfTest.label = Self Test
channel-type.shelly.selfTest.description = Self Test Status/Result
channel-type.shelly.selfTest.state.option.not_completed = Not completed
channel-type.shelly.selfTest.state.option.completed = Completed
channel-type.shelly.selfTest.state.option.running = Running
channel-type.shelly.selfTest.state.option.pending = Pending
channel-type.shelly.selfTest.state.option.unknown = Unknown
channel-type.shelly.sensorError.label = Last Error
channel-type.shelly.sensorError.description = Only valid in case of error
channel-type.shelly.sensorSleepTime.label = Sensor Sleep Time
channel-type.shelly.sensorSleepTime.description = The sensor will not send notifications and will not perform actions until the specified time expires (0=disable)
channel-type.shelly.deviceSchedule.label = Schedule active
channel-type.shelly.deviceSchedule.description = ON: A scheduled program is active
# Shelly Manager
message.manager.invalid-url = Invalid URL or syntax

View File

@@ -1,53 +1,505 @@
# binding
binding.shelly.name = Shelly Binding
binding.shelly.description = Dieses Binding integriert Shelly-Komponenten, die über WiFi gesteuert werden können.
binding.shelly.config.defaultUserId.label = Standardbenutzerkennung
binding.shelly.config.defaultUserId.description = Sofern konfiguriert, wird diese für den Zugriff auf das Gerät verwendet, wenn in der Thing-Konfiguration keine angegeben ist.
binding.shelly.config.defaultPassword.label = Passwort
binding.shelly.config.defaultPassword.description = Dieses Passwort wird für den Gerätezugriff verwendet, wenn in der Thing-Konfiguration keines gesetzt ist.
binding.shelly.config.localIP.label = IP-Adresse
binding.shelly.config.localIP.description = Lokale IP-Adresse der Netzwerk-Schnittstelle, welche für Verbindungen genutzt wird (CoIoT Listen und http-Callback). Default\: Voreingestelltes Interface aus der openHAB Netzwerkkonfiguration.
binding.shelly.config.defaultUserId.description = Sofern konfiguriert, wird diese für den Zugriff auf das Gerät verwendet, wenn in der Thing-Konfiguration keine angegeben ist.
binding.shelly.config.defaultPassword.label = Standardpasswort
binding.shelly.config.defaultPassword.description = Dieses Passwort wird für den Gerätezugriff verwendet, wenn in der Thing-Konfiguration keines gesetzt ist.
binding.shelly.config.localIP.label = Host Interface IP
binding.shelly.config.localIP.description = Lokale IP-Adresse der Netzwerk-Schnittstelle, welche für Verbindungen genutzt wird (CoIoT Listen und http-Callback). Default: Voreingestelltes Interface aus der openHAB Netzwerkkonfiguration.
binding.shelly.config.autoCoIoT.label = Auto-CoIoT
binding.shelly.config.autoCoIoT.description = Bei aktiviertem Auto-CoIoT wird das Protokoll aktiviert, sobald das Gerät eine Firmwareversion 1.6 oder neuer verwendet. Andernfalls wird dies über die Thing-Konfiguration gesteuert.
binding.shelly.config.autoCoIoT.description = Bei aktiviertem Auto-CoIoT wird das Protokoll aktiviert, sobald das Gerät eine Firmwareversion 1.6 oder neuer verwendet. Andernfalls wird dies über die Thing-Konfiguration gesteuert.
# Config status messages
config-status.error.missing-device-ip = Die IP-Adresse des Shelly Gerätes ist nicht konfiguriert.
message.config-status.error.missing-device-ip = Die IP-Adresse des Shelly Gerätes ist nicht konfiguriert.
message.config-status.error.missing-userid = Keine Benutzerkennung in der Thing Konfiguration
# Thing status descriptions
offline.conf-error-no-credentials = Gerät ist passwortgeschützt, aber es sind keine Anmeldedaten konfiguriert.
offline.conf-error-access-denied = Der Zugriff wurde verweigert. überprüfen Sie die konfigurierten Zugangsdaten, oder setzen diese entsprechend (analog zur Shelly App).
offline.conf-error-wrong-mode = Das Gerät befindet sich nicht mehr in der konfigurierten Betriebsart {0}, erwartet {1}. Löschen Sie das Gerät und führen Sie eine erneute Geräteerkennung durch.
offline.status-error-timeout = Das Gerät ist nicht erreichbar (API Timeout).
offline.status-error-unexpected-api-result = Es trat ein unerwartetes Problem beim API-Zugriff auf. Überprüfen Sie die Logdatei für genauere Informationen.
offline.status-error-watchdog = Das Gerät antwortet nicht und ist vermutlich nicht mehr verfügbar.
offline.status-error-restarted = Das Gerät wurde neu gestartet und wird erneut initialisiert.
offline.status-error-fwupgrade = Firmware-Update läuft
message.offline.conf-error-no-credentials = Gerät ist passwortgeschützt, aber es sind keine Anmeldedaten konfiguriert.
message.offline.conf-error-access-denied = Der Zugriff wurde verweigert. überprüfen Sie die konfigurierten Zugangsdaten, oder setzen diese entsprechend (analog zur Shelly App).
message.offline.conf-error-wrong-mode = Das Gerät befindet sich nicht mehr in der erwarteten Betriebsart. Löschen Sie das Gerät und führen Sie eine erneute Geräteerkennung durch.
message.offline.status-error-timeout = Das Gerät ist nicht erreichbar (API Timeout).
message.offline.status-error-unexpected-api-result = Es trat ein unerwartetes Problem beim API-Zugriff auf. Überprüfen Sie die Logdatei für genauere Informationen.
message.offline.status-error-watchdog = Das Gerät antwortet nicht und ist vermutlich nicht mehr verfügbar.
message.offline.status-error-restarted = Das Gerät wurde neu gestartet und wird erneut initialisiert.
message.offline.status-error-fwupgrade = Gerätesoftware wird aktualisiert
message.versioncheck.failed = Firmware-Version kann nicht überprüft werden\: {0}
message.versioncheck.beta = Gerät verwendet eine Beta-Version\: {0}/{1}.
message.versioncheck.tooold = WARNUNG\: Firmware könnte zu alt sein, installiert\: {0}/{1}, Minimum {3} erforderlich.
message.versioncheck.update = INFO\: Neue Firmware verfügbar\: aktuelle Version\: {0}, neue Version\: {1}
message.versioncheck.autocoiot = INFO\: Die Firmware unterstützt die Anforderung, Auto-CoIoT wurde aktiviert.
message.roller.calibrating = Das Gerät ist nicht kalibriert. Es ist eine Kalibrierung mit der Shelly App erforderlich.
message.init.noipaddress = Es konnte keine lokale IP-Adresse ermittelt werden. Bitte sicherstellen, dass IPv4 aktiviert ist und das richtige Interface in der openHAB Netzwerk-Konfiguration ausgewählt ist.
message.init.protected = Das Gerät ist passwortgeschützt, die Zugangsdaten müssen in der Thing Konfiguration hinterlegt werden.
message.command.failed = FEHLER\: Der Befehl {0} für Kanal {1} kann nicht verarbeitet werden
message.command.init = Thing aktuell nicht initialisiert, der Befehl {0} führt zur Initialisierung
message.status.unknown.initializing = Initialisierung oder Gerät im Schlafmodus.
# General messages
message.versioncheck.failed = Firmware-Version konnte nicht geprüft werden: {0}
message.versioncheck.beta = Es wurde eine Betaversion erkannt: {0}/{1}.
message.versioncheck.tooold = ACHTUNG: Eine alte Firmware wurde erkannt: {0}/{1}, minimal erforderlich {2}.
message.versioncheck.update = INFO: Eine neue Firmwareversion ist verfügbar, aktuell: {0}, neu: {1}
message.versioncheck.autocoiot = INFO: Die Firmware unterstützt die Anforderung, Auto-CoIoT wurde aktiviert.
message.init.noipaddress = Es konnte keine lokale IP-Adresse ermittelt werden. Bitte sicherstellen, dass IPv4 aktiviert ist und das richtige Interface in der openHAB Netzwerk-Konfiguration ausgewählt ist.
message.init.protected = Das Gerät ist passwortgeschützt, die Zugangsdaten müssen in der Thing Konfiguration hinterlegt werden.
message.command.failed = FEHLER: Der Befehl {0} für Kanal {1} kann nicht verarbeitet werden
message.command.init = Thing aktuell nicht initialisiert, der Befehl {0} führt zur Initialisierung
message.status.unknown.initializing = Initialisierung oder Gerät im Schlafmodus.
message.statusupdate.failed = Status konnte nicht aktualisiert werden
message.event.triggered = Event erzeugt\: {0}
message.coap.init.failed = CoAP/CoIoT konnte nicht gestartet werden\: {0}
message.discovery.disabled = Das Gerät ist als "nicht erkennen" markiert und wird nicht übernommen.
message.discovery.protected = Das Gerät mit der IP-Adresse {0} ist zugriffsgeschützt und keine Zugangsdaten konfiguriert.
message.discovery.failed = Erkennung des Gerätes mit der IP-Adresse {0} ist fehlgeschlagen\: {1}
message.roller.favmissing = Positions-Favoriten werden von der installierten Firmwareversion nicht unterstützt (ab 1.9.2), oder sind nicht in der Shelly App konfiguriert.
message.status.managerstarted = Shelly Manager wurde gestartet, Aufruf mit http(s)://{0}:{1}/shelly/manager"
message.event.triggered = Event erzeugt: {0}
message.event.triggered = Event gefiltert: {0}
message.coap.init.failed = CoAP/CoIoT konnte nicht gestartet werden: {0}
message.discovery.disabled = Das Gerät ist als "nicht erkennen" markiert und wird nicht übernommen.
message.discovery.protected = Das Gerät mit der IP-Adresse {0} ist zugriffsgeschützt und keine Zugangsdaten konfiguriert.
message.discovery.failed = Erkennung des Gerätes mit der IP-Adresse {0} ist fehlgeschlagen
message.roller.calibrating = Das Gerät ist nicht kalibriert. Es ist eine Kalibrierung mit der Shelly App erforderlich.
message.roller.favmissing = Positions-Favoriten werden von der installierten Firmwareversion nicht unterstützt (ab 1.9.2), oder sind nicht in der Shelly App konfiguriert.
# Device
channel-type.shelly.deviceName.label = Gerätename
channel-type.shelly.deviceName.description = Symbolischer Name des Gerätes (Konfiguration über Shelly App)
channel-type.shelly.sensorSleepTime.label = Sensor Standby Timer
channel-type.shelly.sensorSleepTime.description = Das Gerät sendet kein Ereignis solange die Zeitspanne nicht abgelaufen ist.
# thing types - descriptions only
thing-type.shelly.shellydevice.description = Ein passwortgeschütztes oder unbekanntes Gerät
thing-type.shelly.shellyunknown.description = Das Gerät wird aktuell nicht unterstützt
thing-type.shelly.shelly1.description = Shelly 1 (1x Relais)
thing-type.shelly.shelly1l.description = Shelly 1L (1x Relais, kein Neutral notwendig)
thing-type.shelly.shelly1pm.description = Shelly 1PM (1x Relais und Strommesser)
thing-type.shelly.shellyem.description = Shelly EM zur Energiemessung
thing-type.shelly.shellyem3.description = Shelly 3EM zur Energiemessung
thing-type.shelly.shelly2-relay.description = Shelly2 im Relais-Modus (2x Relais, Strommesser)
thing-type.shelly.shelly2-roller.description = Shelly2 im Rollladen-Modus (1x Rollladen, Strommesser)
thing-type.shelly.shelly25-relay.description = Shelly2.5 im Relais-Modus (2x Relais, 2x Strommesser)
thing-type.shelly.shelly25-roller.description = Shelly2.5 im Rollladen-Modus (1x Rollladen, Strommesser)
thing-type.shelly.shelly4pro.description = Shelly 4 Pro mit 4 Relais und Strommessern
thing-type.shelly.shellyplug.description = Shelly Plug als schaltbare Steckdose
thing-type.shelly.shellyplugu1.description = Shelly Plug-US als schaltbare Steckdose (110V)
thing-type.shelly.shellyplugs.description = Shelly Plug-S als schaltbare Steckdose
thing-type.shelly.shellyuni.description = Shelly UNI
thing-type.shelly.shellydimmer.description = Shelly mit Dimmer-Funktion
thing-type.shelly.shellydimmer2.description = Shelly mit Dimmer-Funktion, 2. Generation
thing-type.shelly.shellybutton1.description = Shelly Button 1 (batteriebetrieben)
thing-type.shelly.shellybutton2.description = Shelly Button 2 (batteriebetrieben)
thing-type.shelly.shellyht.description = Shelly H&T (Luftfeuchtigkeit- und Temperatursensor)
thing-type.shelly.shellydw.description = Shelly Tür/Fenstersensor (batteriebetrieben)
thing-type.shelly.shellydw2.description = Shelly Tür/Fenstersensor (batteriebetrieben)
thing-type.shelly.shellysmoke.description = Shelly Rauchmelder (batteriebetrieben)
thing-type.shelly.shellyflood.description = Shelly Wassermelder (batteriebetrieben)
thing-type.shelly.shellysense.description = Shelly Bewegungsmelder und IR Sender
thing-type.shelly.shellybulb.description = Shelly dimmbare Glühbirne (Farb- und Weißmodus)
thing-type.shelly.shellybulbduo.description = Shelly Duo dimmbare Glühbirne (Kalt- und Warmweiß)
thing-type.shelly.shellycolorbulb.description = Shelly dimmbare Glühbirne (Farb- und Weißmodus)
thing-type.shelly.shellyvintage.description = Shelly dimmbare Vintage Glühbirne
thing-type.shelly.shellyrgbw2-color.description = Shelly RGBW-Controller im Farbmodus
thing-type.shelly.shellyrgbw2-white.description = Shelly RGBW-Controller im Weiß-Modus, 4 Streifen
thing-type.shelly.shellymotion.description = Shelly Motion (Bewegungssensor, batteriebetrieben)
thing-type.shelly.shellymtrv.description = Shelly TRV (Heizkörperventiel, batteriebetrieben)
thing-type.shelly.shellygas.description = Shelly Gas (Gassensor - Gasleck Erkennung)
thing-type.shelly.shellytrv.description = Shelly TRV (Heizungsventil, batteriebetrieben)
thing-type.shelly.shellyix3.description = Shelly i3 (3x Eingang, Steuert andere Shelly-Geräte im Netzwerk)
# Relay, external sensors
# thing config - shellydevice
thing-type.config.shellydevice.userId.label = Benutzer
thing-type.config.shellydevice.userId.description = Benutzerkennung für API-Zugriff
thing-type.config.shellydevice.password.label = Passwort
thing-type.config.shellydevice.password.description = Passwort für API-Zugriff
thing-type.config.shellydevice.deviceIp.label = IP Adresse
thing-type.config.shellydevice.deviceIp.description = IP Adresse der Shelly-Komponente
# thing config - relay
thing-type.config.shelly.relay.userId.label = Benutzer
thing-type.config.shelly.relay.userId.description = Benutzerkennung für API-Zugriff
thing-type.config.shelly.relay.password.label = Passwort
thing-type.config.shelly.relay.password.description = Passwort für API-Zugriff
thing-type.config.shelly.relay.deviceIp.label = IP Adresse
thing-type.config.shelly.relay.deviceIp.description = IP Adresse der Shelly-Komponente
thing-type.config.shelly.relay.eventsButton.label = Button Events
thing-type.config.shelly.relay.eventsButton.description = Aktiviert die Button Action URLS
thing-type.config.shelly.relay.eventsPush.label = Push Events
thing-type.config.shelly.relay.eventsPush.description = Aktiviert die Push Button Action URLS
thing-type.config.shelly.relay.eventsSwitch.label = Output Events
thing-type.config.shelly.relay.eventsSwitch.description = Aktiviert die Output Action URLS
thing-type.config.shelly.relay.eventsCoIoT.label = CoIoT aktivieren
thing-type.config.shelly.relay.eventsCoIoT.description = Aktiviert CoIoT-Protokoll (CoAP-basiert)
thing-type.config.shelly.relay.updateInterval.label = Status-Intervall
thing-type.config.shelly.relay.updateInterval.description = Intervall für die Hintergundaktualisierung
# thing config - roller
thing-type.config.shelly.roller.userId.label = Benutzer
thing-type.config.shelly.roller.userId.description = Benutzerkennung für API-Zugriff
thing-type.config.shelly.roller.password.label = Passwort
thing-type.config.shelly.roller.password.description = Passwort für API-Zugriff
thing-type.config.shelly.roller.favoriteUP.label = Favoriten ID für UP
thing-type.config.shelly.roller.favoriteUP.description = Gibt die Favoriten ID an, die beim Command UP auf den roller#control channel verwendet wird (Konfiguration in der Shelly App)
thing-type.config.shelly.roller.favoriteDOWN.label = Favoriten ID für DOWN
thing-type.config.shelly.roller.favoriteDOWN.description = Gibt die Favoriten ID an, die beim Command DOWN auf den roller#control channel verwendet wird (Konfiguration in der Shelly App)
thing-type.config.shelly.roller.deviceIp.label = IP Adresse
thing-type.config.shelly.roller.deviceIp.description = IP Adresse der Shelly-Komponente
thing-type.config.shelly.roller.eventsRoller.label = Rollladen-Events
thing-type.config.shelly.roller.eventsRoller.description = Aktiviert die Roller Action URLS
thing-type.config.shelly.roller.eventsCoIoT.label = CoIoT aktivieren
thing-type.config.shelly.roller.eventsCoIoT.description = Aktiviert CoIoT-Protokoll (CoAP-basiert)
thing-type.config.shelly.roller.updateInterval.label = Status-Intervall
thing-type.config.shelly.roller.updateInterval.description = Intervall für die Hintergundaktualisierung
# thing config - dimmer
thing-type.config.shelly.dimmer.userId.label = Benutzer
thing-type.config.shelly.dimmer.userId.description = Benutzerkennung für API-Zugriff
thing-type.config.shelly.dimmer.password.label = Passwort
thing-type.config.shelly.dimmer.password.description = Passwort für API-Zugriff
thing-type.config.shelly.dimmer.deviceIp.label = IP Adresse
thing-type.config.shelly.dimmer.deviceIp.description = IP Adresse der Shelly-Komponente
thing-type.config.shelly.dimmer.brightnessAutoOn.label = Helligkeit Auto-EIN
thing-type.config.shelly.dimmer.brightnessAutoOn.description = an: Licht wird eingeschaltet, wenn ein Helligkeitswert größer 0 gesetzt wird; aus: Helligkeit wird gesetzt, aber das Gerät nicht eingeschaltet
thing-type.config.shelly.dimmer.eventsButton.label = Button Events
thing-type.config.shelly.dimmer.eventsButton.description = Aktiviert die Button Action URLS
thing-type.config.shelly.dimmer.eventsPush.label = Push Events
thing-type.config.shelly.dimmer.eventsPush.description = Aktiviert die Push Button Action URLS
thing-type.config.shelly.dimmer.eventsSwitch.label = Output Events
thing-type.config.shelly.dimmer.eventsSwitch.description = Aktiviert die Output Action URLS
thing-type.config.shelly.dimmer.eventsCoIoT.label = CoIoT aktivieren
thing-type.config.shelly.dimmer.eventsCoIoT.description = Aktiviert CoIoT-Protokoll (CoAP-basiert)
thing-type.config.shelly.dimmer.updateInterval.label = Status-Intervall
thing-type.config.shelly.dimmer.updateInterval.description = Intervall für die Hintergundaktualisierung
# thing config - light
thing-type.config.shelly.light.userId.label = Benutzer
thing-type.config.shelly.light.userId.description = Benutzerkennung für API-Zugriff
thing-type.config.shelly.light.password.label = Passwort
thing-type.config.shelly.light.password.description = Passwort für API-Zugriff
thing-type.config.shelly.light.deviceIp.label = IP Adresse
thing-type.config.shelly.light.deviceIp.description = IP Adresse der Shelly-Komponente
thing-type.config.shelly.light.brightnessAutoOn.label = Helligkeit Auto-EIN
thing-type.config.shelly.light.brightnessAutoOn.description = AN: Setzen einer Helligkeit > 0 schaltet das Gerät automatisch ein; AUS: Gerätestatus wird nicht geändert
thing-type.config.shelly.light.eventsButton.label = Button Events
thing-type.config.shelly.light.eventsButton.description = Aktiviert die Button Action URLS
thing-type.config.shelly.light.eventsPush.label = Push Events
thing-type.config.shelly.light.eventsPush.description = Aktiviert die Push Button Action URLS
thing-type.config.shelly.light.eventsSwitch.label = Output Events
thing-type.config.shelly.light.eventsSwitch.description = Aktiviert die Output Action URLS
thing-type.config.shelly.light.eventsCoIoT.label = CoIoT aktivieren
thing-type.config.shelly.light.eventsCoIoT.description = Aktiviert CoIoT-Protokoll (CoAP-basiert)
thing-type.config.shelly.light.updateInterval.label = Status-Intervall
thing-type.config.shelly.light.updateInterval.description = Intervall für die Hintergrundaktualisierung
# thing config - RGBW2
thing-type.config.shelly.rgbw2.userId.label = Benutzer
thing-type.config.shelly.rgbw2.userId.description = Benutzerkennung für API-Zugriff
thing-type.config.shelly.rgbw2.password.label = Passwort
thing-type.config.shelly.rgbw2.password.description = Passwort für API-Zugriff
thing-type.config.shelly.rgbw2.deviceIp.label = IP Adresse
thing-type.config.shelly.rgbw2.deviceIp.description = IP Adresse der Shelly-Komponente
thing-type.config.shelly.rgbw2.brightnessAutoOn.label = Helligkeit Auto-EIN
thing-type.config.shelly.rgbw2.brightnessAutoOn.description = AN: Setzen einer Helligkeit > 0 schaltet das Gerät automatisch ein; AUS: Gerätestatus wird nicht geändert
thing-type.config.shelly.rgbw2.eventsCoIoT.label = CoIoT aktivieren
thing-type.config.shelly.rgbw2.eventsCoIoT.description = Aktiviert CoIoT-Protokoll (CoAP-basiert)
thing-type.config.shelly.rgbw2.updateInterval.label = Status-Intervall
thing-type.config.shelly.rgbw2.updateInterval.description = Intervall für die Hintergrundaktualisierung
# thing config - battery
thing-type.config.shelly.battery.userId.label = Benutzer
thing-type.config.shelly.battery.userId.description = Benutzerkennung für API-Zugriff
thing-type.config.shelly.battery.password.label = Passwort
thing-type.config.shelly.battery.password.description = Passwort für API-Zugriff
thing-type.config.shelly.battery.deviceIp.label = IP Adresse
thing-type.config.shelly.battery.deviceIp.description = IP Adresse der Shelly-Komponente
thing-type.config.shelly.battery.eventsSensorReport.label = Sensor Events
thing-type.config.shelly.battery.eventsSensorReport.description = Aktiviert die Sensor Action URLS
thing-type.config.shelly.battery.eventsCoIoT.label = CoIoT aktivieren
thing-type.config.shelly.battery.eventsCoIoT.description = Aktiviert CoIoT-Protokoll (CoAP-basiert)
thing-type.config.shelly.battery.lowBattery.label = Batterieladung niedrig (%)
thing-type.config.shelly.battery.lowBattery.description = Ein Alarm wird ausgelöst, wenn das Gerät eine Batterieladung kleiner diesem Schwellwert meldet. Default: 20%
thing-type.config.shelly.battery.updateInterval.label = Status-Intervall
thing-type.config.shelly.battery.updateInterval.description = Intervall für die Hintergundaktualisierung
# channel-groups
thing-type.shelly.shelly1.group.relay.label = Relais
thing-type.shelly.shelly1.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly1.group.sensors.label = Externe Sensoren
thing-type.shelly.shelly1.group.sensors.description = Temperaturwerte der externen Sensoren (nur wenn angeschlossen)
thing-type.shelly.shelly1.group.device.label = Gerätestatus
thing-type.shelly.shelly1.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shelly1pm.group.relay.label = Relais
thing-type.shelly.shelly1pm.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly1pm.group.meter.label = Verbrauch
thing-type.shelly.shelly1pm.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly1pm.group.sensors.label = Externe Sensoren
thing-type.shelly.shelly1pm.group.sensors.description = Werte der externen Sensoren (nur wenn angeschlossen)
thing-type.shelly.shelly1pm.group.device.label = Gerätestatus
thing-type.shelly.shelly1pm.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shelly1l.group.relay.label = Relais
thing-type.shelly.shelly1l.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly1l.group.meter.label = Verbrauch
thing-type.shelly.shelly1l.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly1l.group.sensors.label = Externe Sensoren
thing-type.shelly.shelly1l.group.sensors.description = Temperaturwerte der externen Sensoren (nur wenn angeschlossen)
thing-type.shelly.shelly1l.group.device.label = Gerätestatus
thing-type.shelly.shelly1l.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyem.group.relay.label = Relais
thing-type.shelly.shellyem.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellyem.group.meter1.label = Verbrauch 1
thing-type.shelly.shellyem.group.meter1.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyem.group.meter2.label = Verbrauch 2
thing-type.shelly.shellyem.group.meter2.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyem.group.device.label = Gerätestatus
thing-type.shelly.shellyem.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyem3.group.relay.label = Relais
thing-type.shelly.shellyem3.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellyem3.group.meter1.label = Verbrauch 1
thing-type.shelly.shellyem3.group.meter1.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyem3.group.meter2.label = Verbrauch 2
thing-type.shelly.shellyem3.group.meter2.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyem3.group.meter3.label = Verbrauch 3
thing-type.shelly.shellyem3.group.meter3.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyem3.group.device.label = Gerätestatus
thing-type.shelly.shellyem3.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shelly2-relay.group.relay1.label = Relais 1
thing-type.shelly.shelly2-relay.group.relay1.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly2-relay.group.relay2.label = Relais 2
thing-type.shelly.shelly2-relay.group.relay2.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly2-relay.group.meter.label = Verbrauch
thing-type.shelly.shelly2-relay.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly2-relay.group.device.label = Gerätestatus
thing-type.shelly.shelly2-relay.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shelly2-roller.group.roller.label = Rollladen
thing-type.shelly.shelly2-roller.group.roller.description = Rollladensteuerung und Status
thing-type.shelly.shelly2-roller.group.meter.label = Verbrauch
thing-type.shelly.shelly2-roller.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly2-roller.group.device.label = Gerätestatus
thing-type.shelly.shelly2-roller.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shelly25-relay.group.relay1.label = Relais 1
thing-type.shelly.shelly25-relay.group.relay1.description = Relais Ein-/Ausgänge und -Funktionen
thing-type.shelly.shelly25-relay.group.relay2.label = Relais 2
thing-type.shelly.shelly25-relay.group.relay2.description = Relais Ein-/Ausgänge und -Funktionen
thing-type.shelly.shelly25-relay.group.meter1.label = Verbrauch 1
thing-type.shelly.shelly25-relay.group.meter1.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly25-relay.group.meter2.label = Verbrauch 2
thing-type.shelly.shelly25-relay.group.meter2.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly25-relay.group.device.label = Gerätestatus
thing-type.shelly.shelly25-relay.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shelly25-roller.group.roller.label = Rollladen
thing-type.shelly.shelly25-roller.group.roller.description = Rollladensteuerung und Status
thing-type.shelly.shelly25-roller.group.meter.label = Verbrauch
thing-type.shelly.shelly25-roller.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly25-roller.group.device.label = Gerätestatus
thing-type.shelly.shelly25-roller.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shelly4pro.group.relay1.label = Relais 1
thing-type.shelly.shelly4pro.group.relay1.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly4pro.group.relay2.label = Relais 2
thing-type.shelly.shelly4pro.group.relay2.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly4pro.group.relay3.label = Relais 3
thing-type.shelly.shelly4pro.group.relay3.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly4pro.group.relay4.label = Relais 4
thing-type.shelly.shelly4pro.group.relay4.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shelly4pro.group.meter1.label = Verbrauch 1
thing-type.shelly.shelly4pro.group.meter1.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly4pro.group.meter2.label = Verbrauch 2
thing-type.shelly.shelly4pro.group.meter2.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly4pro.group.meter3.label = Verbrauch 3
thing-type.shelly.shelly4pro.group.meter3.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly4pro.group.meter4.label = Verbrauch 4
thing-type.shelly.shelly4pro.group.meter4.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shelly4pro.group.device.label = Gerätestatus
thing-type.shelly.shelly4pro.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyplug.group.relay.label = Relais
thing-type.shelly.shellyplug.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellyplug.group.meter.label = Verbrauch
thing-type.shelly.shellyplug.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyplug.group.device.label = Gerätestatus
thing-type.shelly.shellyplug.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyplugs.group.relay.label = Relais
thing-type.shelly.shellyplugs.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellyplugs.group.meter.label = Verbrauch
thing-type.shelly.shellyplugs.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyplugs.group.device.label = Gerätestatus
thing-type.shelly.shellyplugs.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyplugu1.group.relay.label = Relais
thing-type.shelly.shellyplugu1.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellyplugu1.group.meter.label = Verbrauch
thing-type.shelly.shellyplugu1.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyplugu1.group.device.label = Gerätestatus
thing-type.shelly.shellyplugu1.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyuni.group.relay1.label = Relais 1
thing-type.shelly.shellyuni.group.relay1.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellyuni.group.relay2.label = Relais 2
thing-type.shelly.shellyuni.group.relay2.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellyuni.group.sensors.label = Sensordaten
thing-type.shelly.shellyuni.group.sensors.description = Daten der angeschlossenen Sensoren
thing-type.shelly.shellyuni.group.device.label = Gerätestatus
thing-type.shelly.shellyuni.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellydimmer.group.relay.label = Relais
thing-type.shelly.shellydimmer.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellydimmer.group.meter.label = Verbrauch
thing-type.shelly.shellydimmer.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellydimmer.group.device.label = Gerätestatus
thing-type.shelly.shellydimmer.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellydimmer2.group.relay.label = Relais
thing-type.shelly.shellydimmer2.group.relay.description = Relais Ein-/Ausgänge und Status
thing-type.shelly.shellydimmer2.group.meter.label = Verbrauch
thing-type.shelly.shellydimmer2.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellydimmer2.group.device.label = Gerätestatus
thing-type.shelly.shellydimmer2.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyix3.group.status1.label = Eingang 1
thing-type.shelly.shellyix3.group.status1.description = Status Informationen zum Eingang 1
thing-type.shelly.shellyix3.group.status2.label = Eingang 2
thing-type.shelly.shellyix3.group.status2.description = Status Informationen zum Eingang 2
thing-type.shelly.shellyix3.group.status3.label = Eingang 3
thing-type.shelly.shellyix3.group.status3.description = Status Informationen zum Eingang 3
thing-type.shelly.shellyix3.group.device.label = Gerätestatus
thing-type.shelly.shellyix3.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellybutton1.group.status.label = Taster-Status
thing-type.shelly.shellybutton1.group.status.description = Informationen zum Gerätestatus
thing-type.shelly.shellybutton1.group.battery.label = Batteriestatus
thing-type.shelly.shellybutton1.group.battery.description = Informationen zum Akku
thing-type.shelly.shellybutton1.group.device.label = Gerätestatus
thing-type.shelly.shellybutton1.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellybutton2.group.status.label = Taster-Status
thing-type.shelly.shellybutton2.group.status.description = Informationen zum Gerätestatus
thing-type.shelly.shellybutton2.group.battery.label = Batteriestatus
thing-type.shelly.shellybutton2.group.battery.description = Informationen zum Akku
thing-type.shelly.shellybutton2.group.device.label = Gerätestatus
thing-type.shelly.shellybutton2.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellybulb.group.control.label = Steuerung
thing-type.shelly.shellybulb.group.control.description = Steuerung des Lichts
thing-type.shelly.shellybulb.group.color.label = Farbmodus
thing-type.shelly.shellybulb.group.color.description = Einstellungen für den Farbmodus
thing-type.shelly.shellybulb.group.white.label = Weißwerte
thing-type.shelly.shellybulb.group.white.description = Einstellungen für den Weiß-Modus
thing-type.shelly.shellybulb.group.device.label = Gerätestatus
thing-type.shelly.shellybulb.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellybulbduo.group.control.label = Steuerung
thing-type.shelly.shellybulbduo.group.control.description = Steuerung des Lichts
thing-type.shelly.shellybulbduo.group.white.label = Weißwerte
thing-type.shelly.shellybulbduo.group.white.description = Einstellungen für den Weiß-Modus
thing-type.shelly.shellybulbduo.group.meter.label = Verbrauch
thing-type.shelly.shellybulbduo.group.meter.description = Verbrauchswerte
thing-type.shelly.shellybulbduo.group.device.label = Gerätestatus
thing-type.shelly.shellybulbduo.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellycolorbulb.group.control.label = Steuerung
thing-type.shelly.shellycolorbulb.group.control.description = Steuerung des Lichts
thing-type.shelly.shellycolorbulb.group.white.label = Weißwerte
thing-type.shelly.shellycolorbulb.group.white.description = Einstellungen für den Weiß-Modus
thing-type.shelly.shellycolorbulb.group.meter.label = Verbrauch
thing-type.shelly.shellycolorbulb.group.meter.description = Verbrauchswerte
thing-type.shelly.shellycolorbulb.group.device.label = Gerätestatus
thing-type.shelly.shellycolorbulb.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyvintage.group.control.label = Steuerung
thing-type.shelly.shellyvintage.group.control.description = Steuerung des Lichts
thing-type.shelly.shellyvintage.group.white.label = Steuerung
thing-type.shelly.shellyvintage.group.white.description = Geräteeinstellungen
thing-type.shelly.shellyvintage.group.meter.label = Verbrauch
thing-type.shelly.shellyvintage.group.meter.description = Verbrauchswerte
thing-type.shelly.shellyvintage.group.device.label = Gerätestatus
thing-type.shelly.shellyvintage.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyrgbw2-color.group.control.label = Steuerung
thing-type.shelly.shellyrgbw2-color.group.control.description = Steuerung des Controllers
thing-type.shelly.shellyrgbw2-color.group.color.label = Farben
thing-type.shelly.shellyrgbw2-color.group.color.description = Farbwerte und Profile
thing-type.shelly.shellyrgbw2-color.group.meter.label = Verbrauch
thing-type.shelly.shellyrgbw2-color.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyrgbw2-color.group.device.label = Gerätestatus
thing-type.shelly.shellyrgbw2-color.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyrgbw2-white.group.control.label = Steuerung
thing-type.shelly.shellyrgbw2-white.group.control.description = Lichtsteuerung
thing-type.shelly.shellyrgbw2-white.group.channel1.label = Kanal 1
thing-type.shelly.shellyrgbw2-white.group.channel1.description = Steuerung für Kanal 1
thing-type.shelly.shellyrgbw2-white.group.channel2.label = Kanal 2
thing-type.shelly.shellyrgbw2-white.group.channel2.description = Steuerung für Kanal 2
thing-type.shelly.shellyrgbw2-white.group.channel3.label = Kanal 3
thing-type.shelly.shellyrgbw2-white.group.channel3.description = Steuerung für Kanal 3
thing-type.shelly.shellyrgbw2-white.group.channel4.label = Kanal 4
thing-type.shelly.shellyrgbw2-white.group.channel4.description = Steuerung für Kanal 4
thing-type.shelly.shellyrgbw2-white.group.meter.label = Verbrauch
thing-type.shelly.shellyrgbw2-white.group.meter.description = Verbrauchswerte und andere Informationen
thing-type.shelly.shellyrgbw2-white.group.device.label = Gerätestatus
thing-type.shelly.shellyrgbw2-white.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyht.group.sensors.label = Sensorwerte
thing-type.shelly.shellyht.group.sensors.description = Messwerte und Status des Sensors
thing-type.shelly.shellyht.group.battery.label = Batterie-Status
thing-type.shelly.shellyht.group.battery.description = Informationen zum Akku
thing-type.shelly.shellyht.group.device.label = Gerätestatus
thing-type.shelly.shellyht.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellyflood.group.sensors.label = Sensorwerte
thing-type.shelly.shellyflood.group.sensors.description = Messwerte und Status des Sensors
thing-type.shelly.shellyflood.group.battery.label = Batterie-Status
thing-type.shelly.shellyflood.group.battery.description = Informationen zum Akku
thing-type.shelly.shellyflood.group.device.label = Gerätestatus
thing-type.shelly.shellyflood.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellydw.group.sensors.label = Sensordaten
thing-type.shelly.shellydw.group.sensors.description = Messwerte und Status des Sensors
thing-type.shelly.shellydw.group.battery.label = Batterie-Status
thing-type.shelly.shellydw.group.battery.description = Informationen zum Akku
thing-type.shelly.shellydw.group.device.label = Gerätestatus
thing-type.shelly.shellydw.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellydw2.group.sensors.label = Sensordaten
thing-type.shelly.shellydw2.group.sensors.description = Messwerte und Status des Sensors
thing-type.shelly.shellydw2.group.battery.label = Batterie-Status
thing-type.shelly.shellydw2.group.battery.description = Informationen zum Akku
thing-type.shelly.shellydw2.group.device.label = Gerätestatus
thing-type.shelly.shellydw2.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellysmoke.sensors.device.label = Sensordaten
thing-type.shelly.shellysmoke.sensors.device.description = Messwerte und Status des Sensors
thing-type.shelly.shellysmoke.group.battery.label = Batterie-Status
thing-type.shelly.shellysmoke.group.battery.description = Informationen zum Akku
thing-type.shelly.shellysmoke.group.device.label = Gerätestatus
thing-type.shelly.shellysmoke.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellysense.sensors.device.label = Sensordaten
thing-type.shelly.shellysense.sensors.device.description = Messwerte und Status des Sensors
thing-type.shelly.shellysense.group.device.label = Gerätestatus
thing-type.shelly.shellysense.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellygas.group.sensors.label = Sensordaten
thing-type.shelly.shellygas.group.sensors.description = Messwerte und Status des Sensors
thing-type.shelly.shellygas.group.device.label = Gerätestatus
thing-type.shelly.shellygas.group.device.description = Informationen zum Gerätestatus
thing-type.shelly.shellymotion.group.sensors.label = Sensordaten
thing-type.shelly.shellymotion.group.sensors.description = Messwerte und Status des Sensors
thing-type.shelly.shellymotion.group.battery.label = Batteriestatus
thing-type.shelly.shellymotion.group.battery.description = Informationen zum Akku
thing-type.shelly.shellymotion.group.device.label = Gerätestatus
thing-type.shelly.shellymotion.group.device.description = Informationen zum Gerätestatus
# channel groups
channel-group-type.shelly.sensorData.label = Sensordaten
channel-group-type.shelly.sensorData.description = Messwerte der Sensoren
channel-group-type.shelly.batteryStatus.label = Batterie-Status
channel-group-type.shelly.batteryStatus.description = Informationen zum Akku
channel-group-type.shelly.control.label = Steuerung
channel-group-type.shelly.control.description = Steuerung des Gerätes
channel-group-type.shelly.buttonState.label = Taster-Status
channel-group-type.shelly.buttonState.description = Status des Tasters
channel-group-type.shelly.deviceStatus.label = Gerätestatus
channel-group-type.shelly.deviceStatus.description = Informationen zum Gerätestatus
channel-group-type.shelly.bulbControl.label = Lichtsteuerung
channel-group-type.shelly.bulbControl.description = Lichtsteuerung
channel-group-type.shelly.duoControl.label = Lichtsteuerung
channel-group-type.shelly.duoControl.description = Lichtsteuerung
channel-group-type.shelly.rgbw2ColorControl.label = LED-Streifen Steuerung (RGBW)
channel-group-type.shelly.rgbw2ColorControl.description = Steuerung der LED-Streifen (Farbmodus)
channel-group-type.shelly.rgbw2WhiteControl.label = LED-Streifen Steuerung (Weiß)
channel-group-type.shelly.rgbw2WhiteControl.description = Steuerung der LED-Streifen (Weißmodus)
channel-group-type.shelly.colorSettingsBulb.label = Farben
channel-group-type.shelly.colorSettingsBulb.description = Lichtfarben
channel-group-type.shelly.colorSettingsRGBW2.label = Farben
channel-group-type.shelly.colorSettingsRGBW2.description = Lichtfarben
channel-group-type.shelly.whiteSettings.label = Einstellungen für den Weißmodus
channel-group-type.shelly.whiteSettings.description = Anpassung des Lichtfarben wenn das Gerät im Weißmodus betrieben wird
channel-group-type.shelly.whiteSettingsSimple.label = Einstellungen für den Weißmodus
channel-group-type.shelly.whiteSettingsSimple.description = Anpassung des Lichtfarben wenn das Gerät im Weißmodus betrieben wird
channel-group-type.shelly.rgbw2Channel.label = Steuerung
channel-group-type.shelly.rgbw2Channel.description = Steuerung der Kanäle und Einstellungen
channel-group-type.shelly.relayChannel.label = Relais
channel-group-type.shelly.relayChannel.description = Shelly Relais Kanal
channel-group-type.shelly.relayChannelPlug.label = Relais
channel-group-type.shelly.relayChannelPlug.description = Shelly Relais Kanal
channel-group-type.shelly.dimmerChannel.label = Dimmer
channel-group-type.shelly.dimmerChannel.description = Shelly Dimmer Kanal
channel-group-type.shelly.ix3Channel.label = Eingang
channel-group-type.shelly.ix3Channel.description = Status des Eingangs
channel-group-type.shelly.rollerControl.label = Rollladensteuerung
channel-group-type.shelly.rollerControl.description = Steuerung der Rollladen
channel-group-type.shelly.meter.label = Verbrauch
channel-group-type.shelly.meter.description = Verbrauchswerte
channel-group-type.shelly.externalSensors.label = Externe Sensoren
channel-group-type.shelly.externalSensors.description = Werte der externen Sensoren (nur wenn angeschlossen)
# channels
channel-type.shelly.outputName.label = Ausgangsname
channel-type.shelly.outputName.description = Name des Relais-Ausgangs/Kanals (Konfiguration innerhalb der Shelly App)
channel-type.shelly.timerAutoOn.label = Auto-EIN Timer
channel-type.shelly.timerAutoOn.description = Wenn das Relais ausgeschaltet wird, wird dieses automatisch wieder nach n Sekunden eingeschaltet
channel-type.shelly.timerAutoOff.label = Auto-AUS Timer
channel-type.shelly.timerAutoOff.description = Wenn das Relais eingeschaltet wird, wird dieses automatisch wieder nach n Sekunden ausgeschaltet
channel-type.shelly.timerActive.label = Timer aktiv
channel-type.shelly.timerActive.description = ON: Auto-On/Off Timer ist aktiv
channel-type.shelly.temperature.label = Temperatur
channel-type.shelly.temperature.description = Vom Sensor gemessene Temperatur
channel-type.shelly.temperature1.label = Temperatur 1
channel-type.shelly.temperature1.description = Temperatur des externen Sensors 1
channel-type.shelly.temperature2.label = Temperatur 2
@@ -56,79 +508,254 @@ channel-type.shelly.temperature3.label = Temperatur 3
channel-type.shelly.temperature3.description = Temperatur des externen Sensors 3
channel-type.shelly.humidity.label = Luftfeuchtigkeit
channel-type.shelly.humidity.description = Relative Luftfeuchtigkeit (0..100%)
channel-type.shelly.targetTemp.label = Zieltemperatur
channel-type.shelly.targetTemp.description = Zieltemperatur in °C, die erreicht werden soll im Auto-Temperatur Modus
channel-type.shelly.controlMode.label = Modus
channel-type.shelly.controlMode.description = Sensor/Steuerungsmodus
channel-type.shelly.controlMode.state.option.manual = Manuell
channel-type.shelly.controlMode.state.option.automatic = Automatisch
channel-type.shelly.controlProfile.label = Profil
channel-type.shelly.controlProfile.description = Ausgewähltes Profil
channel-type.shelly.boostControl.label = Boost-Modus
channel-type.shelly.boostControl.description = ON: Boost-Modus aktiviert (überschreibt Temperaturautomatik)
channel-type.shelly.boostTimer.label = Boost-Timer
channel-type.shelly.boostTimer.description = Anzahl Minuten, in dem die maximale Leistung erzeugt wird.
channel-type.shelly.rollerShutter.label = Rollladensteuerung (0=offen, 100=geschlossen)
channel-type.shelly.rollerShutter.description = Steuerung für den Rollladen: UP=rauf, DOWN=runter, STOP, Position (0=offen, 100=geschlossen)
channel-type.shelly.rollerPosition.label = Rollladenposition (100=offen, 0=zu)
channel-type.shelly.rollerPosition.description = Position des Rollladen (100-0%, 100%=offen, 0%=zu)
channel-type.shelly.rollerFavorite.label = Positionsfavorit
channel-type.shelly.rollerFavorite.description = Wählt den Positionsfavoriten 1-4, Positionen werden in der Shelly App konfiguriert; 0=undefiniert (kein Favorit gewählt)
channel-type.shelly.rollerState.label = Rollladenstatus
channel-type.shelly.rollerState.description = Zustand des Rollladen (open/closed/stopped für geöffnet/geschlossen/gestoppt).
channel-type.shelly.rollerState.state.option.open = öffnet
channel-type.shelly.rollerState.state.option.close = schließt
channel-type.shelly.rollerState.state.option.stop = gestoppt
channel-type.shelly.rollerStop.label = Stoppgrund
channel-type.shelly.rollerStop.description = Letzter Grund für das Stoppen des Rollladens (normal=normaler Stopp, safety_switch=Sicherheits-Stopp, obstacle=Rollladen verhakt (Widerstand erkannt)
channel-type.shelly.rollerStop.state.option.normal = Normaler Stopp
channel-type.shelly.rollerStop.state.option.safety_switch = Sicherheits-Stopp
channel-type.shelly.rollerStop.state.option.obstacle = Widerstand erkannt
channel-type.shelly.rollerDirection.label = Letzte Rollladenrichtung
channel-type.shelly.rollerDirection.description = Letzte Rollladenrichtung: öffnet/schließt/gestoppt
channel-type.shelly.rollerDirection.state.option.open = öffnet
channel-type.shelly.rollerDirection.state.option.close = schließt
channel-type.shelly.rollerDirection.state.option.stop = gestoppt
channel-type.shelly.rollerSafety.label = Sicherheitsschalter
channel-type.shelly.rollerSafety.description = Status des Sicherheitsschalters
channel-type.shelly.inputState.label = Eingang
channel-type.shelly.inputState.description = Status des Relais-Eingangs
channel-type.shelly.inputState1.label = Eingang 1
channel-type.shelly.inputState1.description = Status des Relais-Eingangs 1
channel-type.shelly.inputState2.label = Eingang 2
channel-type.shelly.inputState2.description = Status des Relais-Eingangs 2
channel-type.shelly.inputState3.label = Eingang 3
channel-type.shelly.inputState3.description = Status des Relais-Eingangs 3
channel-type.shelly.dimmerBrightness.label = Helligkeit
channel-type.shelly.dimmerBrightness.description = Helligkeit (0-100%, 0=aus)
channel-type.shelly.whiteBrightness.label = Helligkeit
channel-type.shelly.whiteBrightness.description = Helligkeit (0-100%, 0=aus)
channel-type.shelly.meterWatts.label = Leistung
channel-type.shelly.meterWatts.description = Aktueller Stromverbrauch in Watt
channel-type.shelly.meterAccuWatts.label = Kumulierter Verbrauch
channel-type.shelly.meterAccuWatts.description = Kumulierter Verbrauch in Watt
channel-type.shelly.meterAccuTotal.label = Kumulierter Gesamtverbrauch
channel-type.shelly.meterAccuTotal.description = Kumulierter Gesamtverbrauch in kW/h
channel-type.shelly.meterAccuReturned.label = Kumulierte Einspeisung
channel-type.shelly.meterAccuReturned.description = Kumulierte Einspeisung in kW/h
channel-type.shelly.meterReactive.label = Rückstrom
channel-type.shelly.meterReactive.description = Aktueller Stromverbrauch (Watt) des Rückstroms
channel-type.shelly.lastPower1.label = Schnitt letzte Min
channel-type.shelly.lastPower1.description = Durchschnittsverbrauch der letzten Minute, 60s in Watt/Min
channel-type.shelly.meterTotal.label = Gesamtverbrauch
channel-type.shelly.meterTotal.description = Gesamtverbrauch seit Neustart in kW/h
channel-type.shelly.meterReturned.label = Einspeisung
channel-type.shelly.meterReturned.description = Einspeisung in kW/h
channel-type.shelly.meterVoltage.label = Spannung
channel-type.shelly.meterVoltage.description = Spannung in Volt
channel-type.shelly.meterCurrent.label = Stromstärke
channel-type.shelly.meterCurrent.description = Aktuelle gemessene Stromstärke
channel-type.shelly.meterPowerFactor.label = Stromfaktor
channel-type.shelly.meterPowerFactor.description = Faktor für Strom bei Photovoltaik
channel-type.shelly.timestamp.label = Letzte Aktualisierung
channel-type.shelly.timestamp.description = Zeitstempel der letzten Aktualisierung (lokale Zeitzone)
channel-type.shelly.ledStatusDisable.label = Status-LED aus
channel-type.shelly.ledStatusDisable.description = ON: Die Status-LED am Gerät ist deaktiviert
channel-type.shelly.ledPowerDisable.label = Betriebs-LED aus
channel-type.shelly.ledPowerDisable.description = ON: Die Betriebsanzeige (LED) am Gerät ist deaktiviert
channel-type.shelly.colorMode.label = Farbmodus (ON=Farbe, OFF=Weiß)
channel-type.shelly.colorMode.description = Betriebsart: ON: Farbe, OFF: Weiß
channel-type.shelly.colorFull.label = Voll-Farbe
channel-type.shelly.colorFull.description = Ausgewählte Farbe (rot/grün/blau/gelb/weiß) wird auf volle Intensität gesetzt (255)
channel-type.shelly.colorFull.state.option.red = Rot
channel-type.shelly.colorFull.state.option.green = Grün
channel-type.shelly.colorFull.state.option.blue = Blau
channel-type.shelly.colorFull.state.option.yellow = Gelb
channel-type.shelly.colorFull.state.option.white = Weiß
channel-type.shelly.colorRed.label = Rot
channel-type.shelly.colorRed.description = Rot-Anteil des RGB-Wertes (0-255)
channel-type.shelly.colorGreen.label = Grün
channel-type.shelly.colorGreen.description = Grün-Anteil des RGB-Wertes (0-255)
channel-type.shelly.colorBlue.label = Blau
channel-type.shelly.colorBlue.description = Blau-Anteil des RGB-Wertes (0-255)
channel-type.shelly.colorWhite.label = Weiß
channel-type.shelly.colorWhite.description = Weiß-Anteil des RGBW-Wertes (0-255)
channel-type.shelly.colorGain.label = Verstärkung
channel-type.shelly.colorGain.description = Verstärkung des Farbwertes (0-100%)
channel-type.shelly.whiteTemp.label = Lichttemperatur
channel-type.shelly.whiteTemp.description = Temperatur des Weißlichtes (Bulb/RGBW2: 3000K-6500K; Duo: 2700K-6500K)
channel-type.shelly.colorEffectBulb.label = Lichteffekt
channel-type.shelly.colorEffectBulb.description = Lichteffekt: 0: keiner, 1: Meteoritenregen, 2: Verlauf, 3: Atmen, 4: Blitzen, 5: Übergang ein/aus, 6: Rot/Grün-Wechsel
channel-type.shelly.colorEffectBulb.option.0 = Aus
channel-type.shelly.colorEffectBulb.option.1 = Meteoritenregen
channel-type.shelly.colorEffectBulb.option.2 = Verlauf
channel-type.shelly.colorEffectBulb.option.3 = Atmen
channel-type.shelly.colorEffectBulb.option.4 = Blitzen
channel-type.shelly.colorEffectBulb.option.5 = Übergang ein/aus
channel-type.shelly.colorEffectBulb.option.6 = Rot/Grün-Wechsel
channel-type.shelly.colorEffectRGBW2.label = Farbeffekt
channel-type.shelly.colorEffectRGBW2.description = Lichteffekt: 0: keiner, 1: Meteoritenregen, 2: Farbverlauf, 3: Blitzen
channel-type.shelly.colorEffectRGBW2.option.0 = Aus
channel-type.shelly.colorEffectRGBW2.option.1 = Meteoritenregen
channel-type.shelly.colorEffectRGBW2.option.2 = Farbverlauf
channel-type.shelly.colorEffectRGBW2.option.3 = Blitzen
channel-type.shelly.sensorTemp.label = Temperatur
channel-type.shelly.sensorTemp.description = Aktuelle Temperatur des Sensors in °C
channel-type.shelly.sensorExtTemp.label = Temperatur
channel-type.shelly.sensorExtTemp.description = Aktuelle Temperatur des externen Sensors in °C
channel-type.shelly.sensorExtHum.label = Luftfeuchtigkeit
channel-type.shelly.sensorExtHum.description = Relative Luftfeuchtigkeit in %
channel-type.shelly.sensorHumidity.label = Luftfeuchtigkeit
channel-type.shelly.sensorHumidity.description = Relative Luftfeuchtigkeit in %
channel-type.shelly.sensorFlood.label = Wasseralarm
channel-type.shelly.sensorFlood.description = Alarm: Es wurde Wasser erkannt
channel-type.shelly.sensorSmoke.label = Rauchalarm
channel-type.shelly.sensorSmoke.description = Alarm: Es wurde Rauch erkannt
channel-type.shelly.sensorLux.label = Helligkeit
channel-type.shelly.sensorLux.description = Helligkeit in Lux
channel-type.shelly.sensorIllumination.label = Tageslicht
channel-type.shelly.sensorIllumination.description = Erkanntes Tageslicht (bright=taghell, twilight=Dämmerung, dark=Abend/Nacht)
channel-type.shelly.sensorIllumination.state.option.dark = Dunkel
channel-type.shelly.sensorIllumination.state.option.twilight = Dämmerung
channel-type.shelly.sensorIllumination.state.option.bright = Hell
channel-type.shelly.sensorIllumination.state.option.unknown = Unbekannt
channel-type.shelly.sensorPPM.label = Gas-Konzentration
channel-type.shelly.sensorPPM.description = Gemessene Konzentration in PPM
channel-type.shelly.sensorPosition.label = Position
channel-type.shelly.sensorPosition.description = Position des Ventils
channel-type.shelly.sensorADC.label = Voltage (ADC)
channel-type.shelly.sensorADC.description = Gemessene Spannung
channel-type.shelly.sensorTilt.label = Öffnungswinkel
channel-type.shelly.sensorTilt.description = Öffnungswinkel in Grad (erfordert Kalibrierung in der App)
channel-type.shelly.sensorVibration.label = Vibration
channel-type.shelly.sensorVibration.description = ON: Sensor hat eine Vibration erkannt
channel-type.shelly.sensorMotion.label = Bewegung
channel-type.shelly.sensorMotion.description = ON: Es wurde eine Bewegung erkannt
channel-type.shelly.motionActive.label = Bewegungssensor aktiv
channel-type.shelly.motionActive.description = Zeigt an, ob die Bewegungserkennung aktiv oder pausiert ist
channel-type.shelly.motionTimestamp.label = Letzte Bewegung
channel-type.shelly.motionTimestamp.description = Datum/Uhrzeit, wann die letzte Bewegung erkannt wurde.
# Roller
channel-type.shelly.rollerState.label = Status
channel-type.shelly.rollerState.description = Zustand des Rollladen (open/closed/stopped).
# LED disable
channel-type.shelly.ledPowerDisable.label = Betriebs-LED aus
channel-type.shelly.ledPowerDisable.description = ON\: Die Betriebsanzeige (LED) am Gerät ist deaktiviert
channel-type.shelly.ledStatusDisable.label = Status-LED aus
channel-type.shelly.ledStatusDisable.description = ON\: Die Status-LED am Gerät ist deaktiviert
# Shelly Manager
message.manager.invalid-url = Ungültige URL oder Syntax
message.manager.buttons.ok = OK
message.manager.buttons.abort = Abbrechen
message.manager.action.unknown = Aktion {0} ist unbekannt
message.manager.action.reset-stats = Statistik zurücksetzen
message.manager.action.restart = Gerät neustarten
message.manager.action.restart.info = Das Gerät wird neu gestartet und verbindet sich mit WiFi. Es wird einen Moment dauern, bis der Gerätestatus in openHAB aktualisiert wird.
message.manager.action.restart.confirm = Das Gerät wird neu gestartet und verbindet sich mit WiFi.
message.manager.action.resstats.confirm = Die Gerätestatistik und der Alarm wurden zurückgesetzt.
message.manager.action.setcloud.config = Cloud-Funktion ist jetzt {0}.
message.manager.action.protect = Gerät schützen
message.manager.action.protect.id-missing = Die Anmeldeinformationen für den Gerätezugriff sind nicht konfiguriert. Gehen Sie zu den Shelly-Bindungseinstellungen und geben Sie eine Benutzerkennung und ein Kennwort ein.<br/>Sie können die Aktion "Schützen" verwenden, um diese Konfiguration auf das Gerät anzuwenden.
message.manager.action.protect.status = Der Geräteschutz ist derzeit {0}. Für den Zugriff auf das Gerät ist die Benutzerkennung {1} erforderlich.
message.manager.action.protect.new = Geräteanmeldung wird auf Benutzer {0} mit Passwort {1} gesetzt.
message.manager.action.protect.confirm = Geräteanmeldung wurde auf Benutzer {0} mit Passwort {1} aktualisiert.
message.manager.action.could-enable = Cloud aktivieren
message.manager.action.could-disable = Cloud deaktivieren
message.manager.action.coiot-mcast = CoIoT Multicast setzen
message.manager.action.coiot-peer = CoIoT Peer setzen
message.manager.action.timezone = Zeitzone wählen
message.manager.action.reset = Auf Werkseinstellungen zurücksetzen
message.manager.action.reset.warning = Achtung\: Mit dieser Aktion wird das Gerät auf die Werkseinstellungen zurückgesetzt.<br/>Alle Konfigurationsdaten inkl. WiFi-Einstellungen gehen verloren und das Gerät wird in den Access Point-Modus zurückkehren (WiFi {0})
message.manager.action.reset.confirm = Gerät wurde auf Werkseinstellungen zurückgesetzt. Verbinden Sie sich mit dem WiFi-Netzwerk {0} und öffnen Sie http\://192.168.33.1, um die Gerätekonfiguration neu zu starten.
message.manager.action.checkupd.new = Firmware-Update verfügbar\: {0}
message.manager.action.checkupd.ok = Überprüfung der Firmware abgeschlossen. Überprüfen Sie die Geräteübersicht auf eine neue Version.
message.manager.action.checkupd.runnuing = Firmware-Prüfung wurde eingeleitet.
message.manager.action.checkupd.failed = Suche nach Firmware-Aktualisierung nicht möglich\: {0}
message.manager.action.setwifirec-enable = Das Gerät führt einen automatischen Neustart durch, wenn der WiFi-Wiederherstellungsmodus aktiviert ist und das Gerät Probleme mit der WLAN-Verbindung hat.
message.manager.action.setwifirec-disable = WiFi-Wiederherstellungsmodus wird deaktiviert.
message.manager.action.setwifirec-confirm = WiFi-Wiederherstellungsmodus wurde {0}.
message.manager.action.setwifirec-failed = Einstellung für den WiFi-Wiederherstellungsmodus kann nicht aktualisiert werden\: {0}
message.manager.action.aproaming-enable = WiFi Access Point Roaming wird aktiviert. Überprüfen Sie die Produktdokumentation für Details.
message.manager.action.aproaming-disable = WiFi Access Point Roaming wird deaktiviert.
message.manager.action.aproaming-confirm = Einstellung WiFi Access Point Roaming kann nicht aktualisiert werden\: {0}
message.manager.action.aproaming-failed = Einstellung für den WiFi-Wiederherstellungsmodus kann nicht aktualisiert werden\: {0}
message.manager.action.resetsta-info = Der WiFi STA/AP Cache wird geleert und das Gerät verbindet sich erneut mit dem stärksten Access Point.
message.manager.action.resetsta-confirm = Das Gerät verbindet sich mit dem stärksten WiFi-Zugangspunkt.
message.manager.action.resetsta-failed = STA/AP-Liste konnte nicht gelöscht und erneut mit WLAN verbunden werden\: {0}
message.manager.action.debug-enable = Gerätedebugging wird aktiviert. Benutzen Sie diese Funktion nur, wenn dies vom Allterco-Support verlangt wird.
message.manager.action.debug-disable = Gerätedebugging wird deaktiviert.
message.manager.action.debug-confirm = Gerät Debugging war {0}.
message.manager.action.getdebug-failed = Debug-Log konnte nicht abgerufen werden\: {0}
message.manager.coiot.multicast-not-supported = Das Gerät unterstützt keine CoIoT Multicast Updates.<br/>Stelle sicher, dass du openHAB als CoIoT Peer Adresse einrichtest ({0}).
message.manager.coiot.mode-not-suppored = Gerät unterstützt den CoIoT-Modus ({0}) nicht, überprüfen Sie die Produktdokumentation.
message.manager.coiot.current-peer = CoIoT Peer Adresse ist derzeit auf {0} gesetzt.
message.manager.coiot.new-peer = CoIoT-Modus/Adresse wird auf {0} gesetzt.
message.manager.coiot.mode-mcast = Das Gerät beginnt CoIoT Updates mit IP Multicast zu senden.<br/>Bitte stellen Sie sicher, dass Ihr Netzwerk-Setup Multicast Routing unterstützt, wenn sich Geräte in verschiedenen IP-Subnetzen befinden.
message.manager.coiot.mode-peer = Das Gerät sendet keine IP Multicast CoIoT Updates mehr an das Netzwerk, nur an den openHAB Host.
message.manager.fwupdate.initiated = Firmware-Update gestartet, das Gerät hat den Status {0} zurückgegeben
message.manager.fwupdate.confirm = Gerät während der Aktualisierung der Firmware nicht ausschalten oder neu starten\!
message.manager.fwupdate.info = Firmware aktualisieren (deviceType\={0}, version\={1}, URL\={2})
message.manager.fwupdate.failed = Aktualisierung der Firmware fehlgeschlagen\: {0}
message.manager.fwupdate.notfound = Firmware für Gerätetyp {0}, version\={1} (URL\={2}) wurde nicht gefunden
message.manager.fwupdate.nofile = Keine Firmware-Dateien für Gerätetyp {0} gefunden
message.manager.fwupdate.success = Firmware erfolgreich geladen - size\={0}, ETag\={1}, zuletzt geändert\={2}
channel-type.shelly.motionTimestamp.description = Datum/Uhrzeit, wann die letzte Bewegung erkannt wurde
channel-type.shelly.sensorValve.label = Ventil
channel-type.shelly.sensorValve.description = Gibt den Status des Ventils an
channel-type.shelly.sensorValve.state.option.closed = geschlossen
channel-type.shelly.sensorValve.state.option.opened = geöffnet
channel-type.shelly.sensorValve.state.option.not_connected = nicht angeschlossen
channel-type.shelly.sensorValve.state.option.failure = Störung
channel-type.shelly.sensorValve.state.option.closing = schließt
channel-type.shelly.sensorValve.state.option.opening = öffnet
channel-type.shelly.sensorValve.state.option.checking = Test läuft
channel-type.shelly.sensorValve.state.option.UNKNOWN = unbekannt
channel-type.shelly.sensorCharger.label = Ladestatus
channel-type.shelly.sensorCharger.description = ON: Ein Ladegerät ist angeschlossen
channel-type.shelly.sensorContact.label = Status
channel-type.shelly.sensorContact.description = Öffnungs-Status (OPEN=offen, CLOSED=geschlossen)
channel-type.shelly.sensorContact.state.option.OPEN = geöffnet
channel-type.shelly.sensorContact.state.option.CLOSED = geschlossen
channel-type.shelly.sensorState.label = Gerätestatus
channel-type.shelly.sensorState.description = Status der Betriebsbereitschaft (warmup/normal/fault)
channel-type.shelly.sensorState.state.option.warmup= Initialisierung
channel-type.shelly.sensorState.state.option.normal= Normal
channel-type.shelly.sensorState.state.option.fault= Fehler
channel-type.shelly.sensorState.state.option.unknown= Unbekannt
channel-type.shelly.sensorWakeup.label = Aufwachgrund
channel-type.shelly.sensorWakeup.description = Grund des letzten Aufweckens (button/battery/perodice/powerdown/sensor/alarm/ext_power)
channel-type.shelly.sensorWakeup.state.option.button = Taste
channel-type.shelly.sensorWakeup.state.option.battery = Batterie
channel-type.shelly.sensorWakeup.state.option.periodic = Intervall
channel-type.shelly.sensorWakeup.state.option.poweron = Betrieb
channel-type.shelly.sensorWakeup.state.option.sensor = Statusänderung
channel-type.shelly.sensorWakeup.state.option.alarm = Alarm
channel-type.shelly.sensorWakeup.state.option.ext_power = Ladegerät verbunden
channel-type.shelly.batVoltage.label = Batteriespannung
channel-type.shelly.batVoltage.description = Batteriespannung in Volt (V)
channel-type.shelly.charger.label = Ladegerät
channel-type.shelly.charger.description = ON: Ein Ladegerät ist angeschlossen
channel-type.shelly.calibrated.label = Kalibriert
channel-type.shelly.calibrated.description = ON: Das Gerät/der Sensor is kalibriert
channel-type.shelly.externalPower.label = Externe Stromquelle
channel-type.shelly.externalPower.description = ON: Externe Stromquelle ist angeschlossen
channel-type.shelly.senseKey.label = IR-Code
channel-type.shelly.senseKey.description = IR Code senden im Pronto- oder HEX64-Format
channel-type.shelly.deviceName.label = Gerätename
channel-type.shelly.deviceName.description = Symbolischer Name des Gerätes (Konfiguration über Shelly App)
channel-type.shelly.uptime.label = Laufzeit
channel-type.shelly.uptime.description = Anzahl Sekunden seit dem das Gerät mit Strom versorgt wurde
channel-type.shelly.heartBeat.label = Letzte Aktivität
channel-type.shelly.heartBeat.description = Zeitpunkt der letzten Aktivit. Hierbei kann es sich um einen erfolgreichen API-Aufruf, oder Sensor-Aktualisierung handeln. Dies schließt eine erfolgreiche Netzwerk-Kommunikation ein (WiFi + IP)
channel-type.shelly.updateAvailable.label = Firmwareaktualisierung vorhanden
channel-type.shelly.updateAvailable.description = ON: Es ist eine neuere Firmwareversion verfügbar (Update kann mit der Shelly App durchgeführt werden)
channel-type.shelly.deviceTemp.label = Gerätetemperatur
channel-type.shelly.deviceTemp.description = Interne Gerätetemperatur. Hohe Temperaturen deuten ggf. auch ein Hitzestau/Installationsproblem hin.
channel-type.shelly.supplyVoltage.label = Versorgungsspannung
channel-type.shelly.supplyVoltage.description = Externe Versorgungsspannung
channel-type.shelly.lastUpdate.label = Letzte Aktualisierung
channel-type.shelly.lastUpdate.description = Zeitstempel der letzten Aktualisierung (lokale Zeitzone)
channel-type.shelly.lastEvent.label = Letztes Ereignis
channel-type.shelly.lastEvent.description = Typ des letzten Ereignisses (S=kurz, SS=2xkurz, SSS=3xkurz, L=lang)
channel-type.shelly.lastEvent.state.option.S = 1x kurz
channel-type.shelly.lastEvent.state.option.SS = 2x kurz
channel-type.shelly.lastEvent.state.option.SSS = 3x kurz
channel-type.shelly.lastEvent.state.option.L = lang
channel-type.shelly.lastEvent.state.option.SL = kurz-lang
channel-type.shelly.lastEvent.state.option.LS = lang-kurz
channel-type.shelly.eventCount.label = Ereigniszähler
channel-type.shelly.eventCount.description = Anzahl der empfangenen Ereignisse.
channel-type.shelly.eventTrigger.label = Ereignis
channel-type.shelly.eventTrigger.description = Signalisiert Ereignisse (Trigger): ROLLER_OPEN=Rollladen geöffnet, ROLLER_CLOSE=Rollladen geschlossen, ROLLER_STOP=Rollladen angehalten
channel-type.shelly.eventTrigger.option.ROLLER_OPEN = Rollladen geöffnet
channel-type.shelly.eventTrigger.option.ROLLER_CLOSE = Rollladen geschlossen
channel-type.shelly.eventTrigger.option.ROLLER_STOP = Rollladen gestoppt
channel-type.shelly.alarmTrigger.label = Alarm
channel-type.shelly.alarmTrigger.description = Signalisiert Alarme (Trigger): NONE=kein Alarm, WEAK_SIGNAL=Schlechte WiFi-Verbindung, RESTARTED=Gerät neu gestartet, OVERTEMP=Überhitzung, OVERLOAD=Überlast, OVERPOWER=Maximale Last überschritten, LOAD_ERROR=Lastfehler, LOW_BATTERY=Batterie schwach
channel-type.shelly.alarmTrigger.option.NONE = kein Alarm
channel-type.shelly.alarmTrigger.option.WEAK_SIGNAL = Schlechte WiFi-Verbindung
channel-type.shelly.alarmTrigger.option.RESTARTED = Gerät neu gestartet
channel-type.shelly.alarmTrigger.option.OVERTEMP = Überhitzung
channel-type.shelly.alarmTrigger.option.OVERLOAD = Überlast
channel-type.shelly.alarmTrigger.option.OVERPOWER = Maximale Last überschritten
channel-type.shelly.alarmTrigger.option.LOAD_ERROR = Lastfehler
channel-type.shelly.alarmTrigger.option.LOW_BATTERY = Batterieladung schwach
channel-type.shelly.alarmTrigger.option.BATTERY = Aufwecken durch Batterie
channel-type.shelly.alarmTrigger.option.POWERON = Gerät wurde eingeschaltet
channel-type.shelly.alarmTrigger.option.BUTTON = Taste wurde gedrückt
channel-type.shelly.alarmTrigger.option.SENSOR = Sensordaten wurden aktualisiert
channel-type.shelly.alarmState.label = Alarmstatus
channel-type.shelly.alarmState.description = Typ des Alarms (unknown/none/mild/heavy/test)
channel-type.shelly.alarmState.state.option.unknown = Unbekannt
channel-type.shelly.alarmState.state.option.none = Kein Alarm
channel-type.shelly.alarmState.state.option.mild = Leichte Konzentration
channel-type.shelly.alarmState.state.option.heavy = Hohe Konzentration
channel-type.shelly.alarmState.state.option.test = Testknopf gedrückt
channel-type.shelly.selfTest.label = Selbsttest
channel-type.shelly.selfTest.description = Status des Selbsttests
channel-type.shelly.selfTest.state.option.not_completed = Nicht abgeschlossen
channel-type.shelly.selfTest.state.option.completed = Abgeschlossen
channel-type.shelly.selfTest.state.option.running = Test läuft
channel-type.shelly.selfTest.state.option.pending = Ausstehend
channel-type.shelly.selfTest.state.option.unknown = Unbekannt
channel-type.shelly.sensorError.label = Sensor-Fehler
channel-type.shelly.sensorError.description = Sensor-Fehler
channel-type.shelly.sensorSleepTime.label = Sensor Standby Timer
channel-type.shelly.sensorSleepTime.description = Das Gerät sendet kein Ereignis solange die Zeitspanne nicht abgelaufen ist
channel-type.shelly.deviceSchedule.label = Zeitplan aktiv
channel-type.shelly.deviceSchedule.description = ON: Ein zeitgesteuertes Programm ist aktiv

View File

@@ -5,8 +5,8 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<channel-group-type id="deviceStatus">
<label>Device Status</label>
<description>Information about the device status</description>
<label>@text/channel-group-type.shelly.deviceStatus.label</label>
<description>@text/channel-group-type.shelly.deviceStatus.description</description>
<channels>
<channel id="alarm" typeId="alarmTrigger"/>
<channel id="wifiSignal" typeId="system.signal-strength"/>
@@ -16,88 +16,103 @@
<channel-type id="alarmTrigger">
<kind>trigger</kind>
<label>Alarm</label>
<description>Alarm Trigger, e.g. weak WiFi Signal detected or over heating.</description>
<label>@text/channel-type.shelly.alarmTrigger.label</label>
<description>@text/channel-type.shelly.alarmTrigger.description</description>
<category>Alarm</category>
<event>
<options>
<option value="NONE">None</option>
<option value="WEAK_SIGNAL">Weak WiFi</option>
<option value="RESTARTED">Device restarted</option>
<option value="OVERTEMP">Device is overheating</option>
<option value="OVERLOAD">Device is overloaded</option>
<option value="OVERPOWER">Device is over max power</option>
<option value="LOAD_ERROR">Load error</option>
<option value="LOW_BATTERY">Low battery</option>
<option value="BATTERY">Wakeup by battery</option>
<option value="POWERON">Device was powered on</option>
<option value="BUTTON">Button was pressed</option>
<option value="SENSOR">Sensor data updated</option>
<option value="NONE">@text/channel-type.shelly.alarmTrigger.option.NONE</option>
<option value="WEAK_SIGNAL">@text/channel-type.shelly.alarmTrigger.option.WEAK_SIGNAL</option>
<option value="RESTARTED">@text/channel-type.shelly.alarmTrigger.option.RESTARTED</option>
<option value="OVERTEMP">@text/channel-type.shelly.alarmTrigger.option.OVERTEMP</option>
<option value="OVERLOAD">@text/channel-type.shelly.alarmTrigger.option.OVERLOAD</option>
<option value="OVERPOWER">@text/channel-type.shelly.alarmTrigger.option.OVERPOWER</option>
<option value="LOAD_ERROR">@text/channel-type.shelly.alarmTrigger.option.LOAD_ERROR</option>
<option value="LOW_BATTERY">@text/channel-type.shelly.alarmTrigger.option.LOW_BATTERY</option>
<option value="BATTERY">@text/channel-type.shelly.alarmTrigger.option.BATTERY</option>
<option value="POWERON">@text/channel-type.shelly.alarmTrigger.option.POWERON</option>
<option value="BUTTON">@text/channel-type.shelly.alarmTrigger.option.BUTTON</option>
<option value="SENSOR">@text/channel-type.shelly.alarmTrigger.option.SENSOR</option>
</options>
</event>
</channel-type>
<channel-type id="sensorWakeup" advanced="true">
<item-type>String</item-type>
<label>Wakeup Reason</label>
<description>Last reason, which woke up the device</description>
<label>@text/channel-type.shelly.sensorWakeup.label</label>
<description>@text/channel-type.shelly.sensorWakeup.description</description>
<state pattern="%s" readOnly="true">
<options>
<option value="button">Button</option>
<option value="battery">Battery</option>
<option value="periodic">Periodic</option>
<option value="poweron">Power-On</option>
<option value="sensor">Sensor</option>
<option value="alarm">Alarm</option>
<option value="ext_power">Charger connected</option>
<option value="button">@text/channel-type.shelly.sensorWakeup.state.option.button</option>
<option value="battery">@text/channel-type.shelly.sensorWakeup.state.option.battery</option>
<option value="periodic">@text/channel-type.shelly.sensorWakeup.state.option.periodic</option>
<option value="poweron">@text/channel-type.shelly.sensorWakeup.state.option.poweron</option>
<option value="sensor">@text/channel-type.shelly.sensorWakeup.state.option.sensor</option>
<option value="alarm">@text/channel-type.shelly.sensorWakeup.state.option.alarm</option>
<option value="ext_power">@text/channel-type.shelly.sensorWakeup.state.option.ext_power</option>
</options>
</state>
</channel-type>
<channel-type id="deviceName">
<channel-type id="deviceName" advanced="true">
<item-type>String</item-type>
<label>@text/channel-type.shelly.deviceName.label</label>
<description>@text/channel-type.shelly.deviceName.description</description>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="calibrated" advanced="true">
<item-type>Switch</item-type>
<label>@text/channel-type.shelly.calibrated.label</label>
<description>@text/channel-type.shelly.calibrated.description</description>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="charger" advanced="true">
<item-type>Switch</item-type>
<label>Charger Connected</label>
<description>ON: Device is charging, OFF: No charger connected</description>
<label>@text/channel-type.shelly.charger.label</label>
<description>@text/channel-type.shelly.charger.description</description>
<category>Battery</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="externalPower" advanced="true">
<item-type>Switch</item-type>
<label>External Power</label>
<description>ON: External power is connected</description>
<label>@text/channel-type.shelly.externalPower.label</label>
<description>@text/channel-type.shelly.externalPower.description</description>
<category>Status</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="uptime" advanced="true">
<item-type>Number:Time</item-type>
<label>Uptime</label>
<description>Number of seconds since the device was powered up</description>
<label>@text/channel-type.shelly.uptime.label</label>
<description>@text/channel-type.shelly.uptime.description</description>
<category>Time</category>
<state readOnly="true" pattern="%.0f %unit%">
</state>
</channel-type>
<channel-type id="heartBeat" advanced="true">
<item-type>DateTime</item-type>
<label>Last Heartbeat</label>
<description>Last time we received a signal from the device (API result or sensor report), This indicates that device
communication works on the network layer (WiFi + IP).</description>
<label>@text/channel-type.shelly.heartBeat.label</label>
<description>@text/channel-type.shelly.heartBeat.description</description>
<category>Time</category>
<tags>
<tag>Timestamp</tag>
</tags>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="updateAvailable" advanced="true">
<item-type>Switch</item-type>
<label>Update available</label>
<description>ON: A firmware update is available (use Shelly App to perform update)</description>
<label>@text/channel-type.shelly.updateAvailable.label</label>
<description>@text/channel-type.shelly.updateAvailable.description</description>
<category>Status</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="deviceTemp" advanced="true">
<item-type>Number:Temperature</item-type>
<label>Internal Temperature</label>
<description>Internal device temperature, helps to detect overheating due to installation issues</description>
<label>@text/channel-type.shelly.deviceTemp.label</label>
<description>@text/channel-type.shelly.deviceTemp.description</description>
<category>Temperature</category>
<tags>
<tag>Measurement</tag>
@@ -106,18 +121,36 @@
<state readOnly="true" pattern="%.0f %unit%">
</state>
</channel-type>
<channel-type id="supplyVoltage" advanced="true">
<item-type>Number:ElectricPotentia</item-type>
<label>@text/channel-type.shelly.supplyVoltage.label</label>
<description>@text/channel-type.shelly.supplyVoltage.description</description>
<category>Energy</category>
<tags>
<tag>Measurement</tag>
<tag>Voltage</tag>
</tags>
</channel-type>
<channel-type id="selfTest">
<item-type>String</item-type>
<label>Self Test</label>
<description>Self Test Status/Result</description>
<label>@text/channel-type.shelly.selfTest.label</label>
<description>@text/channel-type.shelly.selfTest.description</description>
<state pattern="%s" readOnly="true">
<options>
<option value="not_completed">Not completed</option>
<option value="completed">Completed</option>
<option value="running">Running</option>
<option value="pending">Pending</option>
<option value="not_completed">@text/channel-type.shelly.selfTest.state.option.not_completed</option>
<option value="completed">@text/channel-type.shelly.selfTest.state.option.completed</option>
<option value="running">@text/channel-type.shelly.selfTest.state.option.running</option>
<option value="pending">@text/channel-type.shelly.selfTest.state.option.pending</option>
<option value="unknown">@text/channel-type.shelly.selfTest.state.option.unknown</option>
</options>
</state>
</channel-type>
<channel-type id="deviceSchedule" advanced="true">
<item-type>Switch</item-type>
<label>@text/channel-type.shelly.deviceSchedule.label</label>
<description>@text/channel-type.shelly.deviceSchedule.description</description>
<state readOnly="true">
</state>
</channel-type>
</thing:thing-descriptions>

View File

@@ -5,8 +5,9 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<thing-type id="shellybulb">
<label>Shelly Bulb (SHBULB)</label>
<description>Shelly Bulb</description>
<label>Shelly Bulb (SHBLB-1)</label>
<description>@text/thing-type.shelly.shellybulb.description</description>
<category>Lightbulb</category>
<channel-groups>
<channel-group id="control" typeId="bulbControl"/>
<channel-group id="color" typeId="colorSettingsBulb"/>
@@ -14,13 +15,14 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:light"/>
</thing-type>
<thing-type id="shellybulbduo">
<label>Shelly Duo (SHBDUO-1)</label>
<description>Shelly Duo</description>
<description>@text/thing-type.shelly.shellybulbduo.description</description>
<category>Lightbulb</category>
<channel-groups>
<channel-group id="control" typeId="duoControl"/>
<channel-group id="white" typeId="whiteSettings"/>
@@ -28,13 +30,14 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:light"/>
</thing-type>
<thing-type id="shellycolorbulb">
<label>Shelly Duo Color Bulb (SHSCB-1)</label>
<description>Shelly Duo Color Bulb in Color or White Mode</description>
<label>Shelly Color Bulb (SHCB-1)</label>
<description>@text/thing-type.shelly.shellycolorbulb.description</description>
<category>ColorLight</category>
<channel-groups>
<channel-group id="control" typeId="duoControl"/>
<channel-group id="color" typeId="colorSettingsBulb"/>
@@ -43,13 +46,14 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:light"/>
</thing-type>
<thing-type id="shellyvintage">
<label>Shelly Vintage (SHVIN-1)</label>
<description>Shelly Vintage Light Bulb</description>
<description>@text/thing-type.shelly.shellyvintage.description</description>
<category>Lightbulb</category>
<channel-groups>
<channel-group id="control" typeId="duoControl"/>
<channel-group id="white" typeId="whiteSettingsSimple"/>
@@ -57,14 +61,14 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:light"/>
</thing-type>
<thing-type id="shellyrgbw2-color">
<label>Shelly RGBW2 Color Mode (SHRGBW2)</label>
<description>Shelly RGBW2 Controller - Color Mode</description>
<category>Lightbulb</category>
<description>@text/thing-type.shelly.shellyrgbw2-color.description</description>
<category>ColorLight</category>
<channel-groups>
<channel-group id="control" typeId="rgbw2ColorControl"/>
<channel-group id="color" typeId="colorSettingsRGBW2"/>
@@ -72,38 +76,40 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:rgbw2"/>
</thing-type>
<thing-type id="shellyrgbw2-white">
<label>Shelly RGBW2 White Mode (SHRGBW2)</label>
<description>Shelly RGBW2 Controller - White Mode</description>
<description>@text/thing-type.shelly.shellyrgbw2-white.description</description>
<category>Lightbulb</category>
<channel-groups>
<channel-group id="control" typeId="rgbw2WhiteControl"/>
<channel-group id="channel1" typeId="rgbw2Channel">
<label>Channel 1</label>
<label>@text/thing-type.shelly.shellyrgbw2-white.group.channel1.label</label>
</channel-group>
<channel-group id="channel2" typeId="rgbw2Channel">
<label>Channel 2</label>
<label>@text/thing-type.shelly.shellyrgbw2-white.group.channel2.label</label>
</channel-group>
<channel-group id="channel3" typeId="rgbw2Channel">
<label>Channel 3</label>
<label>@text/thing-type.shelly.shellyrgbw2-white.group.channel3.label</label>
</channel-group>
<channel-group id="channel4" typeId="rgbw2Channel">
<label>Channel 4</label>
<label>@text/thing-type.shelly.shellyrgbw2-white.group.channel4.label</label>
</channel-group>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:rgbw2"/>
</thing-type>
<channel-group-type id="bulbControl">
<label>Light Control</label>
<description>Control your light</description>
<label>@text/channel-group-type.shelly.bulbControl.label</label>
<description>@text/channel-group-type.shelly.bulbControl.description</description>
<channels>
<channel id="power" typeId="system.power"/>
<channel id="mode" typeId="colorMode"/>
@@ -112,25 +118,30 @@
<channel id="timerActive" typeId="timerActive"/>
</channels>
</channel-group-type>
<channel-group-type id="duoControl">
<label>Light Control</label>
<description>Control your light</description>
<label>@text/channel-group-type.shelly.duoControl.label</label>
<description>@text/channel-group-type.shelly.duoControl.description</description>
<channels>
<channel id="autoOn" typeId="timerAutoOn"/>
<channel id="autoOff" typeId="timerAutoOff"/>
<channel id="timerActive" typeId="timerActive"/>
</channels>
</channel-group-type>
<channel-group-type id="rgbw2ColorControl">
<label>Light Control</label>
<description>Control your light channels</description>
<label>@text/channel-group-type.shelly.rgbw2ColorControl.label</label>
<description>@text/channel-group-type.shelly.rgbw2ColorControl.description</description>
</channel-group-type>
<channel-group-type id="rgbw2WhiteControl">
<label>White Control</label>
<label>@text/channel-group-type.shelly.rgbw2WhiteControl.label</label>
<description>@text/channel-group-type.shelly.rgbw2WhiteControl.description</description>
</channel-group-type>
<channel-group-type id="colorSettingsBulb">
<label>Colors</label>
<description>Light colors</description>
<label>@text/channel-group-type.shelly.colorSettingsBulb.label</label>
<description>@text/channel-group-type.shelly.colorSettingsBulb.description</description>
<channels>
<channel id="hsb" typeId="system.color"/>
<channel id="full" typeId="colorFull"/>
@@ -142,9 +153,10 @@
<channel id="effect" typeId="colorEffectBulb"/>
</channels>
</channel-group-type>
<channel-group-type id="colorSettingsRGBW2">
<label>Colors</label>
<description>Light colors</description>
<label>@text/channel-group-type.shelly.colorSettingsRGBW2.label</label>
<description>@text/channel-group-type.shelly.colorSettingsRGBW2.description</description>
<channels>
<channel id="hsb" typeId="system.color"/>
<channel id="full" typeId="colorFull"/>
@@ -156,24 +168,27 @@
<channel id="effect" typeId="colorEffectRGBW2"/>
</channels>
</channel-group-type>
<channel-group-type id="whiteSettings">
<label>White settings</label>
<description>Adjust colors when device is in white mode</description>
<label>@text/channel-group-type.shelly.whiteSettings.label</label>
<description>@text/channel-group-type.shelly.whiteSettings.description</description>
<channels>
<channel id="brightness" typeId="whiteBrightness"/>
<channel id="temperature" typeId="whiteTemp"/>
</channels>
</channel-group-type>
<channel-group-type id="whiteSettingsSimple">
<label>White settings</label>
<description>Adjust colors when device is in white mode</description>
<label>@text/channel-group-type.shelly.whiteSettingsSimple.label</label>
<description>@text/channel-group-type.shelly.whiteSettingsSimple.description</description>
<channels>
<channel id="brightness" typeId="whiteBrightness"/>
</channels>
</channel-group-type>
<channel-group-type id="rgbw2Channel">
<label>Control</label>
<description>Switch channel and adjust settings</description>
<label>@text/channel-group-type.shelly.rgbw2Channel.label</label>
<description>@text/channel-group-type.shelly.rgbw2Channel.description</description>
<channels>
<channel id="autoOn" typeId="timerAutoOn"/>
<channel id="autoOff" typeId="timerAutoOff"/>
@@ -185,92 +200,102 @@
<channel-type id="colorMode">
<item-type>Switch</item-type>
<label>Mode (ON=color, OFF=white)</label>
<description>ON: Device is in color mode, OFF: Device is in White Mode</description>
<label>@text/channel-type.shelly.colorMode.label</label>
<description>@text/channel-type.shelly.colorMode.description</description>
</channel-type>
<channel-type id="colorFull">
<item-type>String</item-type>
<label>Full Color</label>
<description>Setting this channel sets the selected color to 255, all others to 0</description>
<label>@text/channel-type.shelly.colorFull.label</label>
<description>@text/channel-type.shelly.colorFull.description</description>
<state>
<options>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
<option value="yellow">Yellow</option>
<option value="white">White</option>
<option value="red">@text/channel-type.shelly.colorFull.state.option.red</option>
<option value="green">@text/channel-type.shelly.colorFull.state.option.green</option>
<option value="blue">@text/channel-type.shelly.colorFull.state.option.blue</option>
<option value="yellow">@text/channel-type.shelly.colorFull.state.option.yellow</option>
<option value="white">@text/channel-type.shelly.colorFull.state.option.white</option>
</options>
</state>
</channel-type>
<channel-type id="colorRed" advanced="true">
<item-type>Dimmer</item-type>
<label>Red</label>
<description>red, 0..255, only in Color Mode</description>
<label>@text/channel-type.shelly.colorRed.label</label>
<description>@text/channel-type.shelly.colorRed.description</description>
<state min="0" max="255" step="1" readOnly="false"></state>
</channel-type>
<channel-type id="colorGreen" advanced="true">
<item-type>Dimmer</item-type>
<label>Green</label>
<description>green, 0..255, applies Color Mode</description>
<label>@text/channel-type.shelly.colorGreen.label</label>
<description>@text/channel-type.shelly.colorGreen.description</description>
<state min="0" max="255" step="1" readOnly="false"></state>
</channel-type>
<channel-type id="colorBlue" advanced="true">
<item-type>Dimmer</item-type>
<label>Blue</label>
<description>blue, 0..255, only in Color Mode</description>
<label>@text/channel-type.shelly.colorBlue.label</label>
<description>@text/channel-type.shelly.colorBlue.description</description>
<state min="0" max="255" step="1" readOnly="false"></state>
</channel-type>
<channel-type id="colorWhite">
<item-type>Dimmer</item-type>
<label>White</label>
<description>white, 0..255, applies in Color Mode</description>
<label>@text/channel-type.shelly.colorWhite.label</label>
<description>@text/channel-type.shelly.colorWhite.description</description>
<state min="0" max="255" step="1" readOnly="false"></state>
</channel-type>
<channel-type id="colorGain">
<item-type>Dimmer</item-type>
<label>Gain</label>
<description>gain for all channels, 0..100, applies in Color Mode</description>
<label>@text/channel-type.shelly.colorGain.label</label>
<description>@text/channel-type.shelly.colorGain.description</description>
<state min="0" max="100" step="1" readOnly="false"></state>
</channel-type>
<channel-type id="whiteTemp">
<item-type>Dimmer</item-type>
<label>Light Temperature</label>
<description>Light Temperature 2700/3000..6500K (0-100%)</description>
<label>@text/channel-type.shelly.whiteTemp.label</label>
<description>@text/channel-type.shelly.whiteTemp.description</description>
<state min="3000" max="6500" step="10" readOnly="false"></state>
</channel-type>
<channel-type id="whiteBrightness">
<item-type>Dimmer</item-type>
<label>Brightness</label>
<description>Brightness: 0..100%</description>
<category>Light</category>
<label>@text/channel-type.shelly.whiteBrightness.label</label>
<description>@text/channel-type.shelly.whiteBrightness.description</description>
<category>DimmableLight</category>
<state min="0" max="100" step="1" readOnly="false"></state>
</channel-type>
<channel-type id="colorEffectBulb">
<item-type>Number</item-type>
<label>Effect</label>
<description>Currently applied effect, description: 0: Off, 1: Meteor Shower, 2: Gradual Change, 3: Breath, 4: Flash,
5: On/Off Gradual, 6: Red/Green Change</description>
<label>@text/channel-type.shelly.colorEffectBulb.label</label>
<description>@text/channel-type.shelly.colorEffectBulb.description</description>
<state>
<options>
<option value="0">Off</option>
<option value="1">Meteor Shower</option>
<option value="2">Gradual Change</option>
<option value="3">Breath</option>
<option value="4">Flash</option>
<option value="5">On/Off Gradual</option>
<option value="6">Red/Green Change</option>
<option value="0">@text/channel-type.shelly.colorEffectBulb.option.0</option>
<option value="1">@text/channel-type.shelly.colorEffectBulb.option.1</option>
<option value="2">@text/channel-type.shelly.colorEffectBulb.option.2</option>
<option value="3">@text/channel-type.shelly.colorEffectBulb.option.3</option>
<option value="4">@text/channel-type.shelly.colorEffectBulb.option.4</option>
<option value="5">@text/channel-type.shelly.colorEffectBulb.option.5</option>
<option value="6">@text/channel-type.shelly.colorEffectBulb.option.6</option>
</options>
</state>
</channel-type>
<channel-type id="colorEffectRGBW2">
<item-type>Number</item-type>
<label>Effect</label>
<description>Currently applied effect, description: 0: Off, 1: Meteor Shower, 2: Gradual Change, 3: Flash</description>
<label>@text/channel-type.shelly.colorEffectRGBW2.label</label>
<description>@text/channel-type.shelly.colorEffectRGBW2.description</description>
<state>
<options>
<option value="0">Off</option>
<option value="1">Meteor Shower</option>
<option value="2">Gradual Change</option>
<option value="3">Flash</option>
<option value="0">@text/channel-type.shelly.colorEffectRGBW2.option.0</option>
<option value="1">@text/channel-type.shelly.colorEffectRGBW2.option.1</option>
<option value="2">@text/channel-type.shelly.colorEffectRGBW2.option.2</option>
<option value="3">@text/channel-type.shelly.colorEffectRGBW2.option.3</option>
</options>
</state>
</channel-type>

View File

@@ -5,21 +5,21 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<thing-type id="shelly1">
<label>Shelly1 (SHSW-1)</label>
<description>Shelly1 device with a single relay</description>
<label>Shelly 1 (SHSW-1)</label>
<description>@text/thing-type.shelly.shelly1.description</description>
<channel-groups>
<channel-group id="relay" typeId="relayChannel"/>
<channel-group id="sensors" typeId="externalSensors"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shelly1l">
<label>Shelly 1L (SHSW-L)</label>
<description>Shelly 1L device with a single relay</description>
<description>@text/thing-type.shelly.shelly1l.description</description>
<channel-groups>
<channel-group id="relay" typeId="relayChannel"/>
<channel-group id="meter" typeId="meter"/>
@@ -27,13 +27,13 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shelly1pm">
<label>Shelly1PM (SHSW-PM)</label>
<description>Shelly1PM device with single relay and power meter</description>
<label>Shelly 1PM (SHSW-PM)</label>
<description>@text/thing-type.shelly.shelly1pm.description</description>
<channel-groups>
<channel-group id="relay" typeId="relayChannel"/>
<channel-group id="meter" typeId="meter"/>
@@ -41,245 +41,248 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shellyem">
<label>ShellyEM (SHEM)</label>
<description>Shelly EM device with single relay and power meter</description>
<label>Shelly EM (SHEM)</label>
<description>@text/thing-type.shelly.shellyem.description</description>
<channel-groups>
<channel-group id="meter1" typeId="meter">
<label>Power Meter 1</label>
<label>@text/thing-type.shelly.shellyem.group.meter1.label</label>
</channel-group>
<channel-group id="meter2" typeId="meter">
<label>Power Meter 2</label>
<label>@text/thing-type.shelly.shellyem.group.meter2.label</label>
</channel-group>
<channel-group id="relay" typeId="relayChannel"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<!-- Shelly 3EM - device reports wrong service name: shellyem3, see README -->
<thing-type id="shellyem3">
<label>Shelly 3EM (SHEM-3)</label>
<description>Shelly 3EM device with 3 power meters and a relay (thing name is shellyem3, see README)</description>
<description>@text/thing-type.shelly.shellyem3.description</description>
<channel-groups>
<channel-group id="meter1" typeId="meter">
<label>Power Meter 1</label>
<label>@text/thing-type.shelly.shellyem3.group.meter1.label</label>
</channel-group>
<channel-group id="meter2" typeId="meter">
<label>Power Meter 2</label>
<label>@text/thing-type.shelly.shellyem3.group.meter2.label</label>
</channel-group>
<channel-group id="meter3" typeId="meter">
<label>Power Meter 3</label>
<label>@text/thing-type.shelly.shellyem3.group.meter3.label</label>
</channel-group>
<channel-group id="relay" typeId="relayChannel"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shelly2-relay">
<label>Shelly2 Relay (SHSW-21)</label>
<description>Shelly2 device with two relays</description>
<label>Shelly 2 Relay (SHSW-21)</label>
<description>@text/thing-type.shelly.shelly2-relay.description</description>
<channel-groups>
<channel-group id="relay1" typeId="relayChannel">
<label>Relay 1</label>
<label>@text/thing-type.shelly.shelly2-relay.group.relay1.label</label>
</channel-group>
<channel-group id="relay2" typeId="relayChannel">
<label>Relay 2</label>
<label>@text/thing-type.shelly.shelly2-relay.group.relay2.label</label>
</channel-group>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shelly2-roller">
<label>Shelly2 Roller (SHSW-21)</label>
<description>Shelly2 in Roller Mode</description>
<label>Shelly 2 Roller (SHSW-21)</label>
<description>@text/thing-type.shelly.shelly2-roller.description</description>
<category>Rollershutter</category>
<channel-groups>
<channel-group id="roller" typeId="rollerControl"/>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:roller"/>
</thing-type>
<thing-type id="shelly25-relay">
<label>Shelly2.5 Relay (SHSW-25)</label>
<description>Shelly2.5 device with two relays, 2 meters</description>
<label>Shelly 2.5 Relay (SHSW-25)</label>
<description>@text/thing-type.shelly.shelly25-relay.description</description>
<channel-groups>
<channel-group id="relay1" typeId="relayChannel">
<label>Relay 1</label>
<label>@text/thing-type.shelly.shelly25-relay.group.relay1.label</label>
</channel-group>
<channel-group id="meter1" typeId="meter">
<label>Power Meter 1</label>
<label>@text/thing-type.shelly.shelly25-relay.group.meter1.label</label>
</channel-group>
<channel-group id="relay2" typeId="relayChannel">
<label>Relay 2</label>
<label>@text/thing-type.shelly.shelly25-relay.group.relay2.label</label>
</channel-group>
<channel-group id="meter2" typeId="meter">
<label>Power Meter 2</label>
<label>@text/thing-type.shelly.shelly25-relay.group.meter2.label</label>
</channel-group>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shelly25-roller">
<label>Shelly2.5 Roller (SHSW-25)</label>
<description>Shelly2 in Roller Mode</description>
<label>Shelly 2.5 Roller (SHSW-25)</label>
<description>@text/thing-type.shelly.shelly25-roller.description</description>
<category>Rollershutter</category>
<channel-groups>
<channel-group id="roller" typeId="rollerControl"/>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:roller"/>
</thing-type>
<thing-type id="shelly4pro">
<label>Shelly4 Pro Relay (SHSW-44)</label>
<description>Shelly4Pro device with 4 relays</description>
<label>Shelly 4 Pro Relay (SHSW-44)</label>
<description>@text/thing-type.shelly.shelly4pro.description</description>
<channel-groups>
<channel-group id="relay1" typeId="relayChannel">
<label>Relay 1</label>
<label>@text/thing-type.shelly.shelly4pro.group.relay1.label</label>
</channel-group>
<channel-group id="meter1" typeId="meter">
<label>Power Meter 1</label>
<label>@text/thing-type.shelly.shelly4pro.group.meter1.label</label>
</channel-group>
<channel-group id="relay2" typeId="relayChannel">
<label>Relay 2</label>
<label>@text/thing-type.shelly.shelly4pro.group.relay2.label</label>
</channel-group>
<channel-group id="meter2" typeId="meter">
<label>Power Meter 2</label>
<label>@text/thing-type.shelly.shelly4pro.group.meter2.label</label>
</channel-group>
<channel-group id="relay3" typeId="relayChannel">
<label>Relay 3</label>
<label>@text/thing-type.shelly.shelly4pro.group.relay3.label</label>
</channel-group>
<channel-group id="meter3" typeId="meter">
<label>Power Meter 3</label>
<label>@text/thing-type.shelly.shelly4pro.group.meter3.label</label>
</channel-group>
<channel-group id="relay4" typeId="relayChannel">
<label>Relay 4</label>
<label>@text/thing-type.shelly.shelly4pro.group.relay4.label</label>
</channel-group>
<channel-group id="meter4" typeId="meter">
<label>Power Meter 4</label>
<label>@text/thing-type.shelly.shelly4pro.group.meter4.label</label>
</channel-group>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shellyplug">
<label>Shelly Plug</label>
<description>Shelly Plug device with relay and power meter</description>
<label>Shelly Plug (SHPLG-1)</label>
<description>@text/thing-type.shelly.shellyplug.description</description>
<category>PowerOutlet</category>
<channel-groups>
<channel-group id="relay" typeId="relayChannelPlug"/>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shellyplugs">
<label>Shelly Plug-S (SHPLG-S)</label>
<description>Shelly Plug-S with relay, meter and LED control</description>
<description>@text/thing-type.shelly.shellyplugs.description</description>
<category>PowerOutlet</category>
<channel-groups>
<channel-group id="relay" typeId="relayChannelPlug"/>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shellyplugu1">
<label>Shelly Plug US (SHPLG-U1)</label>
<description>Shelly Plug US with relay and meter</description>
<description>@text/thing-type.shelly.shellyplugu1.description</description>
<category>PowerOutlet</category>
<channel-groups>
<channel-group id="relay" typeId="relayChannelPlug"/>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shellyuni">
<label>Shelly UNI (SHUNI-2)</label>
<description>Embedded Shelly device</description>
<label>Shelly UNI (SHUNI-1)</label>
<description>@text/thing-type.shelly.shellyuni.description</description>
<channel-groups>
<channel-group id="relay1" typeId="relayChannel">
<label>Relay 1</label>
<label>@text/thing-type.shelly.shellyuni.group.relay1.label</label>
</channel-group>
<channel-group id="relay2" typeId="relayChannel">
<label>Relay 2</label>
<label>@text/thing-type.shelly.shellyuni.group.relay2.label</label>
</channel-group>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shellydimmer">
<label>Shelly Dimmer (SHDM-1)</label>
<description>Shelly Dimmer</description>
<description>@text/thing-type.shelly.shellydimmer.description</description>
<category>DimmableLight</category>
<channel-groups>
<channel-group id="relay" typeId="dimmerChannel"/>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:dimmer"/>
</thing-type>
<thing-type id="shellydimmer2">
<label>Shelly Dimmer 2 (SHDM-2)</label>
<description>Shelly Dimmer 2</description>
<description>@text/thing-type.shelly.shellydimmer2.description</description>
<category>DimmableLight</category>
<channel-groups>
<channel-group id="relay" typeId="dimmerChannel"/>
<channel-group id="meter" typeId="meter"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:dimmer"/>
</thing-type>
<thing-type id="shellyix3">
<label>Shelly ix3 (SHIX3-1)</label>
<description>Shelly i3 Device with 3 inputs</description>
<description>@text/thing-type.shelly.shellyix3.description</description>
<channel-groups>
<channel-group id="status1" typeId="ix3Channel"/>
<channel-group id="status2" typeId="ix3Channel"/>
@@ -287,50 +290,43 @@
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shellyuni">
<label>Shelly UNI (SHUNI-1)</label>
<description>Shelly UNI device</description>
<channel-groups>
<channel-group id="relay1" typeId="relayChannel"/>
<channel-group id="relay2" typeId="relayChannel"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<channel-group-type id="relayChannel">
<label>Relay</label>
<description>A Shelly relay channel</description>
<label>@text/channel-group-type.shelly.relayChannel.label</label>
<description>@text/channel-group-type.shelly.relayChannel.description</description>
</channel-group-type>
<channel-group-type id="relayChannelPlug">
<label>Relay</label>
<description>A Shelly relay channel</description>
<label>@text/channel-group-type.shelly.relayChannelPlug.label</label>
<description>@text/channel-group-type.shelly.relayChannelPlug.description</description>
</channel-group-type>
<channel-group-type id="dimmerChannel">
<label>Dimmer</label>
<description>A Shelly Dimmer channel</description>
<label>@text/channel-group-type.shelly.dimmerChannel.label</label>
<description>@text/channel-group-type.shelly.dimmerChannel.description</description>
</channel-group-type>
<channel-group-type id="ix3Channel">
<label>Input</label>
<description>Input Status</description>
<label>@text/channel-group-type.shelly.ix3Channel.label</label>
<description>@text/channel-group-type.shelly.ix3Channel.description</description>
</channel-group-type>
<channel-group-type id="rollerControl">
<label>Roller Control</label>
<description>Controlling the roller mode</description>
<label>@text/channel-group-type.shelly.rollerControl.label</label>
<description>@text/channel-group-type.shelly.rollerControl.description</description>
</channel-group-type>
<channel-group-type id="meter">
<label>Power Meter</label>
<description>Power consumption for the relay</description>
<label>@text/channel-group-type.shelly.meter.label</label>
<description>@text/channel-group-type.shelly.meter.description</description>
</channel-group-type>
<channel-group-type id="externalSensors">
<label>External Sensors</label>
<description>Temperatures from external sensors connected to the optional Addon</description>
<label>@text/channel-group-type.shelly.externalSensors.label</label>
<description>@text/channel-group-type.shelly.externalSensors.description</description>
</channel-group-type>
<channel-type id="outputName">
@@ -340,229 +336,290 @@
<state readOnly="true">
</state>
</channel-type>
<channel-type id="timerAutoOn" advanced="true">
<item-type>Number:Time</item-type>
<label>Auto-ON Timer</label>
<description>ON: After the output was turned off it turns on automatically after xx seconds; 0 disables the timer</description>
<label>@text/channel-type.shelly.timerAutoOn.label</label>
<description>@text/channel-type.shelly.timerAutoOn.description</description>
<category>Time</category>
<state min="0" step="1" pattern="%.0f %unit%" readOnly="false"></state>
</channel-type>
<channel-type id="timerAutoOff" advanced="true">
<item-type>Number:Time</item-type>
<label>Auto-OFF Timer</label>
<description>ON: After the output was turned on it turns off automatically after xx seconds; 0 disables the timer</description>
<label>@text/channel-type.shelly.timerAutoOff.label</label>
<description>@text/channel-type.shelly.timerAutoOff.description</description>
<category>Time</category>
<state min="0" step="1" pattern="%.0f %unit%" readOnly="false"></state>
</channel-type>
<channel-type id="timerActive" advanced="true">
<item-type>Switch</item-type>
<label>Auto ON/OFF timer active</label>
<description>ON: A timer is active, OFF: no timer active</description>
<label>@text/channel-type.shelly.timerActive.label</label>
<description>@text/channel-type.shelly.timerActive.description</description>
<category>Status</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="rollerShutter">
<item-type>Rollershutter</item-type>
<label>Roller Control (0=open, 100=closed))</label>
<description>Controls the roller</description>
<label>@text/channel-type.shelly.rollerShutter.label</label>
<description>@text/channel-type.shelly.rollerShutter.description</description>
<category>Blinds</category>
</channel-type>
<channel-type id="rollerPosition" advanced="true">
<item-type>Dimmer</item-type>
<label>Roller Position (100=open, 0=closed)</label>
<description>Position the roller (100..0 in %, where 100%=open, 0%=closed)</description>
<label>@text/channel-type.shelly.rollerPosition.label</label>
<description>@text/channel-type.shelly.rollerPosition.description</description>
<category>Blinds</category>
<tags>
<tag>Measurement</tag>
<tag>Level</tag>
</tags>
<state readOnly="false" min="0" max="100" pattern="%.0f %%"/>
</channel-type>
<channel-type id="rollerFavorite">
<item-type>Number</item-type>
<label>Position Favorite</label>
<description>Set roller position by selecting favorite 1-4 (needs to be defined in the Shelly App, 0=n/a)</description>
<label>@text/channel-type.shelly.rollerFavorite.label</label>
<description>@text/channel-type.shelly.rollerFavorite.description</description>
<state readOnly="false" min="0" max="4"/>
</channel-type>
<channel-type id="rollerState">
<item-type>String</item-type>
<label>State</label>
<description>State of the roller (open/close/stop)</description>
<label>@text/channel-type.shelly.rollerState.label</label>
<description>@text/channel-type.shelly.rollerState.description</description>
<category>Status</category>
<state readOnly="true">
<options>
<option value="open">opening</option>
<option value="close">closing</option>
<option value="stop">stopped</option>
<option value="open">@text/channel-type.shelly.rollerState.state.option.open</option>
<option value="close">@text/channel-type.shelly.rollerState.state.option.close</option>
<option value="stop">@text/channel-type.shelly.rollerState.state.option.stop</option>
</options>
</state>
</channel-type>
<channel-type id="rollerStop">
<item-type>String</item-type>
<label>Roller stop reason</label>
<description>Last cause for stopping: normal, safety switch, obstacle</description>
<label>@text/channel-type.shelly.rollerStop.label</label>
<description>@text/channel-type.shelly.rollerStop.description</description>
<state readOnly="true">
<options>
<option value="normal">normal</option>
<option value="safety_switch">safety switch</option>
<option value="obstacle">obstacle detected</option>
<option value="normal">@text/channel-type.shelly.rollerStop.state.option.normal</option>
<option value="safety_switch">@text/channel-type.shelly.rollerStop.state.option.safety_switch</option>
<option value="obstacle">@text/channel-type.shelly.rollerStop.state.option.obstacle</option>
</options>
</state>
</channel-type>
<channel-type id="rollerDirection">
<item-type>String</item-type>
<label>Last Roller Direction</label>
<description>Last direction: open or close</description>
<label>@text/channel-type.shelly.rollerDirection.label</label>
<description>@text/channel-type.shelly.rollerDirection.description</description>
<state readOnly="true">
<options>
<option value="open">open</option>
<option value="close">close</option>
<option value="stop">stopped</option>
<option value="open">@text/channel-type.shelly.rollerDirection.state.option.open</option>
<option value="close">@text/channel-type.shelly.rollerDirection.state.option.close</option>
<option value="stop">@text/channel-type.shelly.rollerDirection.state.option.stop</option>
</options>
</state>
</channel-type>
<channel-type id="rollerSafety" advanced="true">
<item-type>Switch</item-type>
<label>Safety Switch</label>
<description>Status of the safety switch</description>
<label>@text/channel-type.shelly.rollerSafety.label</label>
<description>@text/channel-type.shelly.rollerSafety.description</description>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="inputState">
<item-type>Switch</item-type>
<label>Input</label>
<description>Input/Button state</description>
<label>@text/channel-type.shelly.inputState.label</label>
<description>@text/channel-type.shelly.inputState.description</description>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="inputState1" advanced="true">
<item-type>Switch</item-type>
<label>Input #1</label>
<description>Input/Button state #1</description>
<label>@text/channel-type.shelly.inputState1.label</label>
<description>@text/channel-type.shelly.inputState1.description</description>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="inputState2" advanced="true">
<item-type>Switch</item-type>
<label>Input #2</label>
<description>Input/Button state #2</description>
<label>@text/channel-type.shelly.inputState2.label</label>
<description>@text/channel-type.shelly.inputState2.description </description>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="dimmerBrightness">
<item-type>Dimmer</item-type>
<label>Brightness</label>
<description>Light brightness in %</description>
<category>Light</category>
<label>@text/channel-type.shelly.dimmerBrightness.label</label>
<description>@text/channel-type.shelly.dimmerBrightness.description</description>
<category>DimmableLight</category>
</channel-type>
<channel-type id="meterWatts">
<item-type>Number:Power</item-type>
<label>Watt</label>
<description>Current power consumption in Watt</description>
<state readOnly="true" pattern="%.2f %unit%">
</state>
</channel-type>
<channel-type id="supplyVoltage" advanced="true">
<item-type>Number:ElectricPotential</item-type>
<label>Supply Voltage</label>
<description>Supply voltage of the device in Volt</description>
<label>@text/channel-type.shelly.meterWatts.label</label>
<description>@text/channel-type.shelly.meterWatts.description</description>
<category>Energy</category>
<tags>
<tag>Measurement</tag>
<tag>Current</tag>
</tags>
<state readOnly="true" pattern="%.2f %unit%">
</state>
</channel-type>
<channel-type id="meterAccuWatts" advanced="true">
<item-type>Number:Power</item-type>
<label>Accumulated Watt</label>
<description>Accumulated current power consumption in Watt from all meters</description>
<label>@text/channel-type.shelly.meterAccuWatts.label</label>
<description>@text/channel-type.shelly.meterAccuWatts.description</description>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%">
</state>
</channel-type>
<channel-type id="meterAccuTotal" advanced="true">
<item-type>Number:Power</item-type>
<label>Accumulated Total</label>
<description>Accumulated total power consumption from all meters</description>
<label>@text/channel-type.shelly.meterAccuTotal.label</label>
<description>@text/channel-type.shelly.meterAccuTotal.description</description>
<category>Energy</category>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="meterAccuReturned" advanced="true">
<item-type>Number:Power</item-type>
<label>Accumulated Returned</label>
<description>Accumulated returned power consumption from all meters</description>
<label>@text/channel-type.shelly.meterAccuReturned.label</label>
<description>@text/channel-type.shelly.meterAccuReturned.description</description>
<category>Energy</category>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="meterReactive">
<item-type>Number:Power</item-type>
<label>Reactive Watt</label>
<description>Instantaneous reactive power in Watts (W)</description>
<label>@text/channel-type.shelly.meterReactive.label</label>
<description>@text/channel-type.shelly.meterReactive.description</description>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="lastPower1" advanced="true">
<item-type>Number:Energy</item-type>
<label>Last Power #1</label>
<description>Last power consumption #1 - one rounded minute</description>
<label>@text/channel-type.shelly.lastPower1.label</label>
<description>@text/channel-type.shelly.lastPower1.description</description>
<category>Energy</category>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="meterTotal">
<item-type>Number:Energy</item-type>
<label>Total Energy</label>
<description>Total power consumption</description>
<label>@text/channel-type.shelly.meterTotal.label</label>
<description>@text/channel-type.shelly.meterTotal.description</description>
<category>Energy</category>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="meterReturned">
<item-type>Number:Energy</item-type>
<label>Total Returned Energy</label>
<description>Total returned energy</description>
<label>@text/channel-type.shelly.meterReturned.label</label>
<description>@text/channel-type.shelly.meterReturned.description</description>
<category>Energy</category>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="meterVoltage">
<item-type>Number:ElectricPotential</item-type>
<label>Voltage</label>
<description>RMS voltage, Volts </description>
<label>@text/channel-type.shelly.meterVoltage.label</label>
<description>@text/channel-type.shelly.meterVoltage.description</description>
<tags>
<tag>Measurement</tag>
<tag>Voltage</tag>
</tags>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="meterCurrent">
<item-type>Number:ElectricPotential</item-type>
<label>Current</label>
<description>Current in A </description>
<label>@text/channel-type.shelly.meterCurrent.label</label>
<description>@text/channel-type.shelly.meterCurrent.description</description>
<category>Energy</category>
<tags>
<tag>Measurement</tag>
<tag>Power</tag>
</tags>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="meterPowerFactor">
<item-type>Number</item-type>
<label>Power Factor</label>
<state readOnly="true" pattern="%.2f %unit%">
<label>@text/channel-type.shelly.meterPowerFactor.label</label>
<description>@text/channel-type.shelly.meterPowerFactor.description</description>
<state readOnly="true" pattern="%.3f %unit%">
</state>
</channel-type>
<channel-type id="timestamp">
<item-type>DateTime</item-type>
<label>Last Update</label>
<description>Timestamp of last measurement</description>
<label>@text/channel-type.shelly.timestamp.label</label>
<description>@text/channel-type.shelly.timestamp.description</description>
<category>Time</category>
<tags>
<tag>Timestamp</tag>
</tags>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="ledStatusDisable">
<item-type>Switch</item-type>
<label>Disable Status LED</label>
<description>Disable LED indication for network status</description>
<label>@text/channel-type.shelly.ledStatusDisable.label</label>
<description>@text/channel-type.shelly.ledStatusDisable.description</description>
</channel-type>
<channel-type id="ledPowerDisable">
<item-type>Switch</item-type>
<label>Disable Power LED</label>
<description>Disable LED indication for output status</description>
<label>@text/channel-type.shelly.ledPowerDisable.label</label>
<description>@text/channel-type.shelly.ledPowerDisable.description</description>
</channel-type>
<channel-type id="lastUpdate" advanced="true">
<item-type>DateTime</item-type>
<label>Last Update</label>
<description>Timestamp of last status update</description>
<label>@text/channel-type.shelly.lastUpdate.label</label>
<description>@text/channel-type.shelly.lastUpdate.description</description>
<category>Time</category>
<tags>
<tag>Timestamp</tag>
</tags>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="eventTrigger">
<kind>trigger</kind>
<label>Event</label>
<description>Event Trigger, e.g. button on/off, Output on/off</description>
<label>@text/channel-type.shelly.eventTrigger.label</label>
<description>@text/channel-type.shelly.eventTrigger.description</description>
<event>
<options>
<option value="ROLLER_OPEN">Roller is open</option>
<option value="ROLLER_CLOSE">Roller is closed</option>
<option value="ROLLER_STOP">Roller has stopped</option>
<option value="ROLLER_OPEN">@text/channel-type.shelly.eventTrigger.option.ROLLER_OPEN</option>
<option value="ROLLER_CLOSE">@text/channel-type.shelly.eventTrigger.option.ROLLER_CLOSE</option>
<option value="ROLLER_STOP">@text/channel-type.shelly.eventTrigger.option.ROLLER_STOP</option>
</options>
</event>
</channel-type>

View File

@@ -6,215 +6,293 @@
<thing-type id="shellyht">
<label>Shelly H&amp;T (SHHT-1)</label>
<description>Shelly H&amp;T Sensor</description>
<description>@text/thing-type.shelly.shellyht.description</description>
<category>Sensor</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellysmoke">
<label>Shelly Smoke</label>
<description>Shelly Smoke Sensor (battery powered)</description>
<description>@text/thing-type.shelly.shellysmoke.description</description>
<category>SmokeDetector</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellygas">
<label>Shelly GAS (SHGS-1)</label>
<description>Shelly Gas Sensor</description>
<description>@text/thing-type.shelly.shellygas.description</description>
<category>Sensor</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:basic"/>
</thing-type>
<thing-type id="shellyflood">
<label>Shelly Flood (SHWT-1)</label>
<description>Shelly Flood Sensor (battery powered)</description>
<description>@text/thing-type.shelly.shellyflood.description</description>
<category>Sensor</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellydw">
<label>Shelly Door/Window (SHDW-1)</label>
<description>Shelly Door/Window Sensor (battery powered)</description>
<description>@text/thing-type.shelly.shellydw.description</description>
<category>Sensor</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellydw2">
<label>Shelly Door/Window (SHDW-2)</label>
<description>Shelly Door/Window 2 Sensor (battery powered)</description>
<description>@text/thing-type.shelly.shellydw2.description</description>
<category>Sensor</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellysense">
<label>Shelly Sense (SHSEN-1)</label>
<description>Shelly Sense Remote IR Controller</description>
<description>@text/thing-type.shelly.shellysense.description</description>
<channel-groups>
<channel-group id="control" typeId="senseControl"/>
<channel-group id="control" typeId="control"/>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellybutton1">
<label>Shelly Button 1 (SHBTN-1)</label>
<description>Shelly Button 1 (battery powered)</description>
<description>@text/thing-type.shelly.shellybutton1.description</description>
<category>WallSwitch</category>
<channel-groups>
<channel-group id="status" typeId="buttonState"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellybutton2">
<label>Shelly Button 2 (SHBTN-2)</label>
<description>@text/thing-type.shelly.shellybutton2.description</description>
<category>WallSwitch</category>
<channel-groups>
<channel-group id="status" typeId="buttonState"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellymotion">
<label>Shelly Motion (SHMOS-1)</label>
<description>Shelly Motion Sensor (battery powered)</description>
<label>Shelly Motion (SHMOS-01/SHMOS-02)</label>
<description>@text/thing-type.shelly.shellymotion.description</description>
<category>MotionDetector</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<thing-type id="shellytrv">
<label>Shelly TRV (SHTRV-01)</label>
<description>@text/thing-type.shelly.shellytrv.description</description>
<category>RadiatorControl</category>
<channel-groups>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="control" typeId="control"/>
<channel-group id="battery" typeId="batteryStatus"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:battery"/>
</thing-type>
<channel-type id="controlMode">
<item-type>String</item-type>
<label>@text/channel-type.shelly.controlMode.label</label>
<description>@text/channel-type.shelly.controlMode.description</description>
<state>
<options>
<option value="manual">@text/channel-type.shelly.controlMode.state.option.manual</option>
<option value="automatic">@text/channel-type.shelly.controlMode.state.option.automatic</option>
</options>
</state>
</channel-type>
<channel-type id="controlProfile">
<item-type>Number</item-type>
<label>@text/channel-type.shelly.controlProfile.label</label>
<description>@text/channel-type.shelly.controlProfile.description</description>
<state min="0" max="5" step="1" readOnly="false"></state>
</channel-type>
<channel-type id="targetTemp">
<item-type>Number:Temperature</item-type>
<label>@text/channel-type.shelly.targetTemp.label</label>
<description>@text/channel-type.shelly.targetTemp.description</description>
<category>Heating</category>
<tags>
<tag>Setpoint</tag>
<tag>Temperature</tag>
</tags>
<state min="4" max="31" step="0.5" pattern="%.1f %unit%" readOnly="false"></state>
</channel-type>
<channel-type id="boostControl">
<item-type>Switch</item-type>
<label>@text/channel-type.shelly.boostControl.label</label>
<description>@text/channel-type.shelly.boostControl.description</description>
</channel-type>
<channel-type id="boostTimer">
<item-type>Number:Time</item-type>
<label>@text/channel-type.shelly.boostTimer.label</label>
<description>@text/channel-type.shelly.boostTimer.description</description>
<category>Time</category>
<state min="0" step="1" pattern="%.0f %unit%" readOnly="false"></state>
</channel-type>
<channel-group-type id="sensorData">
<label>Sensor Data</label>
<description>Data from the various sensors</description>
<label>@text/channel-group-type.shelly.sensorData.label</label>
<description>@text/channel-group-type.shelly.sensorData.description</description>
</channel-group-type>
<channel-group-type id="batteryStatus">
<label>Battery Status</label>
</channel-group-type>
<channel-group-type id="senseControl">
<label>Sense Control</label>
<description>Sense Settings</description>
<channels>
<channel id="key" typeId="senseKey"/>
</channels>
</channel-group-type>
<channel-group-type id="buttonState">
<label>Button State</label>
<description>Status of the Button</description>
<label>@text/channel-group-type.shelly.batteryStatus.label</label>
<description>@text/channel-group-type.shelly.batteryStatus.description</description>
<category>BatteryLevel</category>
</channel-group-type>
<channel-group-type id="control">
<label>@text/channel-group-type.shelly.control.label</label>
<description>@text/channel-group-type.shelly.control.description</description>
</channel-group-type>
<channel-group-type id="buttonState">
<label>@text/channel-group-type.shelly.buttonState.label</label>
<description>@text/channel-group-type.shelly.buttonState.description</description>
</channel-group-type>
<channel-type id="sensorContact">
<item-type>Contact</item-type>
<label>Contact</label>
<description>State of the contact: open/close</description>
<category>Contact</category>
<label>@text/channel-type.shelly.sensorContact.label</label>
<description>@text/channel-type.shelly.sensorContact.description</description>
<state pattern="%s" readOnly="true">
<options>
<option value="OPEN">Open</option>
<option value="CLOSED">Closed</option>
<option value="OPEN">@text/channel-type.shelly.sensorContact.state.option.OPEN</option>
<option value="CLOSED">@text/channel-type.shelly.sensorContact.state.option.CLOSED</option>
</options>
</state>
</channel-type>
<channel-type id="sensorState">
<item-type>String</item-type>
<label>Sensor State</label>
<description>Sensor State: normal</description>
<label>@text/channel-type.shelly.sensorState.label</label>
<description>@text/channel-type.shelly.sensorState.description</description>
<state pattern="%s" readOnly="true">
<options>
<option value="warmup">Warm-Up</option>
<option value="normal">Normal</option>
<option value="fault">Fault</option>
<option value="unknown">unknown</option>
<option value="warmup">@text/channel-type.shelly.sensorState.state.option.warmup</option>
<option value="normal">@text/channel-type.shelly.sensorState.state.option.normal</option>
<option value="fault">@text/channel-type.shelly.sensorState.state.option.fault</option>
<option value="unknown">@text/channel-type.shelly.sensorState.state.option.unknown</option>
</options>
</state>
</channel-type>
<channel-type id="alarmState">
<item-type>String</item-type>
<label>Alarm State</label>
<description>Alarm State: normal</description>
<label>@text/channel-type.shelly.alarmState.label</label>
<description>@text/channel-type.shelly.alarmState.description</description>
<state pattern="%s" readOnly="true">
<options>
<option value="unknown">Unknown</option>
<option value="none">None</option>
<option value="mild">Mild</option>
<option value="heavy">Heavy</option>
<option value="test">Test</option>
<option value="unknown">@text/channel-type.shelly.alarmState.state.option.unknown</option>
<option value="none">@text/channel-type.shelly.alarmState.state.option.none</option>
<option value="mild">@text/channel-type.shelly.alarmState.state.option.mild</option>
<option value="heavy">@text/channel-type.shelly.alarmState.state.option.heavy</option>
<option value="test">@text/channel-type.shelly.alarmState.state.option.test</option>
</options>
</state>
</channel-type>
<channel-type id="lastEvent">
<item-type>String</item-type>
<label>Event</label>
<description>Event Type</description>
<label>@text/channel-type.shelly.lastEvent.label</label>
<description>@text/channel-type.shelly.lastEvent.description</description>
<state pattern="%s" readOnly="true">
<options>
<option value="S">Short push</option>
<option value="SS">Double-Short push</option>
<option value="SSS">Triple-Short push</option>
<option value="L">Long push</option>
<option value="SL">Short-Long push</option>
<option value="LS">Long-Short push</option>
<option value="S">@text/channel-type.shelly.lastEvent.state.option.S</option>
<option value="SS">@text/channel-type.shelly.lastEvent.state.option.SS</option>
<option value="SSS">@text/channel-type.shelly.lastEvent.state.option.SSS</option>
<option value="L">@text/channel-type.shelly.lastEvent.state.option.L</option>
<option value="SL">@text/channel-type.shelly.lastEvent.state.option.SL</option>
<option value="LS">@text/channel-type.shelly.lastEvent.state.option.LS</option>
</options>
</state>
</channel-type>
<channel-type id="eventCount">
<item-type>Number</item-type>
<label>Event Count</label>
<description>Event Count</description>
<label>@text/channel-type.shelly.eventCount.label</label>
<description>@text/channel-type.shelly.eventCount.description</description>
<state pattern="%.0f" readOnly="true">
</state>
</channel-type>
<channel-type id="sensorTemp">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<description>Temperature from the sensor</description>
<label>@text/channel-type.shelly.sensorTemp.label</label>
<description>@text/channel-type.shelly.sensorTemp.description</description>
<category>Temperature</category>
<tags>
<tag>Measurement</tag>
@@ -223,10 +301,11 @@
<state readOnly="true" pattern="%.1f %unit%">
</state>
</channel-type>
<channel-type id="sensorExtTemp">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<description>Temperature from the external sensor</description>
<label>@text/channel-type.shelly.sensorExtTemp.label</label>
<description>@text/channel-type.shelly.sensorExtTemp.label</description>
<category>Temperature</category>
<tags>
<tag>Measurement</tag>
@@ -235,10 +314,11 @@
<state readOnly="true" pattern="%.1f %unit%">
</state>
</channel-type>
<channel-type id="sensorExtHum">
<item-type>Number:Dimensionless</item-type>
<label>Humidity</label>
<description>Relative humidity in % (0..100%) from external sensor</description>
<label>@text/channel-type.shelly.sensorExtHum.label</label>
<description>@text/channel-type.shelly.sensorExtHum.description</description>
<category>Humidity</category>
<tags>
<tag>Measurement</tag>
@@ -247,10 +327,11 @@
<state readOnly="true" pattern="%.1f %unit%">
</state>
</channel-type>
<channel-type id="sensorHumidity">
<item-type>Number:Dimensionless</item-type>
<label>Humidity</label>
<description>Relative humidity in % (0..100%)</description>
<label>@text/channel-type.shelly.sensorHumidity.label</label>
<description>@text/channel-type.shelly.sensorHumidity.description</description>
<category>Humidity</category>
<tags>
<tag>Measurement</tag>
@@ -258,112 +339,155 @@
</tags>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
<channel-type id="sensorFlood">
<item-type>Switch</item-type>
<label>Flood Alarm</label>
<description>ON: Indicates flood condition / water detected</description>
<label>@text/channel-type.shelly.sensorFlood.label</label>
<description>@text/channel-type.shelly.sensorFlood.description</description>
<category>Water</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="sensorSmoke">
<item-type>Switch</item-type>
<label>Smoke Alarm</label>
<description>ON: Indicates smoke detection</description>
<label>@text/channel-type.shelly.sensorSmoke.label</label>
<description>@text/channel-type.shelly.sensorSmoke.description</description>
<category>Smoke</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="sensorLux">
<item-type>Number:Illuminance</item-type>
<label>Lux</label>
<description>Brightness from the sensor (Lux)</description>
<label>@text/channel-type.shelly.sensorLux.label</label>
<description>@text/channel-type.shelly.sensorLux.description</description>
<state readOnly="true" pattern="%.0f %unit%">
</state>
</channel-type>
<channel-type id="sensorIllumination">
<item-type>String</item-type>
<label>Illumination</label>
<description>Current illumination: dark/twilight/bright</description>
<label>@text/channel-type.shelly.sensorIllumination.label</label>
<description>@text/channel-type.shelly.sensorIllumination.description</description>
<state readOnly="true">
<options>
<option value="dark">Dark</option>
<option value="twilight">Twilight</option>
<option value="bright">Bright</option>
<option value="dark">@text/channel-type.shelly.sensorIllumination.state.option.dark</option>
<option value="twilight">@text/channel-type.shelly.sensorIllumination.state.option.twilight</option>
<option value="bright">@text/channel-type.shelly.sensorIllumination.state.option.bright</option>
<option value="unknown">@text/channel-type.shelly.sensorIllumination.state.option.unknown</option>
</options>
</state>
</channel-type>
<channel-type id="motionTimestamp">
<item-type>DateTime</item-type>
<label>Last motion</label>
<description>Timestamp of last detected motion</description>
<label>@text/channel-type.shelly.motionTimestamp.label</label>
<description>@text/channel-type.shelly.motionTimestamp.description</description>
<category>Time</category>
<tags>
<tag>Timestamp</tag>
</tags>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="motionActive" advanced="true">
<item-type>Switch</item-type>
<label>@text/channel-type.shelly.motionActive.label</label>
<description>channel-type.shelly.motionActive.description</description>
<category>Contact</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="sensorMotion">
<item-type>Switch</item-type>
<label>Motion</label>
<description>ON: Motion detected</description>
<label>@text/channel-type.shelly.sensorMotion.label</label>
<description>@text/channel-type.shelly.sensorMotion.description</description>
<category>Motion</category>
<tags>
<tag>Status</tag>
<tag>Presence</tag>
</tags>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="sensorVibration">
<item-type>Switch</item-type>
<label>Vibration</label>
<description>ON: Vibration detected</description>
<label>@text/channel-type.shelly.sensorVibration.label</label>
<description>@text/channel-type.shelly.sensorVibration.description</description>
<category>Flow</category>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="sensorTilt">
<item-type>Number:Angle</item-type>
<label>Tilt</label>
<description>Tilt in degrees (requires calibration)</description>
<label>@text/channel-type.shelly.sensorTilt.label</label>
<description>@text/channel-type.shelly.sensorTilt.description</description>
<category>Tilt</category>
<state readOnly="true" pattern="%.0f %unit%">
</state>
</channel-type>
<channel-type id="sensorPPM">
<item-type>Number:Density</item-type>
<label>Concentration</label>
<description>Gas concentration in ppm</description>
<label>@text/channel-type.shelly.sensorPPM.label</label>
<description>@text/channel-type.shelly.sensorPPM.description</description>
<category>Gas</category>
<tags>
<tag>Measurement</tag>
<tag>Gas</tag>
</tags>
<state readOnly="true" pattern="%.0f %unit%">
</state>
</channel-type>
<channel-type id="sensorADC">
<item-type>Number:ElectricPotential</item-type>
<label>Voltage (ADC)</label>
<description>ADC voltage in V</description>
<state readOnly="true" pattern="%.2f %unit%">
<label>@text/channel-type.shelly.sensorADC.label</label>
<description>@text/channel-type.shelly.sensorADC.description</description>
<state readOnly="true" pattern="%.0f %unit%">
</state>
</channel-type>
<channel-type id="sensorPosition">
<item-type>Dimmer</item-type>
<label>@text/channel-type.shelly.sensorPosition.label</label>
<description>@text/channel-type.shelly.sensorPosition.description</description>
<category>RadiatorControl</category>
<state min="0" max="100" step="1" readOnly="false" pattern="%.0f %unit%"></state>
</channel-type>
<channel-type id="sensorValve">
<item-type>String</item-type>
<label>Valve</label>
<description>Current valve status: closed/opened/not_connected/failure/closing/opening/checking</description>
<label>@text/channel-type.shelly.sensorValve.label</label>
<description>@text/channel-type.shelly.sensorValve.description</description>
<category>Pressure</category>
<state readOnly="true">
<options>
<option value="closed">closed</option>
<option value="opened">opened</option>
<option value="not_connected">not connected</option>
<option value="failure">failure</option>
<option value="closing">closing</option>
<option value="opening">opening</option>
<option value="checking">checking</option>
<option value="unknown">UNKNOWN</option>
<option value="closed">@text/channel-type.shelly.sensorValve.state.option.closed</option>
<option value="opened">@text/channel-type.shelly.sensorValve.state.option.opened</option>
<option value="not_connected">@text/channel-type.shelly.sensorValve.state.option.not_connected</option>
<option value="failure">@text/channel-type.shelly.sensorValve.state.option.failure</option>
<option value="closing">@text/channel-type.shelly.sensorValve.state.option.closing</option>
<option value="opening">@text/channel-type.shelly.sensorValve.state.option.opening</option>
<option value="checking">@text/channel-type.shelly.sensorValve.state.option.checking</option>
<option value="unknown">@text/channel-type.shelly.sensorValve.state.option.UNKNOWN</option>
</options>
</state>
</channel-type>
<channel-type id="sensorError">
<item-type>String</item-type>
<label>Last Error</label>
<description>Only valid in case of error</description>
<label>@text/channel-type.shelly.sensorError.label</label>
<description>@text/channel-type.shelly.sensorError.description</description>
<state readOnly="true">
</state>
</channel-type>
<channel-type id="sensorSleepTime" advanced="true">
<item-type>Number:Time</item-type>
<label>@text/channel-type.shelly.sensorSleepTime.label</label>
@@ -373,8 +497,8 @@
<channel-type id="senseKey">
<item-type>String</item-type>
<label>IR Key to Send</label>
<description>Send a defined key code</description>
<label>@text/channel-type.shelly.senseKey.label</label>
<description>@text/channel-type.shelly.senseKey.description</description>
</channel-type>
</thing:thing-descriptions>

View File

@@ -6,22 +6,22 @@
<thing-type id="shellydevice">
<label>Shelly Device</label>
<description>A password protected or unknown device.</description>
<description>@text/thing-type.shelly.shellydevice.description</description>
<representation-property>deviceName</representation-property>
<representation-property>serviceName</representation-property>
<config-description>
<parameter name="userId" type="text" required="true">
<label>UserID</label>
<description>User ID for API access.</description>
<label>@text/thing-type.config.shellydevice.userId.label</label>
<description>@text/thing-type.config.shellydevice.userId.description</description>
</parameter>
<parameter name="password" type="text" required="true">
<label>Password</label>
<description>Password for API access.</description>
<label>@text/thing-type.config.shellydevice.password.label</label>
<description>@text/thing-type.config.shellydevice.password.description</description>
<context>password</context>
</parameter>
<parameter name="deviceIp" type="text" required="true">
<label>IP Address</label>
<description>IP Address of the Shelly device.</description>
<label>@text/thing-type.config.shellydevice.deviceIp.label</label>
<description>@text/thing-type.config.shellydevice.deviceIp.description</description>
<context>network-address</context>
</parameter>
</config-description>
@@ -30,7 +30,7 @@
<thing-type id="shellyunknown">
<label>Unknown Shelly Device</label>
<description>This device is currently not supported</description>
<description>@text/thing-type.shelly.shellyunknown.description</description>
<representation-property>deviceName</representation-property>
</thing-type>