[enocean] Add support for EEP in group A5_09 (#13793)
* [enocean] Support for gas sensors from A5_09 group Implementing support for gas sensors with EEP A5_09_02, 04, 05, 08, 09, 0C, 0D, adding new changels - CO, CO2, VOC, VOCId, TVOC and regenerate I18N properties file Fixes #13785, #13472 Signed-off-by: Zhivka Dimova <zhivka.dimova@myforest.net>
This commit is contained in:
parent
bc03e8c5cf
commit
b6004a77de
@ -48,6 +48,7 @@ This binding is developed on and tested with the following devices
|
|||||||
- TF-FKB (window contact)
|
- TF-FKB (window contact)
|
||||||
- TF-AHDSB (outdoor brightness sensor)
|
- TF-AHDSB (outdoor brightness sensor)
|
||||||
- FAFT60 (outdoor temperature & humidity sensor)
|
- FAFT60 (outdoor temperature & humidity sensor)
|
||||||
|
- FLGTF55 (air quality & temperature & humidity sensor)
|
||||||
- The following Opus actuators:
|
- The following Opus actuators:
|
||||||
- GN-A-R12V-SR-4 (light)
|
- GN-A-R12V-SR-4 (light)
|
||||||
- GN-A-R12V-MF-2 (light)
|
- GN-A-R12V-MF-2 (light)
|
||||||
@ -70,28 +71,30 @@ This binding is developed on and tested with the following devices
|
|||||||
- Rocker switches (NodOn, Eltako FT55 etc)
|
- Rocker switches (NodOn, Eltako FT55 etc)
|
||||||
- Siegenia Senso Secure window sensors
|
- Siegenia Senso Secure window sensors
|
||||||
- Soda window handles
|
- Soda window handles
|
||||||
|
- Nexelec INSAFE+ Carbon
|
||||||
|
|
||||||
However, because of the standardized EnOcean protocol it is more important which EEP this binding supports.
|
However, because of the standardized EnOcean protocol it is more important which EEP this binding supports.
|
||||||
Hence if your device supports one of the following EEPs the chances are good that your device is also supported by this binding.
|
Hence if your device supports one of the following EEPs the chances are good that your device is also supported by this binding.
|
||||||
|
|
||||||
|Thing type | EEP family | EEP Types | Channels¹ | Devices² | Pairing |
|
|Thing type | EEP family | EEP Types | Channels¹ | Devices² | Pairing |
|
||||||
|---------------------------------|-------------|---------------|------------------------------|--------------------------------|-----------|
|
|---------------------------------|-------------------|-------------------------|-------------------------------------------------------------|-------------------------|-----------|
|
||||||
| bridge | - | - | repeaterMode, setBaseId | USB300, EnOceanPi | - |
|
| bridge | - | - | repeaterMode, setBaseId | USB300, EnOceanPi | - |
|
||||||
| pushButton | F6-01/D2-03 | 0x01/0x0A | pushButton, doublePress,<br/>longPress, batteryLevel | NodOn soft button | Manually/Discovery |
|
| pushButton | F6-01/D2-03 | 0x01/0x0A | pushButton, doublePress, longPress, batteryLevel | NodOn soft button | Manually/Discovery |
|
||||||
| rockerSwitch | F6-02 | 0x01-02 | rockerswitchA, rockerswitchB,<br/>rockerSwitchAction | Eltako FT55 | Discovery |
|
| rockerSwitch | F6-02 | 0x01-02 | rockerswitchA, rockerswitchB, rockerSwitchAction | Eltako FT55 | Discovery |
|
||||||
| mechanicalHandle | F6-10/D2-06 | 0x00-01/0x01 | windowHandleState, contact and a lot more for soda handles³ | Hoppe SecuSignal handles, Eltako TF-FGB, Soda handles | Discovery |
|
| mechanicalHandle | F6-10/D2-06 | 0x00-01/0x01 | windowHandleState, contact and a lot more for soda handles³ | Hoppe SecuSignal handles, Eltako TF-FGB, Soda handles | Discovery |
|
||||||
| contact | D5-00 | 0x01 | contact | Eltako FTK(E) & TF-FKB | Discovery |
|
| contact | D5-00 | 0x01 | contact | Eltako FTK(E) & TF-FKB | Discovery |
|
||||||
| temperatureSensor | A5-02 | 0x01-30 | temperature | Thermokon SR65 | Discovery |
|
| temperatureSensor | A5-02 | 0x01-30 | temperature | Thermokon SR65 | Discovery |
|
||||||
| temperatureHumiditySensor | A5-04 | 0x01-03 | humidity, temperature | Eltako FTSB | Discovery |
|
| temperatureHumiditySensor | A5-04 | 0x01-03 | humidity, temperature | Eltako FTSB | Discovery |
|
||||||
| occupancySensor | A5-07 | 0x01-03 | illumination, batteryVoltage,<br/>motionDetection | NodON PIR-2-1-01 | Discovery |
|
| gasSensor | A5-09 | 0x02,04,05, 08,09,0C,0D | co, co2, totalVolatileOrganicCompounds, volatileOrganicCompounds, volatileOrganicCompoundsId, humidity, temperature | Nexelec, Eltako FLGTF55 | Discovery |
|
||||||
| lightTemperatureOccupancySensor | A5-08 | 0x01-03 | illumination, temperature,<br/>occupancy, motionDetection | Eltako FABH | Discovery |
|
| occupancySensor | A5-07 | 0x01-03 | illumination, batteryVoltage, motionDetection | NodON PIR-2-1-01 | Discovery |
|
||||||
|
| lightTemperatureOccupancySensor | A5-08 | 0x01-03 | illumination, temperature, occupancy, motionDetection | Eltako FABH | Discovery |
|
||||||
| lightSensor | A5-06 | 0x01 | illumination | Eltako TF-AHDSB | Discovery |
|
| lightSensor | A5-06 | 0x01 | illumination | Eltako TF-AHDSB | Discovery |
|
||||||
| roomOperatingPanel | A5-10 | 0x01-23 | temperature, setPoint, fanSpeedStage,<br/>occupancy | Thermokon SR04 | Discovery |
|
| roomOperatingPanel | A5-10 | 0x01-23 | temperature, setPoint, fanSpeedStage, occupancy | Thermokon SR04 | Discovery |
|
||||||
| automatedMeterSensor | A5-12 | 0x00-03 | counter, currentNumber, instantpower,<br/>totalusage, amrLitre, amrCubicMetre | FWZ12 | Discovery |
|
| automatedMeterSensor | A5-12 | 0x00-03 | counter, currentNumber, instantpower, totalusage, amrLitre, amrCubicMetre | FWZ12 | Discovery |
|
||||||
| environmentalSensor | A5-13 | 0x01-02 | temperature, windspeed, illumination,<br/>rainStatus | FWS61 | Discovery |
|
| environmentalSensor | A5-13 | 0x01-02 | temperature, windspeed, illumination, rainStatus | FWS61 | Discovery |
|
||||||
| centralCommand | A5-38 | 0x08 | dimmer, generalSwitch | Eltako FUD14, FSR14 | Teach-in |
|
| centralCommand | A5-38 | 0x08 | dimmer, generalSwitch | Eltako FUD14, FSR14 | Teach-in |
|
||||||
| rollershutter | A5-3F/D2-05/A5-38 | 0x7F/00/08 | rollershutter | Eltako FSB14, NodOn SIN-2-RS-01| Teach-in/Discovery |
|
| rollershutter | A5-3F/D2-05/A5-38 | 0x7F/00/08 | rollershutter | Eltako FSB14, NodOn SIN-2-RS-01| Teach-in/Discovery |
|
||||||
| measurementSwitch | D2-01 | 0x00-0F,11,12 | generalSwitch(/A/B), instantpower,<br/>totalusage, repeaterMode | NodOn In Wall Switch | Discovery |
|
| measurementSwitch | D2-01 | 0x00-0F,11,12 | generalSwitch(/A/B), instantpower, totalusage, repeaterMode | NodOn In Wall Switch | Discovery |
|
||||||
| windowSashHandleSensor | D2-06 | 0x50 | windowHandleState, windowSashState, batteryLevel, batteryLow, windowBreachEvent, windowCalibrationState, windowCalibrationStep | Siegenia Senso Secure | Discovery |
|
| windowSashHandleSensor | D2-06 | 0x50 | windowHandleState, windowSashState, batteryLevel, batteryLow, windowBreachEvent, windowCalibrationState, windowCalibrationStep | Siegenia Senso Secure | Discovery |
|
||||||
| multiFunctionSmokeDetector | D2-14/F6-05 | 0x30/02 | smokeDetection, batteryLow | Insafe+, Afriso ASD | Discovery |
|
| multiFunctionSmokeDetector | D2-14/F6-05 | 0x30/02 | smokeDetection, batteryLow | Insafe+, Afriso ASD | Discovery |
|
||||||
| heatRecoveryVentilation | D2-50 | 0x00,01,10,11 | a lot of different state channels | Dimplex DL WE2 | Discovery |
|
| heatRecoveryVentilation | D2-50 | 0x00,01,10,11 | a lot of different state channels | Dimplex DL WE2 | Discovery |
|
||||||
@ -202,6 +205,9 @@ If you change the SenderId of your thing, you have to pair again the thing with
|
|||||||
| temperatureHumiditySensor | receivingEEPId | | A5_04_01-03 |
|
| temperatureHumiditySensor | receivingEEPId | | A5_04_01-03 |
|
||||||
| | enoceanId | | |
|
| | enoceanId | | |
|
||||||
| | receivingSIGEEP | | |
|
| | receivingSIGEEP | | |
|
||||||
|
| gasSensor | receivingEEPId | | A5_09_02, A5_09_04, A5_09_05, A5_09_08, A5_09_09, A5_09_0C, A5_09_0D |
|
||||||
|
| | enoceanId | | |
|
||||||
|
| | receivingSIGEEP | | |
|
||||||
| occupancySensor | receivingEEPId | | A5_07_01-03 |
|
| occupancySensor | receivingEEPId | | A5_07_01-03 |
|
||||||
| | enoceanId | | |
|
| | enoceanId | | |
|
||||||
| | receivingSIGEEP | | |
|
| | receivingSIGEEP | | |
|
||||||
@ -261,7 +267,7 @@ If you want to receive messages of your EnOcean devices you have to set **the en
|
|||||||
The channels of a thing are determined automatically based on the chosen EEP.
|
The channels of a thing are determined automatically based on the chosen EEP.
|
||||||
|
|
||||||
|Channel | Item | Description |
|
|Channel | Item | Description |
|
||||||
|---------------------|--------------------|---------------------------------|
|
|-----------------------------------|---------------------------|---------------------------------|
|
||||||
| repeaterMode | String | Set repeater level to 1, 2 or disable |
|
| repeaterMode | String | Set repeater level to 1, 2 or disable |
|
||||||
| setBaseId | String | Changes the BaseId of your gateway. This can only be done 10 times! So use it with care. |
|
| setBaseId | String | Changes the BaseId of your gateway. This can only be done 10 times! So use it with care. |
|
||||||
| pushButton | Trigger | Channel type system:rawbutton, emits PRESSED and RELEASED events |
|
| pushButton | Trigger | Channel type system:rawbutton, emits PRESSED and RELEASED events |
|
||||||
@ -277,6 +283,11 @@ The channels of a thing are determined automatically based on the chosen EEP.
|
|||||||
| contact | Contact | State OPEN/CLOSED (tilted handle => OPEN) |
|
| contact | Contact | State OPEN/CLOSED (tilted handle => OPEN) |
|
||||||
| temperature | Number:Temperature | Temperature in degree Celsius |
|
| temperature | Number:Temperature | Temperature in degree Celsius |
|
||||||
| humidity | Number | Relative humidity level in percentages |
|
| humidity | Number | Relative humidity level in percentages |
|
||||||
|
| co | Number:Dimensionless | Carbonmonoxide level in ppm |
|
||||||
|
| co2 | Number:Dimensionless | Carbondioxide level in ppm |
|
||||||
|
| totalVolatileOrganicCompounds | Number:Dimensionless | Total volatile organic compounds in ppb |
|
||||||
|
| volatileOrganicCompounds | Number:Dimensionless | VOC level |
|
||||||
|
| volatileOrganicCompoundsId | String | VOC Identification |
|
||||||
| illumination | Number:Illuminance | Illumination in lux |
|
| illumination | Number:Illuminance | Illumination in lux |
|
||||||
| illuminationWest | Number:Illuminance | Illumination in lux |
|
| illuminationWest | Number:Illuminance | Illumination in lux |
|
||||||
| illuminationSouthNorth | Number:Illuminance | Illumination in lux |
|
| illuminationSouthNorth | Number:Illuminance | Illumination in lux |
|
||||||
|
|||||||
@ -61,6 +61,7 @@ public class EnOceanBindingConstants {
|
|||||||
public static final ThingTypeUID THING_TYPE_TEMPERATURESENSOR = new ThingTypeUID(BINDING_ID, "temperatureSensor");
|
public static final ThingTypeUID THING_TYPE_TEMPERATURESENSOR = new ThingTypeUID(BINDING_ID, "temperatureSensor");
|
||||||
public static final ThingTypeUID THING_TYPE_TEMPERATUREHUMIDITYSENSOR = new ThingTypeUID(BINDING_ID,
|
public static final ThingTypeUID THING_TYPE_TEMPERATUREHUMIDITYSENSOR = new ThingTypeUID(BINDING_ID,
|
||||||
"temperatureHumiditySensor");
|
"temperatureHumiditySensor");
|
||||||
|
public static final ThingTypeUID THING_TYPE_GASSENSOR = new ThingTypeUID(BINDING_ID, "gasSensor");
|
||||||
public static final ThingTypeUID THING_TYPE_AUTOMATEDMETERSENSOR = new ThingTypeUID(BINDING_ID,
|
public static final ThingTypeUID THING_TYPE_AUTOMATEDMETERSENSOR = new ThingTypeUID(BINDING_ID,
|
||||||
"automatedMeterSensor");
|
"automatedMeterSensor");
|
||||||
public static final ThingTypeUID THING_TYPE_THERMOSTAT = new ThingTypeUID(BINDING_ID, "thermostat");
|
public static final ThingTypeUID THING_TYPE_THERMOSTAT = new ThingTypeUID(BINDING_ID, "thermostat");
|
||||||
@ -83,10 +84,10 @@ public class EnOceanBindingConstants {
|
|||||||
public static final Set<ThingTypeUID> SUPPORTED_DEVICE_THING_TYPES_UIDS = Set.of(THING_TYPE_PUSHBUTTON,
|
public static final Set<ThingTypeUID> SUPPORTED_DEVICE_THING_TYPES_UIDS = Set.of(THING_TYPE_PUSHBUTTON,
|
||||||
THING_TYPE_ROCKERSWITCH, THING_TYPE_CLASSICDEVICE, THING_TYPE_CENTRALCOMMAND, THING_TYPE_ROOMOPERATINGPANEL,
|
THING_TYPE_ROCKERSWITCH, THING_TYPE_CLASSICDEVICE, THING_TYPE_CENTRALCOMMAND, THING_TYPE_ROOMOPERATINGPANEL,
|
||||||
THING_TYPE_MECHANICALHANDLE, THING_TYPE_CONTACT, THING_TYPE_MEASUREMENTSWITCH, THING_TYPE_TEMPERATURESENSOR,
|
THING_TYPE_MECHANICALHANDLE, THING_TYPE_CONTACT, THING_TYPE_MEASUREMENTSWITCH, THING_TYPE_TEMPERATURESENSOR,
|
||||||
THING_TYPE_TEMPERATUREHUMIDITYSENSOR, THING_TYPE_GENERICTHING, THING_TYPE_ROLLERSHUTTER,
|
THING_TYPE_TEMPERATUREHUMIDITYSENSOR, THING_TYPE_GASSENSOR, THING_TYPE_GENERICTHING,
|
||||||
THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR, THING_TYPE_LIGHTSENSOR,
|
THING_TYPE_ROLLERSHUTTER, THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR,
|
||||||
THING_TYPE_ENVIRONMENTALSENSOR, THING_TYPE_AUTOMATEDMETERSENSOR, THING_TYPE_THERMOSTAT,
|
THING_TYPE_LIGHTSENSOR, THING_TYPE_ENVIRONMENTALSENSOR, THING_TYPE_AUTOMATEDMETERSENSOR,
|
||||||
THING_TYPE_MULTFUNCTIONSMOKEDETECTOR, THING_TYPE_HEATRECOVERYVENTILATION,
|
THING_TYPE_THERMOSTAT, THING_TYPE_MULTFUNCTIONSMOKEDETECTOR, THING_TYPE_HEATRECOVERYVENTILATION,
|
||||||
THING_TYPE_WINDOWSASHHANDLESENSOR);
|
THING_TYPE_WINDOWSASHHANDLESENSOR);
|
||||||
|
|
||||||
// List of all Channel Type Ids, these type ids are also used as channel ids during dynamic creation of channels
|
// List of all Channel Type Ids, these type ids are also used as channel ids during dynamic creation of channels
|
||||||
@ -103,6 +104,11 @@ public class EnOceanBindingConstants {
|
|||||||
public static final String CHANNEL_ANGLE = "angle";
|
public static final String CHANNEL_ANGLE = "angle";
|
||||||
public static final String CHANNEL_TEMPERATURE = "temperature";
|
public static final String CHANNEL_TEMPERATURE = "temperature";
|
||||||
public static final String CHANNEL_HUMIDITY = "humidity";
|
public static final String CHANNEL_HUMIDITY = "humidity";
|
||||||
|
public static final String CHANNEL_CO2 = "co2";
|
||||||
|
public static final String CHANNEL_CO = "co";
|
||||||
|
public static final String CHANNEL_TVOC = "totalVolatileOrganicCompounds";
|
||||||
|
public static final String CHANNEL_VOC = "volatileOrganicCompounds";
|
||||||
|
public static final String CHANNEL_VOC_ID = "volatileOrganicCompoundsId";
|
||||||
public static final String CHANNEL_SETPOINT = "setPoint";
|
public static final String CHANNEL_SETPOINT = "setPoint";
|
||||||
public static final String CHANNEL_FANSPEEDSTAGE = "fanSpeedStage";
|
public static final String CHANNEL_FANSPEEDSTAGE = "fanSpeedStage";
|
||||||
public static final String CHANNEL_OCCUPANCY = "occupancy";
|
public static final String CHANNEL_OCCUPANCY = "occupancy";
|
||||||
@ -243,6 +249,18 @@ public class EnOceanBindingConstants {
|
|||||||
Map.entry(CHANNEL_HUMIDITY,
|
Map.entry(CHANNEL_HUMIDITY,
|
||||||
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_HUMIDITY),
|
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_HUMIDITY),
|
||||||
CoreItemFactory.NUMBER)),
|
CoreItemFactory.NUMBER)),
|
||||||
|
Map.entry(CHANNEL_CO2,
|
||||||
|
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CO2), CoreItemFactory.NUMBER)),
|
||||||
|
Map.entry(CHANNEL_CO,
|
||||||
|
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CO), CoreItemFactory.NUMBER)),
|
||||||
|
Map.entry(CHANNEL_VOC,
|
||||||
|
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VOC), CoreItemFactory.NUMBER)),
|
||||||
|
Map.entry(CHANNEL_VOC_ID,
|
||||||
|
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VOC_ID),
|
||||||
|
CoreItemFactory.STRING)),
|
||||||
|
Map.entry(CHANNEL_TVOC,
|
||||||
|
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TVOC),
|
||||||
|
CoreItemFactory.NUMBER)),
|
||||||
Map.entry(CHANNEL_FANSPEEDSTAGE,
|
Map.entry(CHANNEL_FANSPEEDSTAGE,
|
||||||
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_FANSPEEDSTAGE),
|
new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_FANSPEEDSTAGE),
|
||||||
CoreItemFactory.STRING)),
|
CoreItemFactory.STRING)),
|
||||||
|
|||||||
@ -0,0 +1,170 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.EEPHelper;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
import org.openhab.core.config.core.Configuration;
|
||||||
|
import org.openhab.core.library.types.DecimalType;
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public abstract class A5_09 extends _4BSMessage {
|
||||||
|
|
||||||
|
public A5_09(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
// CO
|
||||||
|
protected double getUnscaledCOMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getUnscaledCOMax() {
|
||||||
|
return 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledCOMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledCOMax() {
|
||||||
|
return 1020;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int getUnscaledCOValue() {
|
||||||
|
return getDB2Value();
|
||||||
|
}
|
||||||
|
|
||||||
|
// CO2
|
||||||
|
protected double getUnscaledCO2Min() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getUnscaledCO2Max() {
|
||||||
|
return 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledCO2Min() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledCO2Max() {
|
||||||
|
return 2550;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int getUnscaledCO2Value() {
|
||||||
|
return getDB2Value();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Temperature
|
||||||
|
protected double getUnscaledTemperatureMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getUnscaledTemperatureMax() {
|
||||||
|
return 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledTemperatureMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledTemperatureMax() {
|
||||||
|
return 51;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int getUnscaledTemperatureValue() {
|
||||||
|
return getDB1Value();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Humidity
|
||||||
|
protected double getUnscaledHumidityMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getUnscaledHumidityMax() {
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledHumidityMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledHumidityMax() {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int getUnscaledHumidityValue() {
|
||||||
|
return getDB3Value();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Battery
|
||||||
|
protected double getUnscaledBatteryVoltageMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getUnscaledBatteryVoltageMax() {
|
||||||
|
return 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledBatteryVoltageMin() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScaledBatteryVoltageMax() {
|
||||||
|
return 5.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getUnscaledBatteryVoltageValue() {
|
||||||
|
return getDB3Value();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected State convertToStateImpl(String channelId, String channelTypeId,
|
||||||
|
Function<String, State> getCurrentStateFunc, Configuration config) {
|
||||||
|
|
||||||
|
if (CHANNEL_CO.equals(channelId)) {
|
||||||
|
return EEPHelper.calculateState(getUnscaledCOValue(), getScaledCOMin(), getScaledCOMax(),
|
||||||
|
getUnscaledCOMin(), getUnscaledCOMax(), Units.PARTS_PER_MILLION);
|
||||||
|
} else if (CHANNEL_CO2.equals(channelId)) {
|
||||||
|
return EEPHelper.calculateState(getUnscaledCO2Value(), getScaledCO2Min(), getScaledCO2Max(),
|
||||||
|
getUnscaledCO2Min(), getUnscaledCO2Max(), Units.PARTS_PER_MILLION);
|
||||||
|
} else if (CHANNEL_TEMPERATURE.equals(channelId)) {
|
||||||
|
return EEPHelper.calculateState(getUnscaledTemperatureValue(), getScaledTemperatureMin(),
|
||||||
|
getScaledTemperatureMax(), getUnscaledTemperatureMin(), getUnscaledTemperatureMax(),
|
||||||
|
SIUnits.CELSIUS);
|
||||||
|
} else if (CHANNEL_HUMIDITY.equals(channelId)) {
|
||||||
|
return new DecimalType((getUnscaledHumidityValue() * 100.0) / getUnscaledHumidityMax());
|
||||||
|
} else if (CHANNEL_BATTERY_VOLTAGE.equals(channelId)) {
|
||||||
|
return EEPHelper.calculateState(getUnscaledBatteryVoltageValue(), getScaledBatteryVoltageMin(),
|
||||||
|
getScaledBatteryVoltageMax(), getUnscaledBatteryVoltageMin(), getUnscaledBatteryVoltageMax(),
|
||||||
|
Units.VOLT);
|
||||||
|
}
|
||||||
|
|
||||||
|
return UnDefType.UNDEF;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class A5_09_02 extends A5_09 {
|
||||||
|
|
||||||
|
public A5_09_02(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class A5_09_04 extends A5_09 {
|
||||||
|
|
||||||
|
public A5_09_04(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected double getScaledCO2Max() {
|
||||||
|
return 2550;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
import org.openhab.core.config.core.Configuration;
|
||||||
|
import org.openhab.core.library.types.QuantityType;
|
||||||
|
import org.openhab.core.library.types.StringType;
|
||||||
|
import org.openhab.core.library.unit.Units;
|
||||||
|
import org.openhab.core.types.State;
|
||||||
|
import org.openhab.core.types.UnDefType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class A5_09_05 extends A5_09 {
|
||||||
|
|
||||||
|
public A5_09_05(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double[] ScaleMultiplier = new double[] { 0.01, 0.1, 1, 10 };
|
||||||
|
|
||||||
|
protected String[] getVOCIdentifications() {
|
||||||
|
return new String[] { "VOCT", "Formaldehyde", "Benzene", "Styrene", "Toluene", "Tetrachloroethylene", "Xylene",
|
||||||
|
"n-Hexane", "n-Octane", "Cyclopentane", "Methanol", "Ethanol", "1-Pentanol", "Acetone",
|
||||||
|
"ethylene Oxide", "Acetaldehyde ue", "Acetic Acid", "Propionine Acid", "Valeric Acid", "Butyric Acid",
|
||||||
|
"Ammoniac", "Hidrogen Sulfide", "Dimethylsulfide", "2-Butanol", "2-Methylpropanol", "Diethyl ether",
|
||||||
|
"VOC-Index", "Ozone" };
|
||||||
|
}
|
||||||
|
|
||||||
|
protected long getUnscaledVOCValue() {
|
||||||
|
return getDBByOffsetSizeValue(0, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double getScalingFactor() {
|
||||||
|
int smid = Long.valueOf(getDBByOffsetSizeValue(30, 2)).intValue();
|
||||||
|
if (smid < 0 || smid >= ScaleMultiplier.length) {
|
||||||
|
logger.debug("Invalid value according to enocean specification for A5_09 Scale Multiplier {}", smid);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ScaleMultiplier[smid];
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getVOCID() {
|
||||||
|
int vocId = getDB1Value();
|
||||||
|
String[] VOCIdentifications = getVOCIdentifications();
|
||||||
|
if (vocId == 255) {
|
||||||
|
return VOCIdentifications[VOCIdentifications.length - 1];
|
||||||
|
} else if (vocId < 0 || vocId >= VOCIdentifications.length - 1) {
|
||||||
|
logger.debug("Invalid value according to enocean specification for A5_09 VOC Identification {}", vocId);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return VOCIdentifications[vocId];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected State convertToStateImpl(String channelId, String channelTypeId,
|
||||||
|
Function<String, State> getCurrentStateFunc, Configuration config) {
|
||||||
|
|
||||||
|
if (CHANNEL_VOC.equals(channelId)) {
|
||||||
|
double scaledVOC = getUnscaledVOCValue() * getScalingFactor();
|
||||||
|
return new QuantityType<>(scaledVOC, Units.PARTS_PER_BILLION);
|
||||||
|
} else if (CHANNEL_VOC_ID.equals(channelId)) {
|
||||||
|
return new StringType(getVOCID());
|
||||||
|
}
|
||||||
|
|
||||||
|
return UnDefType.UNDEF;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class A5_09_08 extends A5_09 {
|
||||||
|
|
||||||
|
public A5_09_08(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected double getScaledCO2Max() {
|
||||||
|
return 2000;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getUnscaledCO2Value() {
|
||||||
|
return getDB1Value();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class A5_09_09 extends A5_09 {
|
||||||
|
|
||||||
|
public A5_09_09(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected double getScaledCO2Max() {
|
||||||
|
return 2000;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getUnscaledCO2Value() {
|
||||||
|
return getDB1Value();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
import org.openhab.core.config.core.Configuration;
|
||||||
|
import org.openhab.core.library.types.QuantityType;
|
||||||
|
import org.openhab.core.library.unit.Units;
|
||||||
|
import org.openhab.core.types.State;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class A5_09_0C extends A5_09_05 {
|
||||||
|
|
||||||
|
public A5_09_0C(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String[] getVOCIdentifications() {
|
||||||
|
String[] VOCIdsSuper = super.getVOCIdentifications();
|
||||||
|
int elFromSuper = VOCIdsSuper.length - 2;
|
||||||
|
String[] VOCIdsExtension = new String[] { "Naphthalene", "4-Phenylcyclohexene", "Limonene", "Trichloroethylene",
|
||||||
|
"Isovaleric acid", "Indole", "Cadaverine", "Putrescine", "Caproic acid", "Ozone" };
|
||||||
|
String[] VOCIdsExtended = new String[elFromSuper + VOCIdsExtension.length];
|
||||||
|
|
||||||
|
System.arraycopy(VOCIdsSuper, 0, VOCIdsExtended, 0, elFromSuper);
|
||||||
|
System.arraycopy(VOCIdsExtension, 0, VOCIdsExtended, elFromSuper, VOCIdsExtension.length);
|
||||||
|
|
||||||
|
return VOCIdsExtended;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected State convertToStateImpl(String channelId, String channelTypeId,
|
||||||
|
Function<String, State> getCurrentStateFunc, Configuration config) {
|
||||||
|
|
||||||
|
if (CHANNEL_VOC.equals(channelId)) {
|
||||||
|
double scaledVOC = getUnscaledVOCValue() * getScalingFactor();
|
||||||
|
if (getBit(getDB0(), 2)) {
|
||||||
|
return new QuantityType<>(scaledVOC, Units.MICROGRAM_PER_CUBICMETRE);
|
||||||
|
}
|
||||||
|
return new QuantityType<>(scaledVOC, Units.PARTS_PER_BILLION);
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.convertToStateImpl(channelId, channelTypeId, getCurrentStateFunc, config);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.enocean.internal.eep.A5_09;
|
||||||
|
|
||||||
|
import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.EEPHelper;
|
||||||
|
import org.openhab.binding.enocean.internal.messages.ERP1Message;
|
||||||
|
import org.openhab.core.config.core.Configuration;
|
||||||
|
import org.openhab.core.library.unit.Units;
|
||||||
|
import org.openhab.core.types.State;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Zhivka Dimova - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class A5_09_0D extends A5_09 {
|
||||||
|
|
||||||
|
public A5_09_0D(ERP1Message packet) {
|
||||||
|
super(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected double getUnscaledTemperatureMax() {
|
||||||
|
return 250;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected State convertToStateImpl(String channelId, String channelTypeId,
|
||||||
|
Function<String, State> getCurrentStateFunc, Configuration config) {
|
||||||
|
|
||||||
|
if (CHANNEL_TVOC.equals(channelId)) {
|
||||||
|
return EEPHelper.calculateState(getDB2Value(), 0, 100, 0, 200, Units.PERCENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.convertToStateImpl(channelId, channelTypeId, getCurrentStateFunc, config);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -45,6 +45,22 @@ public abstract class _4BSMessage extends EEP {
|
|||||||
public static final byte TEACHIN_BIT = 0x08;
|
public static final byte TEACHIN_BIT = 0x08;
|
||||||
public static final byte LRN_TYPE_MASK = (byte) 0x80;
|
public static final byte LRN_TYPE_MASK = (byte) 0x80;
|
||||||
|
|
||||||
|
public long getDBByOffsetSizeValue(int offset, int size) {
|
||||||
|
if ((offset < 0 || offset > 31) || (size < 1 || size > 32 - offset)) {
|
||||||
|
logger.warn("4BSMessage get DB value by offset: {} and size: {}", offset, size);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
long msg = (((long) bytes[0] & 0xFF) << 24) | (((long) bytes[1] & 0xFF) << 16) | (((long) bytes[2] & 0xFF) << 8)
|
||||||
|
| bytes[3];
|
||||||
|
msg = (msg >> (32 - offset - size)) & ((1 << size) - 1);
|
||||||
|
|
||||||
|
logger.debug("_4BSMessage get DB value message bytes {} {} {} {} resulted in {} with offset: {} and size: {}",
|
||||||
|
bytes[0], bytes[1], bytes[2], bytes[3], msg, offset, size);
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
public byte getDB0() {
|
public byte getDB0() {
|
||||||
return bytes[3];
|
return bytes[3];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.openhab.binding.enocean.internal.eep;
|
package org.openhab.binding.enocean.internal.eep;
|
||||||
|
|
||||||
|
import javax.measure.Unit;
|
||||||
import javax.measure.quantity.Energy;
|
import javax.measure.quantity.Energy;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
@ -22,6 +23,8 @@ import org.openhab.core.library.types.QuantityType;
|
|||||||
import org.openhab.core.library.unit.Units;
|
import org.openhab.core.library.unit.Units;
|
||||||
import org.openhab.core.types.State;
|
import org.openhab.core.types.State;
|
||||||
import org.openhab.core.types.UnDefType;
|
import org.openhab.core.types.UnDefType;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -30,6 +33,8 @@ import org.openhab.core.types.UnDefType;
|
|||||||
*/
|
*/
|
||||||
@NonNullByDefault
|
@NonNullByDefault
|
||||||
public abstract class EEPHelper {
|
public abstract class EEPHelper {
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(EEPHelper.class);
|
||||||
|
|
||||||
public static State validateTotalUsage(State value, @Nullable State currentState, Configuration config) {
|
public static State validateTotalUsage(State value, @Nullable State currentState, Configuration config) {
|
||||||
EnOceanChannelTotalusageConfig c = config.as(EnOceanChannelTotalusageConfig.class);
|
EnOceanChannelTotalusageConfig c = config.as(EnOceanChannelTotalusageConfig.class);
|
||||||
|
|
||||||
@ -63,4 +68,27 @@ public abstract class EEPHelper {
|
|||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean validateUnscaledValue(int unscaledValue, double unscaledMin, double unscaledMax) {
|
||||||
|
if (unscaledValue < unscaledMin) {
|
||||||
|
logger.debug("Unscaled value ({}) lower than the minimum allowed ({})", unscaledValue, unscaledMin);
|
||||||
|
return false;
|
||||||
|
} else if (unscaledValue > unscaledMax) {
|
||||||
|
logger.debug("Unscaled value ({}) bigger than the maximum allowed ({})", unscaledValue, unscaledMax);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static State calculateState(int unscaledValue, double scaledMin, double scaledMax, double unscaledMin,
|
||||||
|
double unscaledMax, Unit<?> unit) {
|
||||||
|
|
||||||
|
if (!validateUnscaledValue(unscaledValue, unscaledMin, unscaledMax)) {
|
||||||
|
return UnDefType.UNDEF;
|
||||||
|
}
|
||||||
|
|
||||||
|
double scaledValue = scaledMin + ((unscaledValue * (scaledMax - scaledMin)) / (unscaledMax - unscaledMin));
|
||||||
|
return new QuantityType<>(scaledValue, unit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -60,6 +60,13 @@ import org.openhab.binding.enocean.internal.eep.A5_08.A5_08_01;
|
|||||||
import org.openhab.binding.enocean.internal.eep.A5_08.A5_08_01_FXBH;
|
import org.openhab.binding.enocean.internal.eep.A5_08.A5_08_01_FXBH;
|
||||||
import org.openhab.binding.enocean.internal.eep.A5_08.A5_08_02;
|
import org.openhab.binding.enocean.internal.eep.A5_08.A5_08_02;
|
||||||
import org.openhab.binding.enocean.internal.eep.A5_08.A5_08_03;
|
import org.openhab.binding.enocean.internal.eep.A5_08.A5_08_03;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.A5_09.A5_09_02;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.A5_09.A5_09_04;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.A5_09.A5_09_05;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.A5_09.A5_09_08;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.A5_09.A5_09_09;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.A5_09.A5_09_0C;
|
||||||
|
import org.openhab.binding.enocean.internal.eep.A5_09.A5_09_0D;
|
||||||
import org.openhab.binding.enocean.internal.eep.A5_10.A5_10_01;
|
import org.openhab.binding.enocean.internal.eep.A5_10.A5_10_01;
|
||||||
import org.openhab.binding.enocean.internal.eep.A5_10.A5_10_02;
|
import org.openhab.binding.enocean.internal.eep.A5_10.A5_10_02;
|
||||||
import org.openhab.binding.enocean.internal.eep.A5_10.A5_10_03;
|
import org.openhab.binding.enocean.internal.eep.A5_10.A5_10_03;
|
||||||
@ -300,6 +307,17 @@ public enum EEPType {
|
|||||||
LightSensor02(RORG._4BS, 0x06, 0x01, false, "ELTAKO", ELTAKOID, A5_06_01_ELTAKO.class, THING_TYPE_LIGHTSENSOR,
|
LightSensor02(RORG._4BS, 0x06, 0x01, false, "ELTAKO", ELTAKOID, A5_06_01_ELTAKO.class, THING_TYPE_LIGHTSENSOR,
|
||||||
CHANNEL_ILLUMINATION),
|
CHANNEL_ILLUMINATION),
|
||||||
|
|
||||||
|
GasSensor_A5_09_02(RORG._4BS, 0x09, 0x02, false, A5_09_02.class, THING_TYPE_GASSENSOR, CHANNEL_CO,
|
||||||
|
CHANNEL_TEMPERATURE, CHANNEL_BATTERY_VOLTAGE),
|
||||||
|
GasSensor_A5_09_04(RORG._4BS, 0x09, 0x04, false, A5_09_04.class, THING_TYPE_GASSENSOR, CHANNEL_CO2,
|
||||||
|
CHANNEL_TEMPERATURE, CHANNEL_HUMIDITY),
|
||||||
|
GasSensor_A5_09_05(RORG._4BS, 0x09, 0x05, false, A5_09_05.class, THING_TYPE_GASSENSOR, CHANNEL_VOC, CHANNEL_VOC_ID),
|
||||||
|
GasSensor_A5_09_08(RORG._4BS, 0x09, 0x08, false, A5_09_08.class, THING_TYPE_GASSENSOR, CHANNEL_CO2),
|
||||||
|
GasSensor_A5_09_09(RORG._4BS, 0x09, 0x09, false, A5_09_09.class, THING_TYPE_GASSENSOR, CHANNEL_CO2),
|
||||||
|
GasSensor_A5_09_0C(RORG._4BS, 0x09, 0x0C, false, A5_09_0C.class, THING_TYPE_GASSENSOR, CHANNEL_VOC, CHANNEL_VOC_ID),
|
||||||
|
GasSensor_A5_09_0D(RORG._4BS, 0x09, 0x0D, false, A5_09_0D.class, THING_TYPE_GASSENSOR, CHANNEL_HUMIDITY,
|
||||||
|
CHANNEL_TVOC, CHANNEL_TEMPERATURE),
|
||||||
|
|
||||||
RoomPanel_A5_10_01(RORG._4BS, 0x10, 0x01, false, A5_10_01.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE,
|
RoomPanel_A5_10_01(RORG._4BS, 0x10, 0x01, false, A5_10_01.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE,
|
||||||
CHANNEL_SETPOINT, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY),
|
CHANNEL_SETPOINT, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY),
|
||||||
RoomPanel_A5_10_02(RORG._4BS, 0x10, 0x02, false, A5_10_02.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE,
|
RoomPanel_A5_10_02(RORG._4BS, 0x10, 0x02, false, A5_10_02.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE,
|
||||||
|
|||||||
@ -56,10 +56,10 @@ public class EnOceanBaseSensorHandler extends EnOceanBaseThingHandler implements
|
|||||||
// List of all thing types which support receiving of eep messages
|
// List of all thing types which support receiving of eep messages
|
||||||
public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES = Set.of(THING_TYPE_ROOMOPERATINGPANEL,
|
public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES = Set.of(THING_TYPE_ROOMOPERATINGPANEL,
|
||||||
THING_TYPE_MECHANICALHANDLE, THING_TYPE_CONTACT, THING_TYPE_TEMPERATURESENSOR,
|
THING_TYPE_MECHANICALHANDLE, THING_TYPE_CONTACT, THING_TYPE_TEMPERATURESENSOR,
|
||||||
THING_TYPE_TEMPERATUREHUMIDITYSENSOR, THING_TYPE_ROCKERSWITCH, THING_TYPE_OCCUPANCYSENSOR,
|
THING_TYPE_TEMPERATUREHUMIDITYSENSOR, THING_TYPE_GASSENSOR, THING_TYPE_ROCKERSWITCH,
|
||||||
THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR, THING_TYPE_LIGHTSENSOR, THING_TYPE_PUSHBUTTON,
|
THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR, THING_TYPE_LIGHTSENSOR,
|
||||||
THING_TYPE_AUTOMATEDMETERSENSOR, THING_TYPE_ENVIRONMENTALSENSOR, THING_TYPE_MULTFUNCTIONSMOKEDETECTOR,
|
THING_TYPE_PUSHBUTTON, THING_TYPE_AUTOMATEDMETERSENSOR, THING_TYPE_ENVIRONMENTALSENSOR,
|
||||||
THING_TYPE_WINDOWSASHHANDLESENSOR);
|
THING_TYPE_MULTFUNCTIONSMOKEDETECTOR, THING_TYPE_WINDOWSASHHANDLESENSOR);
|
||||||
|
|
||||||
protected final Hashtable<RORG, EEPType> receivingEEPTypes = new Hashtable<>();
|
protected final Hashtable<RORG, EEPType> receivingEEPTypes = new Hashtable<>();
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,714 @@
|
|||||||
|
# add-on
|
||||||
|
|
||||||
|
addon.enocean.name = EnOcean Binding
|
||||||
|
addon.enocean.description = The EnOcean binding integrates the EnOcean system into openHAB.
|
||||||
|
|
||||||
|
# thing types
|
||||||
|
|
||||||
|
thing-type.enocean.automatedMeterSensor.label = Automated Meter Sensor
|
||||||
|
thing-type.enocean.automatedMeterSensor.description = Sensor for different meters like energy measurement (EEP: A5-12)
|
||||||
|
thing-type.enocean.bridge.label = EnOcean Gateway
|
||||||
|
thing-type.enocean.bridge.description = The EnOcean gateway connects to an ESP3 device.
|
||||||
|
thing-type.enocean.centralCommand.label = Switching/Dimming Actuator
|
||||||
|
thing-type.enocean.centralCommand.description = Controls a switching or dimming actuator (EEP: A5-38)
|
||||||
|
thing-type.enocean.classicDevice.label = Classic Device
|
||||||
|
thing-type.enocean.classicDevice.description = This thing lets you control classic EnOcean devices by rocker switch messages (EEP: F6-02)
|
||||||
|
thing-type.enocean.contact.label = Single Input Contact
|
||||||
|
thing-type.enocean.contact.description = Single input contact sensor (EEP: D5-00)
|
||||||
|
thing-type.enocean.environmentalSensor.label = Environmental Sensor
|
||||||
|
thing-type.enocean.environmentalSensor.description = Sensor for different environmental sensors like a weather station (EEP: A5-13)
|
||||||
|
thing-type.enocean.gasSensor.label = Gas Sensor
|
||||||
|
thing-type.enocean.gasSensor.description = Sensor which sends gas measurement data (EEP: A5-09)
|
||||||
|
thing-type.enocean.genericThing.label = Generic Thing
|
||||||
|
thing-type.enocean.genericThing.description = Thing whose EEP is unsupported. Use a TRANSFORM to convert things messages.
|
||||||
|
thing-type.enocean.heatRecoveryVentilation.label = Heat Recovery Ventilation
|
||||||
|
thing-type.enocean.heatRecoveryVentilation.description = Sensor and actuator to control heat recovery ventilation units (EEP: D2-50)
|
||||||
|
thing-type.enocean.lightSensor.label = Light Sensor
|
||||||
|
thing-type.enocean.lightSensor.description = Sensor which sends light data (EEP: A5-06)
|
||||||
|
thing-type.enocean.lightTemperatureOccupancySensor.label = Light/Temperature/Occupancy Sensor
|
||||||
|
thing-type.enocean.lightTemperatureOccupancySensor.description = Sensor which sends light, temperature and occupancy data (EEP: A5-08)
|
||||||
|
thing-type.enocean.measurementSwitch.label = Energy Measurement Switch
|
||||||
|
thing-type.enocean.measurementSwitch.description = Electronic switches and dimmers with energy measurement and local control (EEP: D2-01)
|
||||||
|
thing-type.enocean.mechanicalHandle.label = Mechanical Handle
|
||||||
|
thing-type.enocean.mechanicalHandle.description = Mechanical handle sensor for window/door handles
|
||||||
|
thing-type.enocean.multiFunctionSmokeDetector.label = Multi Function Smoke Detector
|
||||||
|
thing-type.enocean.multiFunctionSmokeDetector.description = Multi Function Sensor like a Smoke Detector (EEP: F6-05, D2-14)
|
||||||
|
thing-type.enocean.occupancySensor.label = Occupancy Sensor
|
||||||
|
thing-type.enocean.occupancySensor.description = Sensor which sends light, supply voltage and occupancy data (EEP: A5-07)
|
||||||
|
thing-type.enocean.pushButton.label = Simple Push Button
|
||||||
|
thing-type.enocean.pushButton.description = Represents a physical Push Button (EEP: F6-01, D2-03)
|
||||||
|
thing-type.enocean.rockerSwitch.label = Rocker Switch
|
||||||
|
thing-type.enocean.rockerSwitch.description = Represents a physical Rocker Switch (EEP: F6-02)
|
||||||
|
thing-type.enocean.rockerSwitch.channel.rockerSwitchAction.label = Rocker Switch Action
|
||||||
|
thing-type.enocean.rockerSwitch.channel.rockerswitchA.label = Rocker Switch - Channel A
|
||||||
|
thing-type.enocean.rockerSwitch.channel.rockerswitchB.label = Rocker Switch - Channel B
|
||||||
|
thing-type.enocean.rollershutter.label = Rollershutter Actuator
|
||||||
|
thing-type.enocean.rollershutter.description = Rollershutter like Eltako FSB14/61/71 or NodOn SIN-2-RS-01 (EEP: A5-37, D2-05)
|
||||||
|
thing-type.enocean.roomOperatingPanel.label = Room Operating Panel
|
||||||
|
thing-type.enocean.roomOperatingPanel.description = Room operating panel with different kinds of sensors (EEP: A5-10)
|
||||||
|
thing-type.enocean.temperatureHumiditySensor.label = Temperature/Humidity Sensor
|
||||||
|
thing-type.enocean.temperatureHumiditySensor.description = Sensor which sends temperature and humidity data (EEP: A5-04)
|
||||||
|
thing-type.enocean.temperatureSensor.label = Temperature Sensor
|
||||||
|
thing-type.enocean.temperatureSensor.description = Sensor which send temperature data (EEP: A5-02)
|
||||||
|
thing-type.enocean.thermostat.label = Thermostat
|
||||||
|
thing-type.enocean.thermostat.description = Sensor and actuator to control radiator thermostats
|
||||||
|
thing-type.enocean.windowSashHandleSensor.label = Sash Handle Sensor
|
||||||
|
thing-type.enocean.windowSashHandleSensor.description = Combined sensor for window/door sash state and handle state
|
||||||
|
|
||||||
|
# thing types config
|
||||||
|
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.receivingEEPId.description = EEP which is used by panel
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.receivingEEPId.option.A5_12_00 = A5-12-00 Counter
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.receivingEEPId.option.A5_12_01 = A5-12-01 Electricity
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.receivingEEPId.option.A5_12_02 = A5-12-02 Gas
|
||||||
|
thing-type.config.enocean.automatedMeterSensor.receivingEEPId.option.A5_12_03 = A5-12-03 Water
|
||||||
|
thing-type.config.enocean.bridge.enableSmack.label = Handle SMACK Messages
|
||||||
|
thing-type.config.enocean.bridge.enableSmack.description = Declare Gateway as a SMACK Postmaster and handle SMACK messages
|
||||||
|
thing-type.config.enocean.bridge.espVersion.label = ESP version of received and transmitting messages
|
||||||
|
thing-type.config.enocean.bridge.espVersion.option.ESP3 = ESP3
|
||||||
|
thing-type.config.enocean.bridge.espVersion.option.ESP2 = ESP2
|
||||||
|
thing-type.config.enocean.bridge.nextSenderId.label = Next Sender Id Offset
|
||||||
|
thing-type.config.enocean.bridge.nextSenderId.description = Defines the next device Id, if empty, the next device id is automatically determined
|
||||||
|
thing-type.config.enocean.bridge.path.label = Path
|
||||||
|
thing-type.config.enocean.bridge.path.description = Path to the EnOcean gateway
|
||||||
|
thing-type.config.enocean.bridge.rs485.label = Gateway Connected Directly to RS485 BUS
|
||||||
|
thing-type.config.enocean.bridge.rs485BaseId.label = Use following BaseId when connected directly to RS485 BUS
|
||||||
|
thing-type.config.enocean.bridge.sendTeachOuts.label = Send TeachOuts
|
||||||
|
thing-type.config.enocean.bridge.sendTeachOuts.description = Should a learned in or teach out response been send on a repeated smack teach in request
|
||||||
|
thing-type.config.enocean.centralCommand.broadcastMessages.label = Send Broadcast Messages
|
||||||
|
thing-type.config.enocean.centralCommand.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.centralCommand.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.centralCommand.receivingEEPId.label = EEP for Receiving States
|
||||||
|
thing-type.config.enocean.centralCommand.receivingEEPId.option.F6_00_00 = PTM200 (F6 message widely used by Eltako devices)
|
||||||
|
thing-type.config.enocean.centralCommand.receivingEEPId.option.A5_38_08_02 = Message with dimming value (A5_38_08 sub command 0x02)
|
||||||
|
thing-type.config.enocean.centralCommand.receivingEEPId.option.A5_11_04 = Extended lighting status (A5-11-04)
|
||||||
|
thing-type.config.enocean.centralCommand.senderIdOffset.label = Sender Id
|
||||||
|
thing-type.config.enocean.centralCommand.senderIdOffset.description = Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
|
||||||
|
thing-type.config.enocean.centralCommand.sendingEEPId.label = EEP for Sending Commands
|
||||||
|
thing-type.config.enocean.centralCommand.sendingEEPId.option.A5_38_08_01 = Gateway command - switching (A5_38_08 sub command 0x01)
|
||||||
|
thing-type.config.enocean.centralCommand.sendingEEPId.option.A5_38_08_02 = Gateway command - dimming (A5_38_08 sub command 0x02)
|
||||||
|
thing-type.config.enocean.centralCommand.suppressRepeating.label = Suppress Repeating of Messages
|
||||||
|
thing-type.config.enocean.classicDevice.receivingEEPId.label = EEP for Receiving States
|
||||||
|
thing-type.config.enocean.classicDevice.receivingEEPId.description = EEP which is used by rocker switch listener(s)
|
||||||
|
thing-type.config.enocean.classicDevice.receivingEEPId.option.F6_02_01 = F6-02-01 (upper rocker => DIR1)
|
||||||
|
thing-type.config.enocean.classicDevice.receivingEEPId.option.F6_02_02 = F6-02-02 (upper rocker => DIR2)
|
||||||
|
thing-type.config.enocean.classicDevice.senderIdOffset.label = Sender Id
|
||||||
|
thing-type.config.enocean.classicDevice.senderIdOffset.description = Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
|
||||||
|
thing-type.config.enocean.classicDevice.sendingEEPId.label = EEP for Sending Commands
|
||||||
|
thing-type.config.enocean.classicDevice.sendingEEPId.description = EEP which is used to control the device
|
||||||
|
thing-type.config.enocean.classicDevice.sendingEEPId.option.F6_02_01 = F6-02-01 (upper rocker => DIR1)
|
||||||
|
thing-type.config.enocean.classicDevice.sendingEEPId.option.F6_02_02 = F6-02-02 (upper rocker => DIR2)
|
||||||
|
thing-type.config.enocean.classicDevice.suppressRepeating.label = Suppress Repeating of Messages
|
||||||
|
thing-type.config.enocean.contact.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.contact.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.contact.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.contact.receivingEEPId.description = EEP which is used by contact
|
||||||
|
thing-type.config.enocean.contact.receivingEEPId.option.D5_00_01 = D5-00-01 single input
|
||||||
|
thing-type.config.enocean.contact.receivingEEPId.option.A5_14_01 = A5-14-01 Single input contact, supply voltage monitor
|
||||||
|
thing-type.config.enocean.contact.receivingEEPId.option.A5_14_01_ELTAKO = Eltako battery status
|
||||||
|
thing-type.config.enocean.contact.receivingEEPId.option.F6_10_00_EltakoFPE = F6-10-00 Eltako FPE-X
|
||||||
|
thing-type.config.enocean.contact.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
thing-type.config.enocean.environmentalSensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.environmentalSensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.environmentalSensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.environmentalSensor.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.environmentalSensor.receivingEEPId.option.A5_13_01 = A5-13-01 Weather station
|
||||||
|
thing-type.config.enocean.gasSensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.gasSensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.option.A5_09_02 = A5-09-02 CO sensor (temperature sensor optional)
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.option.A5_09_04 = A5-09-04 CO2 sensor (temperature and humidity sensor optional)
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.option.A5_09_05 = A5-09-05 VOC Sensor
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.option.A5_09_08 = A5-09-08 Pure CO2 sensor
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.option.A5_09_09 = A5-09-09 Pure CO2 sensor with Power Failure Detection
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.option.A5_09_0C = A5-09-0C VOC Sensor
|
||||||
|
thing-type.config.enocean.gasSensor.receivingEEPId.option.A5_09_0D = A5-09-0D VOC, humidity + temperature
|
||||||
|
thing-type.config.enocean.genericThing.broadcastMessages.label = Send Broadcast Messages
|
||||||
|
thing-type.config.enocean.genericThing.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.genericThing.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.genericThing.receivingEEPId.label = EEP for Receiving States
|
||||||
|
thing-type.config.enocean.genericThing.receivingEEPId.option.F6_FF_FF = Generic RPS (F6)
|
||||||
|
thing-type.config.enocean.genericThing.receivingEEPId.option.A5_FF_FF = Generic 4BS (A5)
|
||||||
|
thing-type.config.enocean.genericThing.receivingEEPId.option.D2_FF_FF = Generic VLD (D2)
|
||||||
|
thing-type.config.enocean.genericThing.senderIdOffset.label = Sender Id
|
||||||
|
thing-type.config.enocean.genericThing.senderIdOffset.description = Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
|
||||||
|
thing-type.config.enocean.genericThing.sendingEEPId.label = EEP for Sending Commands
|
||||||
|
thing-type.config.enocean.genericThing.sendingEEPId.option.F6_FF_FF = Generic RPS (F6)
|
||||||
|
thing-type.config.enocean.genericThing.sendingEEPId.option.A5_FF_FF = Generic 4BS (A5)
|
||||||
|
thing-type.config.enocean.genericThing.sendingEEPId.option.D2_FF_FF = Generic VLD (D2)
|
||||||
|
thing-type.config.enocean.genericThing.suppressRepeating.label = Suppress Repeating of Messages
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.broadcastMessages.label = Send Broadcast Messages
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.receivingEEPId.description = EEP which is used by Ventilation Unit
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.receivingEEPId.option.D2_50_00 = D2-50-00 Single Room Ventilation Unit
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.receivingEEPId.option.D2_50_01 = D2-50-01 Single Room Ventilation Unit With Pre-Heater
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.receivingEEPId.option.D2_50_10 = D2-50-10 Multi Room Ventilation Unit Without Bypass
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.receivingEEPId.option.D2_50_11 = D2-50-11 Multi Room Ventilation Unit With Bypass
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.senderIdOffset.label = Sender Id
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.senderIdOffset.description = Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.sendingEEPId.label = EEP for Sending Commands
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.sendingEEPId.option.D2_50_00 = D2-50-00 Single Room Ventilation Unit
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.sendingEEPId.option.D2_50_01 = D2-50-01 Single Room Ventilation Unit With Pre-Heater
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.sendingEEPId.option.D2_50_10 = D2-50-10 Multi Room Ventilation Unit Without Bypass
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.sendingEEPId.option.D2_50_11 = D2-50-11 Multi Room Ventilation Unit With Bypass
|
||||||
|
thing-type.config.enocean.heatRecoveryVentilation.suppressRepeating.label = Suppress Repeating of Messages
|
||||||
|
thing-type.config.enocean.lightSensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.lightSensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.lightSensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.lightSensor.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.lightSensor.receivingEEPId.option.A5_06_01 = A5-06-01
|
||||||
|
thing-type.config.enocean.lightSensor.receivingEEPId.option.A5_06_01_ELTAKO = A5-06-01 ELTAKO
|
||||||
|
thing-type.config.enocean.lightSensor.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.receivingEEPId.option.A5_08_01 = A5-08-01 temperature range [0;51], lux range [0;510]
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.receivingEEPId.option.A5_08_02 = A5-08-02 temperature range [0;51], lux range [0;1020]
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.receivingEEPId.option.A5_08_03 = A5-08-03 temperature range [-30;50], lux range [0;1530]
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.receivingEEPId.option.A5_08_01_FXBH = Eltako FxBH lux range [0;2048]
|
||||||
|
thing-type.config.enocean.lightTemperatureOccupancySensor.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
thing-type.config.enocean.measurementSwitch.broadcastMessages.label = Send Broadcast Messages
|
||||||
|
thing-type.config.enocean.measurementSwitch.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.measurementSwitch.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.measurementSwitch.pollingInterval.label = Polling Interval
|
||||||
|
thing-type.config.enocean.measurementSwitch.pollingInterval.description = Time in seconds after a refresh is triggerd, 0 to disable
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.label = EEP for Receiving Commands
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_00 = Switching and energy measurement (EEP: D2_01_00)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_01 = Switching (EEP: D2_01_01)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_02 = Switching, dimming and energy measurement (EEP: D2_01_02)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_03 = Switching and dimming (EEP: D2_01_03)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_04 = Switching, dimming and energy measurement (EEP: D2_01_04)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_05 = Switching, dimming and energy measurement (EEP: D2_01_05)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_06 = Switching and energy measurement (EEP: D2_01_06)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_07 = Switching (EEP: D2_01_07)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_08 = Switching, dimming and energy measurement (EEP: D2_01_08)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_09 = Switching, dimming and energy measurement (EEP: D2_01_09)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_09_PERMUNDO = Permundo PSC
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_0A = Switching and energy measurement (EEP: D2_01_0A)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_0B = Switching and energy measurement (EEP: D2_01_0B)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_0C = Switching and energy measurement (EEP: D2_01_0C)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_0D = Switching (EEP: D2_01_0D)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_0E = Switching and energy measurement (EEP: D2_01_0E)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_0F = Switching (EEP: D2_01_0F)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_0F_NODON = NodON SIN-2-1-00 (EEP: D2_01_0F)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_11 = Switching (EEP: D2_01_11)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_12 = Switching (EEP: D2_01_12)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.D2_01_12_NODON = NodON SIN-2-2-0x (EEP: D2_01_12)
|
||||||
|
thing-type.config.enocean.measurementSwitch.receivingEEPId.option.A5_12_01 = AMR Electricity (EEP: A5_12_01)
|
||||||
|
thing-type.config.enocean.measurementSwitch.senderIdOffset.label = Sender Id
|
||||||
|
thing-type.config.enocean.measurementSwitch.senderIdOffset.description = Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.label = EEP for Sending Commands
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_00 = Switching and energy measurement (EEP: D2_01_00)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_01 = Switching (EEP: D2_01_01)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_02 = Switching, dimming and energy measurement (EEP: D2_01_02)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_03 = Switching and dimming (EEP: D2_01_03)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_04 = Switching, dimming and energy measurement (EEP: D2_01_04)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_05 = Switching, dimming and energy measurement (EEP: D2_01_05)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_06 = Switching and energy measurement (EEP: D2_01_06)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_07 = Switching (EEP: D2_01_07)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_08 = Switching, dimming and energy measurement (EEP: D2_01_08)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_09 = Switching, dimming and energy measurement (EEP: D2_01_09)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_09_PERMUNDO = Permundo PSC
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_0A = Switching and energy measurement (EEP: D2_01_0A)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_0B = Switching and energy measurement (EEP: D2_01_0B)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_0C = Switching and energy measurement (EEP: D2_01_0C)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_0D = Switching (EEP: D2_01_0D)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_0E = Switching and energy measurement (EEP: D2_01_0E)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_0F = Switching (EEP: D2_01_0F)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_0F_NODON = NodON SIN-2-1-00 (EEP: D2_01_0F)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_11 = Switching (EEP: D2_01_11)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_12 = Switching (EEP: D2_01_12)
|
||||||
|
thing-type.config.enocean.measurementSwitch.sendingEEPId.option.D2_01_12_NODON = NodON SIN-2-2-0x (EEP: D2_01_12)
|
||||||
|
thing-type.config.enocean.measurementSwitch.suppressRepeating.label = Suppress Repeating of Messages
|
||||||
|
thing-type.config.enocean.mechanicalHandle.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.mechanicalHandle.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingEEPId.description = EEP which is used by handle
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingEEPId.option.F6_10_00 = F6-10-00
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingEEPId.option.F6_10_01 = F6-10-01
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingEEPId.option.A5_14_09 = A5-14-09
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingEEPId.option.A5_14_0A = A5-14-0A
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingEEPId.option.D2_06_01_Soda = D2_06_01 (Soda handle)
|
||||||
|
thing-type.config.enocean.mechanicalHandle.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
thing-type.config.enocean.multiFunctionSmokeDetector.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.multiFunctionSmokeDetector.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.multiFunctionSmokeDetector.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.multiFunctionSmokeDetector.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.multiFunctionSmokeDetector.receivingEEPId.option.F6_05_02 = F6-05-02 smoke detector
|
||||||
|
thing-type.config.enocean.multiFunctionSmokeDetector.receivingEEPId.option.D2_14_30 = D2-14-30 multi function sensor for smoke
|
||||||
|
thing-type.config.enocean.multiFunctionSmokeDetector.receivingEEPId.option.A5_30_03_ELTAKO = A5-30-03 Eltako smoke detectors (FHMB, FRWB)
|
||||||
|
thing-type.config.enocean.occupancySensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.occupancySensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.occupancySensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.occupancySensor.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.occupancySensor.receivingEEPId.option.A5_07_01 = A5-07-01 battery voltage (optional)
|
||||||
|
thing-type.config.enocean.occupancySensor.receivingEEPId.option.A5_07_02 = A5-07-02 battery voltage
|
||||||
|
thing-type.config.enocean.occupancySensor.receivingEEPId.option.A5_07_03 = A5-07-03 battery voltage, lux range [0;1000]
|
||||||
|
thing-type.config.enocean.occupancySensor.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
thing-type.config.enocean.pushButton.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.pushButton.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.pushButton.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.pushButton.receivingEEPId.description = EEP which is used by push button
|
||||||
|
thing-type.config.enocean.pushButton.receivingEEPId.option.F6_01_01 = F6-01-01
|
||||||
|
thing-type.config.enocean.pushButton.receivingEEPId.option.D2_03_0A = D2-03-0A
|
||||||
|
thing-type.config.enocean.rockerSwitch.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.rockerSwitch.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.rockerSwitch.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.rockerSwitch.receivingEEPId.description = EEP which is used by rocker switch
|
||||||
|
thing-type.config.enocean.rockerSwitch.receivingEEPId.option.F6_02_01 = F6-02-01 (upper rocker => DIR1)
|
||||||
|
thing-type.config.enocean.rockerSwitch.receivingEEPId.option.F6_02_02 = F6-02-02 (upper rocker => DIR2)
|
||||||
|
thing-type.config.enocean.rollershutter.broadcastMessages.label = Send Broadcast Messages
|
||||||
|
thing-type.config.enocean.rollershutter.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.rollershutter.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.rollershutter.pollingInterval.label = Polling Interval
|
||||||
|
thing-type.config.enocean.rollershutter.pollingInterval.description = Time in seconds after a refresh is triggered, 0 to disable
|
||||||
|
thing-type.config.enocean.rollershutter.receivingEEPId.label = EEP for Receiving States
|
||||||
|
thing-type.config.enocean.rollershutter.receivingEEPId.option.A5_3F_7F_EltakoFSB = Eltako FSB14/61/71
|
||||||
|
thing-type.config.enocean.rollershutter.receivingEEPId.option.A5_3F_7F_EltakoFRM = Eltako FRM60
|
||||||
|
thing-type.config.enocean.rollershutter.receivingEEPId.option.D2_05_00 = D2-05-00 Rollershutter
|
||||||
|
thing-type.config.enocean.rollershutter.receivingEEPId.option.D2_05_00_NODON = NODON SIN-2-RS-01 (EEP: D2-05-00)
|
||||||
|
thing-type.config.enocean.rollershutter.receivingEEPId.option.A5_11_03 = A5-11-03 Rollershutter status
|
||||||
|
thing-type.config.enocean.rollershutter.receivingEEPId.option.F6_00_00 = PTM200 Rollershutter status
|
||||||
|
thing-type.config.enocean.rollershutter.senderIdOffset.label = Sender Id
|
||||||
|
thing-type.config.enocean.rollershutter.senderIdOffset.description = Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
|
||||||
|
thing-type.config.enocean.rollershutter.sendingEEPId.label = EEP for Sending Commands
|
||||||
|
thing-type.config.enocean.rollershutter.sendingEEPId.option.A5_3F_7F_EltakoFSB = Eltako FSB14/61/71
|
||||||
|
thing-type.config.enocean.rollershutter.sendingEEPId.option.A5_3F_7F_EltakoFRM = Eltako FRM60
|
||||||
|
thing-type.config.enocean.rollershutter.sendingEEPId.option.D2_05_00 = D2-05-00 Rollershutter
|
||||||
|
thing-type.config.enocean.rollershutter.sendingEEPId.option.D2_05_00_NODON = NODON SIN-2-RS-01 (EEP: D2-05-00)
|
||||||
|
thing-type.config.enocean.rollershutter.sendingEEPId.option.A5_38_08_07 = Gateway command - blinds (A5_38_08 sub command 0x07)
|
||||||
|
thing-type.config.enocean.rollershutter.suppressRepeating.label = Suppress Repeating of Messages
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.description = EEP which is used by panel
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_01 = A5-10-01 temperature sensor, set point, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_02 = A5-10-02 temperature sensor, set point, fan speed and day/night control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_03 = A5-10-03 temperature sensor, set point control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_04 = A5-10-04 temperature sensor, set point and fan speed control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_05 = A5-10-05 temperature sensor, set point and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_06 = A5-10-06 temperature sensor, set point and day/night control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_07 = A5-10-07 temperature sensor, fan speed control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_08 = A5-10-08 temperature sensor, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_09 = A5-10-09 temperature sensor, fan speed and day/night control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_0A = A5-10-0A temperature sensor, set point and single input contact
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_0B = A5-10-0B temperature sensor, single input contact
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_0C = A5-10-0C temperature sensor, occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_0D = A5-10-0D temperature sensor, day/night control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_10 = A5-10-10 temperature and humidity sensor, set point and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_11 = A5-10-11 temperature and humidity sensor, set point and day/night control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_12 = A5-10-12 temperature and humidity sensor, set point control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_13 = A5-10-13 temperature and humidity sensor, occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_14 = A5-10-14 temperature and humidity sensor, day/night control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_15 = A5-10-15 10 bit temperature sensor, 6 bit set point control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_16 = A5-10-16 10 bit temperature sensor, 6 bit set point, occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_17 = A5-10-17 10 bit temperature sensor, occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_18 = A5-10-18 illumination and temperature sensor, set point, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_19 = A5-10-19 temperature and humidity sensor, set point, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_1A = A5-10-1A supply voltage, temperature sensor, set point, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_1B = A5-10-1B supply voltage, illumination and temperature sensor, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_1C = A5-10-1C illumination and temperature sensor, illumination set point, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_1D = A5-10-1D temperature and humidity sensor, humidity set point, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_1E = A5-10-1E supply voltage, illumination and temperature sensor, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_1F = A5-10-1F temperature sensor, set point, fan speed, occupancy and unoccupancy control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_20 = A5-10-20 temperature sensor, set point with special heating states
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_21 = A5-10-21 temperature and humidity sensor, set point with special heating states
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_22 = A5-10-22 temperature and humidity sensor, set point and fan speed control
|
||||||
|
thing-type.config.enocean.roomOperatingPanel.receivingEEPId.option.A5_10_23 = A5-10-23 temperature and humidity sensor, set point, fan speed and occupancy control
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.receivingEEPId.option.A5_04_01 = A5-04-01 temperature sensor range [0;40]
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.receivingEEPId.option.A5_04_02 = A5-04-02 temperature sensor range [-20;60]
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.receivingEEPId.option.A5_04_02_ELTAKO = A5-04-02 temperature sensor range [-20;60] with battery indicator
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.receivingEEPId.option.A5_04_03 = A5-04-03 temperature sensor range (10 bit) [-20;60]
|
||||||
|
thing-type.config.enocean.temperatureHumiditySensor.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
thing-type.config.enocean.temperatureSensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.temperatureSensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.description = EEP which is used by panel
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_01 = A5-02-01 temperature sensor range [-40;0]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_02 = A5-02-02 temperature sensor range [-30;10]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_03 = A5-02-03 temperature sensor range [-20;20]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_04 = A5-02-04 temperature sensor range [-10;30]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_05 = A5-02-05 temperature sensor range [0;40]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_06 = A5-02-06 temperature sensor range [10;50]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_07 = A5-02-07 temperature sensor range [20;60]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_08 = A5-02-08 temperature sensor range [30;70]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_09 = A5-02-09 temperature sensor range [40;80]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_0A = A5-02-0A temperature sensor range [50;90]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_0B = A5-02-0B temperature sensor range [60;100]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_10 = A5-02-10 temperature sensor range [-60;20]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_11 = A5-02-11 temperature sensor range [-50;30]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_12 = A5-02-12 temperature sensor range [-40;40]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_13 = A5-02-13 temperature sensor range [-30;50]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_14 = A5-02-14 temperature sensor range [-20;60]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_15 = A5-02-15 temperature sensor range [-10;70]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_16 = A5-02-16 temperature sensor range [0;80]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_17 = A5-02-17 temperature sensor range [1;90]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_18 = A5-02-18 temperature sensor range [20;100]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_19 = A5-02-19 temperature sensor range [30;110]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_1A = A5-02-1A temperature sensor range [40;120]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_1B = A5-02-1B temperature sensor range [50;130]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_20 = A5-02-20 temperature sensor range [-10;41.2]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingEEPId.option.A5_02_30 = A5-02-30 temperature sensor range [-40;62.3]
|
||||||
|
thing-type.config.enocean.temperatureSensor.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
thing-type.config.enocean.thermostat.broadcastMessages.label = Send Broadcast Messages
|
||||||
|
thing-type.config.enocean.thermostat.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.thermostat.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.thermostat.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.thermostat.receivingEEPId.description = EEP which is used by sensor
|
||||||
|
thing-type.config.enocean.thermostat.receivingEEPId.option.A5_20_04 = Heating radiator valve actuating drive with feed and room temperature measurement, local set point control and display
|
||||||
|
thing-type.config.enocean.thermostat.senderIdOffset.label = Sender Id
|
||||||
|
thing-type.config.enocean.thermostat.senderIdOffset.description = Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
|
||||||
|
thing-type.config.enocean.thermostat.sendingEEPId.label = EEP for Sending Commands
|
||||||
|
thing-type.config.enocean.thermostat.sendingEEPId.option.A5_20_04 = Heating radiator valve actuating drive with feed and room temperature measurement, local set point control and display
|
||||||
|
thing-type.config.enocean.thermostat.suppressRepeating.label = Suppress Repeating of Messages
|
||||||
|
thing-type.config.enocean.windowSashHandleSensor.enoceanId.label = EnOceanId
|
||||||
|
thing-type.config.enocean.windowSashHandleSensor.enoceanId.description = EnOceanId of device this thing belongs to
|
||||||
|
thing-type.config.enocean.windowSashHandleSensor.receivingEEPId.label = EEP
|
||||||
|
thing-type.config.enocean.windowSashHandleSensor.receivingEEPId.description = EEP which is used by device
|
||||||
|
thing-type.config.enocean.windowSashHandleSensor.receivingEEPId.option.D2_06_50_Siegenia = D2_06_50 (Siegenia Senso Secure)
|
||||||
|
thing-type.config.enocean.windowSashHandleSensor.receivingSIGEEP.label = Receive Battery Status Signal Messages
|
||||||
|
|
||||||
|
# channel types
|
||||||
|
|
||||||
|
channel-type.enocean.airQualityValue1.label = Air Quality Value
|
||||||
|
channel-type.enocean.airQualityValue1.description = Air quality value of first sensor in percentages
|
||||||
|
channel-type.enocean.airQualityValue2.label = Air Quality Value
|
||||||
|
channel-type.enocean.airQualityValue2.description = Air quality value of second sensor in percentages
|
||||||
|
channel-type.enocean.angle.label = Angle
|
||||||
|
channel-type.enocean.angle.description = Blind Angle
|
||||||
|
channel-type.enocean.autoOFF.label = Auto Off
|
||||||
|
channel-type.enocean.autoOFF.description = Automatically switch to off
|
||||||
|
channel-type.enocean.batteryVoltage.label = Battery Voltage
|
||||||
|
channel-type.enocean.batteryVoltage.description = Voltage of the battery
|
||||||
|
channel-type.enocean.buttonLock.label = Button Lock
|
||||||
|
channel-type.enocean.buttonLock.description = Enables or disables buttons on the device.
|
||||||
|
channel-type.enocean.co.label = CO
|
||||||
|
channel-type.enocean.co.description = CO level in ppm
|
||||||
|
channel-type.enocean.co2.label = CO2
|
||||||
|
channel-type.enocean.co2.description = CO2 level in ppm
|
||||||
|
channel-type.enocean.contact.label = Contact
|
||||||
|
channel-type.enocean.contact.description = Contact channel
|
||||||
|
channel-type.enocean.coolingProtectionMode.label = Cooling Protection Mode
|
||||||
|
channel-type.enocean.coolingProtectionMode.description = Indicates if device is running in cooling protection mode
|
||||||
|
channel-type.enocean.counter.label = Counter
|
||||||
|
channel-type.enocean.counter.description = Counter
|
||||||
|
channel-type.enocean.cumulativeValue.label = Cumulative Value
|
||||||
|
channel-type.enocean.currentFlow.label = Current Flow
|
||||||
|
channel-type.enocean.currentNumber.label = Current
|
||||||
|
channel-type.enocean.currentNumber.description = Current
|
||||||
|
channel-type.enocean.defrostMode.label = Defrost Mode
|
||||||
|
channel-type.enocean.defrostMode.description = Indicates if defrosting of heat exchanger is active or not
|
||||||
|
channel-type.enocean.delayRadioOFF.label = Delay Radio Off
|
||||||
|
channel-type.enocean.delayRadioOFF.description = Delay switch off by radio for given seconds
|
||||||
|
channel-type.enocean.dimmer.label = Dimmer
|
||||||
|
channel-type.enocean.dimmer.description = Dimmer
|
||||||
|
channel-type.enocean.displayOrientation.label = Display Orientation
|
||||||
|
channel-type.enocean.displayOrientation.description = Orientation of the display.
|
||||||
|
channel-type.enocean.displayOrientation.state.option.0 = 0
|
||||||
|
channel-type.enocean.displayOrientation.state.option.90 = 90
|
||||||
|
channel-type.enocean.displayOrientation.state.option.180 = 180
|
||||||
|
channel-type.enocean.displayOrientation.state.option.270 = 270
|
||||||
|
channel-type.enocean.drainHeaterStatus.label = Drain Heater Status
|
||||||
|
channel-type.enocean.drainHeaterStatus.description = Indicates if drain heater is active or not
|
||||||
|
channel-type.enocean.ecoMode.label = Eco Mode
|
||||||
|
channel-type.enocean.ecoMode.description = Activates eco mode (disables certain messages)
|
||||||
|
channel-type.enocean.energyStorage.label = Energy Storage
|
||||||
|
channel-type.enocean.energyStorage.description = ?
|
||||||
|
channel-type.enocean.exhaustAirFanAirFlowRate.label = Exhaust Air Fan Air Flow Rate
|
||||||
|
channel-type.enocean.exhaustAirFanAirFlowRate.description = Current exhaust air fan air flow rate
|
||||||
|
channel-type.enocean.exhaustAirFlapStatus.label = Exhaust Air Flap Position
|
||||||
|
channel-type.enocean.exhaustAirFlapStatus.description = Indicates if exhaust air flap is open or closed
|
||||||
|
channel-type.enocean.exhaustAirTemperature.label = Exhaust Air Temperature
|
||||||
|
channel-type.enocean.exhaustAirTemperature.description = Current exhaust air temperature in degree Celsius
|
||||||
|
channel-type.enocean.exhaustFanSpeed.label = Exhaust Fan Speed
|
||||||
|
channel-type.enocean.exhaustFanSpeed.description = Exhaust fan speed in revolutions per minutes
|
||||||
|
channel-type.enocean.externalInterfaceMode.label = External Interface Mode
|
||||||
|
channel-type.enocean.externalInterfaceMode.description = This option is to selected the type of the wired switch
|
||||||
|
channel-type.enocean.externalInterfaceMode.state.option.EXTERNALSWITCH = Switch
|
||||||
|
channel-type.enocean.externalInterfaceMode.state.option.EXTERNALBUTTON = Push button
|
||||||
|
channel-type.enocean.externalInterfaceMode.state.option.EXTERNALAUTO = Auto detect
|
||||||
|
channel-type.enocean.failureCode.label = Failure Code
|
||||||
|
channel-type.enocean.failureCode.description = Failure code
|
||||||
|
channel-type.enocean.fanSpeedStage.label = Fan Speed
|
||||||
|
channel-type.enocean.fanSpeedStage.state.option.-1 = Auto
|
||||||
|
channel-type.enocean.fanSpeedStage.state.option.0 = Stage 0
|
||||||
|
channel-type.enocean.fanSpeedStage.state.option.1 = Stage 1
|
||||||
|
channel-type.enocean.fanSpeedStage.state.option.2 = Stage 2
|
||||||
|
channel-type.enocean.fanSpeedStage.state.option.3 = Stage 3
|
||||||
|
channel-type.enocean.feedTemperature.label = Feed Temperature
|
||||||
|
channel-type.enocean.feedTemperature.description = Water temperature in the radiator input
|
||||||
|
channel-type.enocean.fireplaceSafetyMode.label = Fireplace Safety Mode
|
||||||
|
channel-type.enocean.fireplaceSafetyMode.description = Indicates if device is running in fireplace safety mode
|
||||||
|
channel-type.enocean.generalSwitch.label = Switch
|
||||||
|
channel-type.enocean.generalSwitch.description = The switch channel allows to switch something on and off.
|
||||||
|
channel-type.enocean.generalSwitchA.label = Switch Channel A
|
||||||
|
channel-type.enocean.generalSwitchA.description = The switch channel allows to switch channel A on and off.
|
||||||
|
channel-type.enocean.generalSwitchB.label = Switch Channel B
|
||||||
|
channel-type.enocean.generalSwitchB.description = The switch channel allows to switch channel B on and off.
|
||||||
|
channel-type.enocean.genericColor.label = Color
|
||||||
|
channel-type.enocean.genericDimmer.label = Dimmer
|
||||||
|
channel-type.enocean.genericDimmer.description = Dimmer
|
||||||
|
channel-type.enocean.genericNumber.label = Number
|
||||||
|
channel-type.enocean.genericNumber.description = Number
|
||||||
|
channel-type.enocean.genericRollershutter.label = Rollershutter
|
||||||
|
channel-type.enocean.genericRollershutter.description = Rollershutter
|
||||||
|
channel-type.enocean.genericString.label = String
|
||||||
|
channel-type.enocean.genericSwitch.label = Switch
|
||||||
|
channel-type.enocean.genericSwitch.description = The switch channel allows to switch something on and off.
|
||||||
|
channel-type.enocean.genericTeachInCMD.label = Teach In
|
||||||
|
channel-type.enocean.genericTeachInCMD.description = The teach in channel allows to send a teach in msg.
|
||||||
|
channel-type.enocean.heatExchangerBypassStatus.label = Heat Exchanger Bypass Status
|
||||||
|
channel-type.enocean.heatExchangerBypassStatus.description = Indicates if heat exchanger bypass is open (heat recovery inactive) or closed (heat recovery active)
|
||||||
|
channel-type.enocean.humidity.label = Humidity
|
||||||
|
channel-type.enocean.humidity.description = Relative humidity level in percentages
|
||||||
|
channel-type.enocean.hygroComfortIndex.label = Hygrothermal Comfort Index
|
||||||
|
channel-type.enocean.hygroComfortIndex.description = Comfort index based on temperature and humidity
|
||||||
|
channel-type.enocean.hygroComfortIndex.state.option.GOOD = Good
|
||||||
|
channel-type.enocean.hygroComfortIndex.state.option.MEDIUM = Medium
|
||||||
|
channel-type.enocean.hygroComfortIndex.state.option.BAD = Bad
|
||||||
|
channel-type.enocean.hygroComfortIndex.state.option.ERROR = Error
|
||||||
|
channel-type.enocean.illumination.label = Lux
|
||||||
|
channel-type.enocean.illumination.description = Illumination in lux
|
||||||
|
channel-type.enocean.illuminationEast.label = Sun East
|
||||||
|
channel-type.enocean.illuminationEast.description = Illumination in lux
|
||||||
|
channel-type.enocean.illuminationSouthNorth.label = Sun South/North
|
||||||
|
channel-type.enocean.illuminationSouthNorth.description = Illumination in lux
|
||||||
|
channel-type.enocean.illuminationWest.label = Sun West
|
||||||
|
channel-type.enocean.illuminationWest.description = Illumination in lux
|
||||||
|
channel-type.enocean.indoorAirAnalysis.label = Indoor Air Analysis
|
||||||
|
channel-type.enocean.indoorAirAnalysis.description = Indoor air quality analysis based on temperature and humidity
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.OPTIMAL = Optimal air range
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.DRY = Dry air range
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.HIGH_HUMIDITY = High humidity range
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.HIGH_TEMPHUMI = High humidity and temperature range
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.OUT_OF_RANGE = Humidity or temperature out of range
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.RESERVED1 = Reserved1
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.RESERVED2 = Reserved2
|
||||||
|
channel-type.enocean.indoorAirAnalysis.state.option.ERROR = Error
|
||||||
|
channel-type.enocean.indoorAirTemperature.label = Indoor Temperature
|
||||||
|
channel-type.enocean.indoorAirTemperature.description = Current indoor air temperature in degree Celsius
|
||||||
|
channel-type.enocean.instantpower.label = Instant Power
|
||||||
|
channel-type.enocean.instantpower.description = Instant power consumption in Watts
|
||||||
|
channel-type.enocean.lastReceived.label = LastReceived
|
||||||
|
channel-type.enocean.lastReceived.description = Date and time the last telegram was received
|
||||||
|
channel-type.enocean.maintenanceStatus.label = Maintenance Neccessary
|
||||||
|
channel-type.enocean.maintenanceStatus.description = Sensor maintenance status.
|
||||||
|
channel-type.enocean.measurementControl.label = Measurement Control
|
||||||
|
channel-type.enocean.measurementControl.description = Enables or disables temperature measurement on the device.
|
||||||
|
channel-type.enocean.occupancy.label = Occupancy
|
||||||
|
channel-type.enocean.occupancy.description = Occupancy button pressed or released.
|
||||||
|
channel-type.enocean.outdoorAirHeaterStatus.label = Outdoor Air Heater Status
|
||||||
|
channel-type.enocean.outdoorAirHeaterStatus.description = Indicates if outdoor air heater is active or not
|
||||||
|
channel-type.enocean.outdoorAirTemperature.label = Outdoor Temperature
|
||||||
|
channel-type.enocean.outdoorAirTemperature.description = Current outdoor air temperature in degree Celsius
|
||||||
|
channel-type.enocean.protectionPlusEvent.label = Protection Plus Event
|
||||||
|
channel-type.enocean.protectionPlusEvent.description = Triggered when a Protection Plus capable device detects a break-in attempt.
|
||||||
|
channel-type.enocean.rainStatus.label = Rain
|
||||||
|
channel-type.enocean.rainStatus.description = Rain indicator
|
||||||
|
channel-type.enocean.remainingPLT.label = Remaining Product Life Time
|
||||||
|
channel-type.enocean.remainingPLT.description = Countdown time until product end of life.
|
||||||
|
channel-type.enocean.repeatCount.label = RepeatCount
|
||||||
|
channel-type.enocean.repeatCount.description = Number of repeaters involved in the transmission of the telegram
|
||||||
|
channel-type.enocean.repeaterMode.label = Repeater Mode
|
||||||
|
channel-type.enocean.repeaterMode.description = Repeater mode of EnOcean gateway/device
|
||||||
|
channel-type.enocean.repeaterMode.state.option.OFF = Repeater off
|
||||||
|
channel-type.enocean.repeaterMode.state.option.LEVEL1 = Level-1
|
||||||
|
channel-type.enocean.repeaterMode.state.option.LEVEL2 = Level-2
|
||||||
|
channel-type.enocean.rockerSwitchAction.label = Rocker Switch Action
|
||||||
|
channel-type.enocean.rockerSwitchAction.description = Is triggered when a certain combination of rockers is pressed or released.
|
||||||
|
channel-type.enocean.rockerswitchListenerRollershutter.label = Rocker Switch Listener (Rollershutter)
|
||||||
|
channel-type.enocean.rockerswitchListenerSwitch.label = Rocker Switch Listener (Switch)
|
||||||
|
channel-type.enocean.rollershutter.label = Rollershutter
|
||||||
|
channel-type.enocean.rollershutter.description = Rollershutter
|
||||||
|
channel-type.enocean.roomTemperatureControlStatus.label = Room Temperature Control Status
|
||||||
|
channel-type.enocean.roomTemperatureControlStatus.description = Indicates if room temperature control is active or not
|
||||||
|
channel-type.enocean.rssi.label = RSSI
|
||||||
|
channel-type.enocean.rssi.description = Received Signal Strength Indication
|
||||||
|
channel-type.enocean.saHumidityRange.label = Out of Humidity Range
|
||||||
|
channel-type.enocean.saHumidityRange.description = Sensor analysis status: humidity out of range
|
||||||
|
channel-type.enocean.saTemperatureRange.label = Out of Temperature Range
|
||||||
|
channel-type.enocean.saTemperatureRange.description = Sensor analysis status: temperature out of range
|
||||||
|
channel-type.enocean.sensorFault.label = Sensor Fault Mode
|
||||||
|
channel-type.enocean.sensorFault.description = Sensor activated fault mode.
|
||||||
|
channel-type.enocean.serviceCommand.label = Service Command
|
||||||
|
channel-type.enocean.serviceCommand.description = Command to be sent to actuator
|
||||||
|
channel-type.enocean.serviceCommand.state.option.0 = no change
|
||||||
|
channel-type.enocean.serviceCommand.state.option.1 = open valve
|
||||||
|
channel-type.enocean.serviceCommand.state.option.2 = run initialisation
|
||||||
|
channel-type.enocean.serviceCommand.state.option.3 = close valve
|
||||||
|
channel-type.enocean.setBaseId.label = Set Base Id
|
||||||
|
channel-type.enocean.setBaseId.description = Set base id of EnOcean gateway. Use this with care! Must be between 0xFF800000 and 0xFFFFFF80
|
||||||
|
channel-type.enocean.setPoint.label = Set Point
|
||||||
|
channel-type.enocean.setPoint.description = linear set point
|
||||||
|
channel-type.enocean.smokeDetection.label = Smoke Detected
|
||||||
|
channel-type.enocean.smokeDetection.description = Smoke detection sensor state.
|
||||||
|
channel-type.enocean.statusRequestEvent.label = Status Request Event
|
||||||
|
channel-type.enocean.statusRequestEvent.description = Is triggered when the actuator wakes up from sleep and asks for the current status.
|
||||||
|
channel-type.enocean.supplyAirFanAirFlowRate.label = Supply Air Fan Air Flow Rate
|
||||||
|
channel-type.enocean.supplyAirFanAirFlowRate.description = Current supply air fan air flow rate
|
||||||
|
channel-type.enocean.supplyAirFlapStatus.label = Supply Air Flap Position
|
||||||
|
channel-type.enocean.supplyAirFlapStatus.description = Indicates if supply air flap is open or closed
|
||||||
|
channel-type.enocean.supplyAirHeaterStatus.label = Supply Air Heater Status
|
||||||
|
channel-type.enocean.supplyAirHeaterStatus.description = Indicates if supply air heater is active or not
|
||||||
|
channel-type.enocean.supplyAirTemperature.label = Supply Air Temperature
|
||||||
|
channel-type.enocean.supplyAirTemperature.description = Current supply air temperature in degree Celsius
|
||||||
|
channel-type.enocean.supplyFanSpeed.label = Supply Fan Speed
|
||||||
|
channel-type.enocean.supplyFanSpeed.description = Supply fan speed in revolutions per minutes
|
||||||
|
channel-type.enocean.teachInCMD.label = Teach In
|
||||||
|
channel-type.enocean.teachInCMD.description = The teach in channel allows to send a teach in msg.
|
||||||
|
channel-type.enocean.temperature.label = Temperature
|
||||||
|
channel-type.enocean.temperature.description = Current temperature in degree Celsius
|
||||||
|
channel-type.enocean.temperatureSetPoint.label = Set Point
|
||||||
|
channel-type.enocean.temperatureSetPoint.description = Desired temperature
|
||||||
|
channel-type.enocean.timeSinceLastMaintenance.label = Time Since Last Maintenance
|
||||||
|
channel-type.enocean.timeSinceLastMaintenance.description = Time since last maintenance was done.
|
||||||
|
channel-type.enocean.timerOperationMode.label = Timer Operation Mode
|
||||||
|
channel-type.enocean.timerOperationMode.description = Indicates if timer operation mode is active or not
|
||||||
|
channel-type.enocean.totalVolatileOrganicCompounds.label = TVOC
|
||||||
|
channel-type.enocean.totalVolatileOrganicCompounds.description = Total volatile organic compounds level in ppb/
|
||||||
|
channel-type.enocean.totalusage.label = Total Usage
|
||||||
|
channel-type.enocean.totalusage.description = Used energy in Kilowatt hours
|
||||||
|
channel-type.enocean.twoStateSwitch.label = Switching State
|
||||||
|
channel-type.enocean.twoStateSwitch.description = Switch state according to specific on/off positions (otherwise toggle)
|
||||||
|
channel-type.enocean.vacationModeToggleEvent.label = Vacation Mode Toggle Event
|
||||||
|
channel-type.enocean.vacationModeToggleEvent.description = Triggered when the vacation mode has been toggled on the device.
|
||||||
|
channel-type.enocean.valvePosition.label = Valve Position
|
||||||
|
channel-type.enocean.valvePosition.description = Indicates the actual percent position of the valve.
|
||||||
|
channel-type.enocean.ventilationOperationMode.label = Direct Operation Mode Control
|
||||||
|
channel-type.enocean.ventilationOperationMode.description = Sets the ventilation mode/level.
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.0 = Off
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.1 = Level 1
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.2 = Level 2
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.3 = Level 3
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.4 = Level 4
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.5 = Reserved
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.6 = Reserved
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.7 = Reserved
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.8 = Reserved
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.9 = Reserved
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.10 = Reserved
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.11 = Automatic
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.12 = Automatic on demand
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.13 = Supply air only
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.14 = Exhaust air only
|
||||||
|
channel-type.enocean.ventilationOperationMode.state.option.15 = Reserved
|
||||||
|
channel-type.enocean.vibration.label = Vibration Alarm
|
||||||
|
channel-type.enocean.vibration.description = Vibration alarm state.
|
||||||
|
channel-type.enocean.virtualRockerswitchB.label = Rocker Switch - Channel B
|
||||||
|
channel-type.enocean.virtualRockerswitchB.description = The virtual rocker switch channel allows to send rocker msg with channel B.
|
||||||
|
channel-type.enocean.virtualRollershutterA.label = Rollershutter
|
||||||
|
channel-type.enocean.virtualRollershutterA.description = This channels allows to control a rollershutter through rocker msg.
|
||||||
|
channel-type.enocean.virtualSwitchA.label = Rocker Switch
|
||||||
|
channel-type.enocean.virtualSwitchA.description = The virtual rocker switch channel allows to send rocker msg.
|
||||||
|
channel-type.enocean.volatileOrganicCompounds.label = VOC
|
||||||
|
channel-type.enocean.volatileOrganicCompounds.description = Volatile organic compounds level in ppm/
|
||||||
|
channel-type.enocean.volatileOrganicCompoundsId.label = VOC ID
|
||||||
|
channel-type.enocean.volatileOrganicCompoundsId.description = Volatile organic compounds identification
|
||||||
|
channel-type.enocean.wakeUpCycle.label = Wakeup Cycle
|
||||||
|
channel-type.enocean.wakeUpCycle.description = Defines the cyclic wake-up time. The time corresponding to the number has to be looked up.
|
||||||
|
channel-type.enocean.weeklyTimerProgramStatus.label = Weekly Timer Program Status
|
||||||
|
channel-type.enocean.weeklyTimerProgramStatus.description = Indicates if device is running according to configured program or not
|
||||||
|
channel-type.enocean.windowBreachEvent.label = Window Breach Event
|
||||||
|
channel-type.enocean.windowBreachEvent.description = Is triggered 10 times in 5 seconds when the sensor detects a break-in attempt.
|
||||||
|
channel-type.enocean.windowCalibrationState.label = Window Calibration State
|
||||||
|
channel-type.enocean.windowCalibrationState.description = Describes the window calibration state
|
||||||
|
channel-type.enocean.windowCalibrationState.state.option.OK = Ok
|
||||||
|
channel-type.enocean.windowCalibrationState.state.option.ERROR = Error
|
||||||
|
channel-type.enocean.windowCalibrationState.state.option.INVALID = Invalid
|
||||||
|
channel-type.enocean.windowCalibrationStep.label = Window Calibration Step
|
||||||
|
channel-type.enocean.windowCalibrationStep.description = Calibration step that should be performed next
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.NONE = None
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ CLOSED\ HANDLE\ CLOSED = Sash closed handle closed
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ CLOSED\ HANDLE\ OPEN = Sash closed handle open
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ CLOSED\ HANDLE\ TILTED = Sash closed handle tilted
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ OPEN\ HANDLE\ CLOSED = Sash open handle closed
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ OPEN\ HANDLE\ OPEN = Sash open handle open
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ OPEN\ HANDLE\ TILTED = Sash open handle tilted
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ TILTED\ HANDLE\ CLOSED = Sash tilted handle closed
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ TILTED\ HANDLE\ OPEN = Sash tilted handle open
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.SASH\ TILTED\ HANDLE\ TILTED = Sash tilted handle tilted
|
||||||
|
channel-type.enocean.windowCalibrationStep.state.option.FRAME\ MAGNET\ VALIDATION = Frame magnet validation
|
||||||
|
channel-type.enocean.windowHandleState.label = Window Handle State
|
||||||
|
channel-type.enocean.windowHandleState.description = Describes the window handle state
|
||||||
|
channel-type.enocean.windowHandleState.state.option.OPEN = Open
|
||||||
|
channel-type.enocean.windowHandleState.state.option.TILTED = Tilted
|
||||||
|
channel-type.enocean.windowHandleState.state.option.CLOSED = Closed
|
||||||
|
channel-type.enocean.windowHandleState.state.option.UP = Up
|
||||||
|
channel-type.enocean.windowHandleState.state.option.DOWN = Down
|
||||||
|
channel-type.enocean.windowHandleState.state.option.LEFT = Left
|
||||||
|
channel-type.enocean.windowHandleState.state.option.RIGHT = Right
|
||||||
|
channel-type.enocean.windowSashState.label = Window Sash State
|
||||||
|
channel-type.enocean.windowSashState.description = Describes the window sash state
|
||||||
|
channel-type.enocean.windowSashState.state.option.OPEN = Open
|
||||||
|
channel-type.enocean.windowSashState.state.option.TILTED = Tilted
|
||||||
|
channel-type.enocean.windowSashState.state.option.NOT\ TILTED = Not Tilted
|
||||||
|
channel-type.enocean.windowSashState.state.option.CLOSED = Closed
|
||||||
|
|
||||||
|
# channel types config
|
||||||
|
|
||||||
|
channel-type.config.enocean.contact.inverted.label = Invert Open/Closed
|
||||||
|
channel-type.config.enocean.contact.inverted.description = True for Eltako FPE-2, false otherwise.
|
||||||
|
channel-type.config.enocean.counter.tariff.label = Tariff info
|
||||||
|
channel-type.config.enocean.counter.tariff.description = Number of tariff this channel listens to
|
||||||
|
channel-type.config.enocean.cumulativeValue.tariff.label = Tariff info
|
||||||
|
channel-type.config.enocean.cumulativeValue.tariff.description = Number of tariff this channel listens to
|
||||||
|
channel-type.config.enocean.currentFlow.tariff.label = Tariff info
|
||||||
|
channel-type.config.enocean.currentFlow.tariff.description = Number of tariff this channel listens to
|
||||||
|
channel-type.config.enocean.currentNumber.tariff.label = Tariff info
|
||||||
|
channel-type.config.enocean.currentNumber.tariff.description = Number of tariff this channel listens to
|
||||||
|
channel-type.config.enocean.dimmer.eltakoDimmer.label = Eltako Dimmer
|
||||||
|
channel-type.config.enocean.dimmer.eltakoDimmer.description = True for Eltako dimmer, false otherwise. Defaults to true for compatibility purpose.
|
||||||
|
channel-type.config.enocean.dimmer.rampingTime.label = Ramping Time
|
||||||
|
channel-type.config.enocean.dimmer.rampingTime.description = A5-38-08: Ramping Time (in seconds), 0 = no ramping, 1..255 = seconds to 100%; D2-01-01: 0 = switch, 1-3 = timer 1-3, 4 = stop
|
||||||
|
channel-type.config.enocean.dimmer.storeValue.label = Store Value
|
||||||
|
channel-type.config.enocean.dimmer.storeValue.description = Store final value
|
||||||
|
channel-type.config.enocean.genericChannel.transformationFunction.label = Transformation Function
|
||||||
|
channel-type.config.enocean.genericChannel.transformationFunction.description = The transformation function, e.g. for transformation type map => filename of mapping file
|
||||||
|
channel-type.config.enocean.genericChannel.transformationType.label = Transformation Type
|
||||||
|
channel-type.config.enocean.genericChannel.transformationType.description = The type of the transformation, e.g. "MAP"
|
||||||
|
channel-type.config.enocean.instantpower.tariff.label = Tariff info
|
||||||
|
channel-type.config.enocean.instantpower.tariff.description = Number of tariff this channel listens to
|
||||||
|
channel-type.config.enocean.instantpower.validateValue.label = Validate Value
|
||||||
|
channel-type.config.enocean.instantpower.validateValue.description = Filter out increases more than 10.0 kWh and decreases less than 1.0 kWh
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.channel.label = Channel
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.channel.description = Channel of rocker switch to listen to
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.channel.option.channelA = Channel A
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.channel.option.channelB = Channel B
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.enoceanId.label = EnOceanId
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.enoceanId.description = EnOcean Id to listen to
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.handleSecondAction.label = Handle Second Action
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.handleSecondAction.description = React if selected channel is pressed as second action too
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.switchMode.label = Switch Mode
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.switchMode.option.rockerSwitch = Rocker switch
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.switchMode.option.toggleButtonDir1 = Toggle button (upper button)
|
||||||
|
channel-type.config.enocean.listeningRockerChannel.switchMode.option.toggleButtonDir2 = Toggle button (lower button)
|
||||||
|
channel-type.config.enocean.rollershutter.shutTime.label = Shut Time
|
||||||
|
channel-type.config.enocean.rollershutter.shutTime.description = Time (in seconds) to completely close the rollershutter
|
||||||
|
channel-type.config.enocean.teachInCMD.manufacturerId.label = Manufacturer Id
|
||||||
|
channel-type.config.enocean.teachInCMD.manufacturerId.description = Id is used for 4BS teach in with EEP
|
||||||
|
channel-type.config.enocean.teachInCMD.teachInMSG.label = Teach in Message
|
||||||
|
channel-type.config.enocean.teachInCMD.teachInMSG.description = Use this message if teach in type and/or manufacturer id are unknown
|
||||||
|
channel-type.config.enocean.totalusage.tariff.label = Tariff info
|
||||||
|
channel-type.config.enocean.totalusage.tariff.description = Number of tariff this channel listens to
|
||||||
|
channel-type.config.enocean.totalusage.validateValue.label = Validate Value
|
||||||
|
channel-type.config.enocean.totalusage.validateValue.description = Filter out increases more than 10.0 kWh and decreases less than 1.0 kWh
|
||||||
|
channel-type.config.enocean.virtualRockerChannel.duration.label = Time Between Press and Release Message
|
||||||
|
channel-type.config.enocean.virtualRockerChannel.switchMode.label = Switch Mode
|
||||||
|
channel-type.config.enocean.virtualRockerChannel.switchMode.option.rockerSwitch = Rocker switch
|
||||||
|
channel-type.config.enocean.virtualRockerChannel.switchMode.option.toggleButtonDir1 = Toggle button (upper button)
|
||||||
|
channel-type.config.enocean.virtualRockerChannel.switchMode.option.toggleButtonDir2 = Toggle button (lower button)
|
||||||
|
channel-type.config.enocean.virtualRockerswitchB.switchMode.label = Switch Mode
|
||||||
|
channel-type.config.enocean.virtualRockerswitchB.switchMode.option.rockerSwitch = Rocker Switch
|
||||||
|
channel-type.config.enocean.virtualRockerswitchB.switchMode.option.toggleButtonDir1 = Toggle Button (upper button)
|
||||||
|
channel-type.config.enocean.virtualRockerswitchB.switchMode.option.toggleButtonDir2 = Toggle Button (lower button)
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<thing:thing-descriptions bindingId="enocean"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||||
|
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||||
|
|
||||||
|
<thing-type id="gasSensor">
|
||||||
|
<supported-bridge-type-refs>
|
||||||
|
<bridge-type-ref id="bridge"/>
|
||||||
|
</supported-bridge-type-refs>
|
||||||
|
|
||||||
|
<label>Gas Sensor</label>
|
||||||
|
<description>Sensor which sends gas measurement data (EEP: A5-09)</description>
|
||||||
|
|
||||||
|
<config-description>
|
||||||
|
<parameter name="enoceanId" type="text" required="true">
|
||||||
|
<label>EnOceanId</label>
|
||||||
|
<description>EnOceanId of device this thing belongs to</description>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="receivingEEPId" type="text" required="true">
|
||||||
|
<label>EEP</label>
|
||||||
|
<description>EEP which is used by sensor</description>
|
||||||
|
<options>
|
||||||
|
<option value="A5_09_02">A5-09-02 CO sensor (temperature sensor optional)</option>
|
||||||
|
<option value="A5_09_04">A5-09-04 CO2 sensor (temperature and humidity sensor optional)</option>
|
||||||
|
<option value="A5_09_05">A5-09-05 VOC Sensor</option>
|
||||||
|
<option value="A5_09_08">A5-09-08 Pure CO2 sensor</option>
|
||||||
|
<option value="A5_09_09">A5-09-09 Pure CO2 sensor with Power Failure Detection</option>
|
||||||
|
<option value="A5_09_0C">A5-09-0C VOC Sensor</option>
|
||||||
|
<option value="A5_09_0D">A5-09-0D VOC, humidity + temperature</option>
|
||||||
|
</options>
|
||||||
|
<limitToOptions>true</limitToOptions>
|
||||||
|
</parameter>
|
||||||
|
</config-description>
|
||||||
|
|
||||||
|
</thing-type>
|
||||||
|
|
||||||
|
</thing:thing-descriptions>
|
||||||
@ -103,6 +103,66 @@
|
|||||||
<state min="0" max="100" pattern="%.1f %%" readOnly="true"/>
|
<state min="0" max="100" pattern="%.1f %%" readOnly="true"/>
|
||||||
</channel-type>
|
</channel-type>
|
||||||
|
|
||||||
|
<channel-type id="co2">
|
||||||
|
<item-type>Number:Dimensionless</item-type>
|
||||||
|
<label>CO2</label>
|
||||||
|
<description>CO2 level in ppm</description>
|
||||||
|
<category>Carbondioxide</category>
|
||||||
|
<tags>
|
||||||
|
<tag>Measurement</tag>
|
||||||
|
<tag>CO2</tag>
|
||||||
|
</tags>
|
||||||
|
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||||
|
</channel-type>
|
||||||
|
|
||||||
|
<channel-type id="co">
|
||||||
|
<item-type>Number:Dimensionless</item-type>
|
||||||
|
<label>CO</label>
|
||||||
|
<description>CO level in ppm</description>
|
||||||
|
<category>Gas</category>
|
||||||
|
<tags>
|
||||||
|
<tag>Measurement</tag>
|
||||||
|
<tag>CO</tag>
|
||||||
|
</tags>
|
||||||
|
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||||
|
</channel-type>
|
||||||
|
|
||||||
|
<channel-type id="volatileOrganicCompounds">
|
||||||
|
<item-type>Number:Dimensionless</item-type>
|
||||||
|
<label>VOC</label>
|
||||||
|
<description>Volatile organic compounds level in ppm/</description>
|
||||||
|
<category>Gas</category>
|
||||||
|
<tags>
|
||||||
|
<tag>Measurement</tag>
|
||||||
|
<tag>Gas</tag>
|
||||||
|
</tags>
|
||||||
|
<state pattern="%.2f %unit%" readOnly="true"/>
|
||||||
|
</channel-type>
|
||||||
|
|
||||||
|
<channel-type id="volatileOrganicCompoundsId">
|
||||||
|
<item-type>String</item-type>
|
||||||
|
<label>VOC ID</label>
|
||||||
|
<description>Volatile organic compounds identification</description>
|
||||||
|
<category>Gas</category>
|
||||||
|
<tags>
|
||||||
|
<tag>Measurement</tag>
|
||||||
|
<tag>Gas</tag>
|
||||||
|
</tags>
|
||||||
|
<state pattern="%s" readOnly="true"/>
|
||||||
|
</channel-type>
|
||||||
|
|
||||||
|
<channel-type id="totalVolatileOrganicCompounds">
|
||||||
|
<item-type>Number:Dimensionless</item-type>
|
||||||
|
<label>TVOC</label>
|
||||||
|
<description>Total volatile organic compounds level in ppb/</description>
|
||||||
|
<category>Gas</category>
|
||||||
|
<tags>
|
||||||
|
<tag>Measurement</tag>
|
||||||
|
<tag>Gas</tag>
|
||||||
|
</tags>
|
||||||
|
<state pattern="%.2f %unit%" readOnly="true"/>
|
||||||
|
</channel-type>
|
||||||
|
|
||||||
<channel-type id="setPoint">
|
<channel-type id="setPoint">
|
||||||
<item-type>Number</item-type>
|
<item-type>Number</item-type>
|
||||||
<label>Set Point</label>
|
<label>Set Point</label>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user