[enocean] Add null annotations (#14023)

* mainly null annotations

Signed-off-by: lsiepel <leosiepel@gmail.com>

* checkstyle fixes

Signed-off-by: lsiepel <leosiepel@gmail.com>

* another checkstyle pass

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Fix review comments

Signed-off-by: lsiepel <leosiepel@gmail.com>

* fix  most review comments

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Generic => temp_generic

Signed-off-by: lsiepel <leosiepel@gmail.com>

* temp_generic => generic

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Generic fix try 2

Signed-off-by: lsiepel <leosiepel@gmail.com>

* another generic commit

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Final pass for changing generic packages/folder

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Mised comment

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Conflict folder change trial 1

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Conflict folder change final

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Conflict folder change trial 2

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Move folder

Signed-off-by: lsiepel <leosiepel@gmail.com>

* Review comment

Signed-off-by: lsiepel <leosiepel@gmail.com>

---------

Signed-off-by: lsiepel <leosiepel@gmail.com>
This commit is contained in:
lsiepel 2023-03-28 11:05:37 +02:00 committed by GitHub
parent a0e10b2120
commit d4a231e8a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
208 changed files with 1671 additions and 1039 deletions

View File

@ -576,7 +576,7 @@ public class EnOceanBindingConstants {
// Bridge properties // Bridge properties
public static final String PROPERTY_BASE_ID = "Base ID"; public static final String PROPERTY_BASE_ID = "Base ID";
public static final String PROPERTY_REMAINING_WRITE_CYCLES_Base_ID = "Remaining Base ID Write Cycles"; public static final String PROPERTY_REMAINING_WRITE_CYCLES_BASE_ID = "Remaining Base ID Write Cycles";
public static final String PROPERTY_APP_VERSION = "APP Version"; public static final String PROPERTY_APP_VERSION = "APP Version";
public static final String PROPERTY_API_VERSION = "API Version"; public static final String PROPERTY_API_VERSION = "API Version";
public static final String PROPERTY_CHIP_ID = "Chip ID"; public static final String PROPERTY_CHIP_ID = "Chip ID";
@ -594,9 +594,9 @@ public class EnOceanBindingConstants {
public static final String PARAMETER_ENOCEANID = "enoceanId"; public static final String PARAMETER_ENOCEANID = "enoceanId";
// Channel config parameter // Channel config parameter
public static final String PARAMETER_CHANNEL_TeachInMSG = "teachInMSG"; public static final String PARAMETER_CHANNEL_TEACHINMSG = "teachInMSG";
public static final String PARAMETER_CHANNEL_Duration = "duration"; public static final String PARAMETER_CHANNEL_DURATION = "duration";
public static final String PARAMETER_CHANNEL_SwitchMode = "switchMode"; public static final String PARAMETER_CHANNEL_SWITCHMODE = "switchMode";
// Manufacturer Ids - used to recognize special EEPs during auto discovery // Manufacturer Ids - used to recognize special EEPs during auto discovery
public static final int ELTAKOID = 0x00d; public static final int ELTAKOID = 0x00d;

View File

@ -12,7 +12,8 @@
*/ */
package org.openhab.binding.enocean.internal; package org.openhab.binding.enocean.internal;
import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.core.thing.type.ChannelTypeUID; import org.openhab.core.thing.type.ChannelTypeUID;
/** /**
@ -21,10 +22,10 @@ import org.openhab.core.thing.type.ChannelTypeUID;
* This class holds information for creating a channel of an EnOcean thing like acceptedItemType and * This class holds information for creating a channel of an EnOcean thing like acceptedItemType and
* channelTypeUID * channelTypeUID
*/ */
@NonNullByDefault
public class EnOceanChannelDescription { public class EnOceanChannelDescription {
public final ChannelTypeUID channelTypeUID; public final ChannelTypeUID channelTypeUID;
public final String acceptedItemType; public final String acceptedItemType;
@NonNull
public final String label; public final String label;
public final boolean isStateChannel; public final boolean isStateChannel;
public final boolean autoCreate; public final boolean autoCreate;
@ -49,15 +50,11 @@ public class EnOceanChannelDescription {
* @param autoCreate create channel during thing initialization, otherwise channel is created * @param autoCreate create channel during thing initialization, otherwise channel is created
* manually/predefined * manually/predefined
*/ */
public EnOceanChannelDescription(ChannelTypeUID channelTypeUID, String itemType, String label, public EnOceanChannelDescription(ChannelTypeUID channelTypeUID, @Nullable String itemType, @Nullable String label,
boolean isStateChannel, boolean autoCreate) { boolean isStateChannel, boolean autoCreate) {
this.channelTypeUID = channelTypeUID; this.channelTypeUID = channelTypeUID;
this.acceptedItemType = itemType; this.acceptedItemType = itemType != null ? itemType : "";
if (label != null) { this.label = label != null ? label : "";
this.label = label;
} else {
this.label = "";
}
this.isStateChannel = isStateChannel; this.isStateChannel = isStateChannel;
this.autoCreate = autoCreate; this.autoCreate = autoCreate;

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.enocean.internal; package org.openhab.binding.enocean.internal;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public enum EnOceanConfigStatusMessage { public enum EnOceanConfigStatusMessage {
PORT_MISSING("missing-port-configuration"), PORT_MISSING("missing-port-configuration"),
SENDERID_MISSING("missing-senderId-configuration"), SENDERID_MISSING("missing-senderId-configuration"),

View File

@ -12,10 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal; package org.openhab.binding.enocean.internal;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanException extends Exception { public class EnOceanException extends Exception {
/** /**
@ -23,7 +27,7 @@ public class EnOceanException extends Exception {
*/ */
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public EnOceanException(String msg) { public EnOceanException(@Nullable String msg) {
super(msg); super(msg);
} }
} }

View File

@ -19,6 +19,8 @@ import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.discovery.EnOceanDeviceDiscoveryService; import org.openhab.binding.enocean.internal.discovery.EnOceanDeviceDiscoveryService;
import org.openhab.binding.enocean.internal.handler.EnOceanBaseActuatorHandler; import org.openhab.binding.enocean.internal.handler.EnOceanBaseActuatorHandler;
import org.openhab.binding.enocean.internal.handler.EnOceanBaseSensorHandler; import org.openhab.binding.enocean.internal.handler.EnOceanBaseSensorHandler;
@ -36,6 +38,7 @@ import org.openhab.core.thing.binding.ThingHandler;
import org.openhab.core.thing.binding.ThingHandlerFactory; import org.openhab.core.thing.binding.ThingHandlerFactory;
import org.openhab.core.thing.link.ItemChannelLinkRegistry; import org.openhab.core.thing.link.ItemChannelLinkRegistry;
import org.osgi.framework.ServiceRegistration; import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference; import org.osgi.service.component.annotations.Reference;
@ -45,6 +48,7 @@ import org.osgi.service.component.annotations.Reference;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.enocean") @Component(service = ThingHandlerFactory.class, configurationPid = "binding.enocean")
public class EnOceanHandlerFactory extends BaseThingHandlerFactory { public class EnOceanHandlerFactory extends BaseThingHandlerFactory {
@ -55,14 +59,19 @@ public class EnOceanHandlerFactory extends BaseThingHandlerFactory {
private Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>(); private Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
@Reference private final SerialPortManager serialPortManager;
SerialPortManager serialPortManager; private final ThingManager thingManager;
private final ItemChannelLinkRegistry itemChannelLinkRegistry;
@Reference @Activate
ItemChannelLinkRegistry itemChannelLinkRegistry; public EnOceanHandlerFactory(final @Reference SerialPortManager serialPortManager,
final @Reference ThingManager thingManager,
@Reference final @Reference ItemChannelLinkRegistry itemChannelLinkRegistry) {
ThingManager thingManager; // Obtain references to thes service using an OSGi reference
this.serialPortManager = serialPortManager;
this.thingManager = thingManager;
this.itemChannelLinkRegistry = itemChannelLinkRegistry;
}
@Override @Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) { public boolean supportsThingType(ThingTypeUID thingTypeUID) {
@ -70,9 +79,8 @@ public class EnOceanHandlerFactory extends BaseThingHandlerFactory {
} }
@Override @Override
protected ThingHandler createHandler(Thing thing) { protected @Nullable ThingHandler createHandler(Thing thing) {
ThingTypeUID thingTypeUID = thing.getThingTypeUID(); ThingTypeUID thingTypeUID = thing.getThingTypeUID();
if (EnOceanBridgeHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)) { if (EnOceanBridgeHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)) {
EnOceanBridgeHandler bridgeHandler = new EnOceanBridgeHandler((Bridge) thing, serialPortManager); EnOceanBridgeHandler bridgeHandler = new EnOceanBridgeHandler((Bridge) thing, serialPortManager);
registerDeviceDiscoveryService(bridgeHandler); registerDeviceDiscoveryService(bridgeHandler);
@ -90,12 +98,10 @@ public class EnOceanHandlerFactory extends BaseThingHandlerFactory {
@Override @Override
protected void removeHandler(ThingHandler thingHandler) { protected void removeHandler(ThingHandler thingHandler) {
if (this.discoveryServiceRegs != null) { ServiceRegistration<?> serviceReg = this.discoveryServiceRegs.get(thingHandler.getThing().getUID());
ServiceRegistration<?> serviceReg = this.discoveryServiceRegs.get(thingHandler.getThing().getUID()); if (serviceReg != null) {
if (serviceReg != null) { serviceReg.unregister();
serviceReg.unregister(); discoveryServiceRegs.remove(thingHandler.getThing().getUID());
discoveryServiceRegs.remove(thingHandler.getThing().getUID());
}
} }
} }

View File

@ -14,14 +14,17 @@ package org.openhab.binding.enocean.internal;
import java.util.Arrays; import java.util.Arrays;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class Helper { public class Helper {
public static byte[] concatAll(byte[] a, byte[]... rest) { public static byte[] concatAll(byte[] a, byte[]... rest) {
if (rest == null) { if (rest.length == 0) {
return a; return a;
} }
@ -40,7 +43,7 @@ public class Helper {
offset += array.length; offset += array.length;
} }
} }
return result; return result != null ? result : new byte[0];
} }
public static int tryParseInt(String value, int defaultValue) { public static int tryParseInt(String value, int defaultValue) {

View File

@ -12,18 +12,22 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanActuatorConfig extends EnOceanBaseConfig { public class EnOceanActuatorConfig extends EnOceanBaseConfig {
public int channel; public int channel;
public Integer senderIdOffset = null; public @Nullable Integer senderIdOffset = null;
public String manufacturerId; public String manufacturerId = "";
public String teachInType; public String teachInType = "";
public String sendingEEPId; public String sendingEEPId = "";
public int pollingInterval; public int pollingInterval;

View File

@ -12,10 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanBridgeConfig { public class EnOceanBridgeConfig {
public enum ESPVersion { public enum ESPVersion {
@ -40,24 +44,17 @@ public class EnOceanBridgeConfig {
} }
} }
public String path; public String path = "";
public String espVersion; public String espVersion = "ESP3";
public boolean rs485; public boolean rs485;
public String rs485BaseId; public String rs485BaseId = "";
public Integer nextSenderId; public @Nullable Integer nextSenderId;
public boolean enableSmack; public boolean enableSmack = true;
public boolean sendTeachOuts; public boolean sendTeachOuts;
public EnOceanBridgeConfig() {
espVersion = "ESP3";
sendTeachOuts = false;
enableSmack = true;
nextSenderId = null;
}
public ESPVersion getESPVersion() { public ESPVersion getESPVersion() {
return ESPVersion.getESPVersion(espVersion); return ESPVersion.getESPVersion(espVersion);
} }

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Holger Englert - Initial contribution * @author Holger Englert - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelContactConfig { public class EnOceanChannelContactConfig {
// Swap Open/Closed value, e.g. // Swap Open/Closed value, e.g.
// Eltako FPE-1: false, Eltako FPE-2: true // Eltako FPE-1: false, Eltako FPE-2: true

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Dominik Krickl-Vorreiter - Initial contribution * @author Dominik Krickl-Vorreiter - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelDimmerConfig { public class EnOceanChannelDimmerConfig {
public int rampingTime = 0; public int rampingTime = 0;

View File

@ -14,10 +14,14 @@ package org.openhab.binding.enocean.internal.config;
import java.security.InvalidParameterException; import java.security.InvalidParameterException;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelRockerSwitchConfigBase { public class EnOceanChannelRockerSwitchConfigBase {
public String switchMode; public String switchMode;
@ -39,7 +43,7 @@ public class EnOceanChannelRockerSwitchConfigBase {
return value; return value;
} }
public static SwitchMode getSwitchMode(String value) { public static SwitchMode getSwitchMode(@Nullable String value) {
if (value == null) { if (value == null) {
return SwitchMode.Unkown; return SwitchMode.Unkown;
} }
@ -65,7 +69,7 @@ public class EnOceanChannelRockerSwitchConfigBase {
this.value = value; this.value = value;
} }
public static Channel getChannel(String value) { public static Channel getChannel(@Nullable String value) {
if (value == null) { if (value == null) {
return Channel.Unkown; return Channel.Unkown;
} }

View File

@ -12,18 +12,19 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelRockerSwitchListenerConfig extends EnOceanChannelRockerSwitchConfigBase { public class EnOceanChannelRockerSwitchListenerConfig extends EnOceanChannelRockerSwitchConfigBase {
public String enoceanId; public String enoceanId = "";
public boolean handleSecondAction; public boolean handleSecondAction = false;
public EnOceanChannelRockerSwitchListenerConfig() { public EnOceanChannelRockerSwitchListenerConfig() {
super(); super();
enoceanId = null;
handleSecondAction = false;
} }
} }

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelRollershutterConfig { public class EnOceanChannelRollershutterConfig {
public int shutTime; public int shutTime;

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelTariffInfoConfig { public class EnOceanChannelTariffInfoConfig {
public int tariff = 0; public int tariff = 0;
} }

View File

@ -12,12 +12,15 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelTeachInConfig { public class EnOceanChannelTeachInConfig {
public String teachInMSG; public String teachInMSG = "";
public String manufacturerId; public String manufacturerId = "";
} }

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Dominik Vorreiter - Initial contribution * @author Dominik Vorreiter - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelTotalusageConfig { public class EnOceanChannelTotalusageConfig {
public boolean validateValue = false; public boolean validateValue = false;
} }

View File

@ -12,19 +12,21 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelTransformationConfig extends Configuration { public class EnOceanChannelTransformationConfig extends Configuration {
public String transformationType; public String transformationType = "";
public String transformationFunction; public String transformationFunction = "";
public EnOceanChannelTransformationConfig() { public EnOceanChannelTransformationConfig() {
put("transformationType", ""); put("transformationType", transformationType);
put("transformationFunction", ""); put("transformationFunction", transformationFunction);
} }
} }

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanChannelVirtualRockerSwitchConfig extends EnOceanChannelRockerSwitchConfigBase { public class EnOceanChannelVirtualRockerSwitchConfig extends EnOceanChannelRockerSwitchConfigBase {
public Integer duration; public Integer duration;

View File

@ -12,12 +12,15 @@
*/ */
package org.openhab.binding.enocean.internal.config; package org.openhab.binding.enocean.internal.config;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* This {@link EnOceanProfileRockerSwitchActionConfig} config class is used for rockerSwitchAction profiles to define in * This {@link EnOceanProfileRockerSwitchActionConfig} config class is used for rockerSwitchAction profiles to define in
* which case it should react. * which case it should react.
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanProfileRockerSwitchActionConfig { public class EnOceanProfileRockerSwitchActionConfig {
public String channelAFilter; public String channelAFilter;

View File

@ -17,6 +17,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.Set; import java.util.Set;
import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base.UTEResponse; import org.openhab.binding.enocean.internal.eep.Base.UTEResponse;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.eep.EEP; import org.openhab.binding.enocean.internal.eep.EEP;
@ -27,7 +29,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.binding.enocean.internal.messages.ERP1Message.RORG; import org.openhab.binding.enocean.internal.messages.ERP1Message.RORG;
import org.openhab.binding.enocean.internal.messages.EventMessage; import org.openhab.binding.enocean.internal.messages.EventMessage;
import org.openhab.binding.enocean.internal.messages.EventMessage.EventMessageType; import org.openhab.binding.enocean.internal.messages.EventMessage.EventMessageType;
import org.openhab.binding.enocean.internal.messages.Responses.SMACKTeachInResponse; import org.openhab.binding.enocean.internal.messages.responses.SMACKTeachInResponse;
import org.openhab.binding.enocean.internal.transceiver.TeachInListener; import org.openhab.binding.enocean.internal.transceiver.TeachInListener;
import org.openhab.core.config.discovery.AbstractDiscoveryService; import org.openhab.core.config.discovery.AbstractDiscoveryService;
import org.openhab.core.config.discovery.DiscoveryResultBuilder; import org.openhab.core.config.discovery.DiscoveryResultBuilder;
@ -44,6 +46,7 @@ import org.slf4j.LoggerFactory;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class EnOceanDeviceDiscoveryService extends AbstractDiscoveryService implements TeachInListener { public class EnOceanDeviceDiscoveryService extends AbstractDiscoveryService implements TeachInListener {
private final Logger logger = LoggerFactory.getLogger(EnOceanDeviceDiscoveryService.class); private final Logger logger = LoggerFactory.getLogger(EnOceanDeviceDiscoveryService.class);
@ -70,20 +73,12 @@ public class EnOceanDeviceDiscoveryService extends AbstractDiscoveryService impl
@Override @Override
protected void startScan() { protected void startScan() {
if (bridgeHandler == null) {
return;
}
logger.info("Starting EnOcean discovery and accepting teach in requests"); logger.info("Starting EnOcean discovery and accepting teach in requests");
bridgeHandler.startDiscovery(this); bridgeHandler.startDiscovery(this);
} }
@Override @Override
public synchronized void stopScan() { public synchronized void stopScan() {
if (bridgeHandler == null) {
return;
}
logger.info("Stopping EnOcean discovery scan"); logger.info("Stopping EnOcean discovery scan");
bridgeHandler.stopDiscovery(); bridgeHandler.stopDiscovery();
super.stopScan(); super.stopScan();
@ -125,11 +120,12 @@ public class EnOceanDeviceDiscoveryService extends AbstractDiscoveryService impl
// check for bidirectional communication => do not use broadcast in this case // check for bidirectional communication => do not use broadcast in this case
if (msg.getRORG() == RORG.UTE && (msg.getPayload(1, 1)[0] if (msg.getRORG() == RORG.UTE && (msg.getPayload(1, 1)[0]
& UTEResponse.CommunicationType_MASK) == UTEResponse.CommunicationType_MASK) { & UTEResponse.COMMUNICATION_TYPE_MASK) == UTEResponse.COMMUNICATION_TYPE_MASK) {
broadcastMessages = false; broadcastMessages = false;
} }
if (msg.getRORG() == RORG.UTE && (msg.getPayload(1, 1)[0] & UTEResponse.ResponseNeeded_MASK) == 0) { if (msg.getRORG() == RORG.UTE
&& (msg.getPayload(1, 1)[0] & UTEResponse.RESPONSE_NEEDED_MASK) == 0) {
// if ute => send response if needed // if ute => send response if needed
logger.debug("Sending UTE response to {}", enoceanId); logger.debug("Sending UTE response to {}", enoceanId);
senderIdOffset = sendTeachInResponse(msg, enoceanId); senderIdOffset = sendTeachInResponse(msg, enoceanId);
@ -183,7 +179,7 @@ public class EnOceanDeviceDiscoveryService extends AbstractDiscoveryService impl
} }
} }
private Integer sendTeachInResponse(ERP1Message msg, String enoceanId) { private @Nullable Integer sendTeachInResponse(ERP1Message msg, String enoceanId) {
// get new sender Id // get new sender Id
Integer offset = bridgeHandler.getNextSenderId(enoceanId); Integer offset = bridgeHandler.getNextSenderId(enoceanId);
if (offset != null) { if (offset != null) {
@ -193,9 +189,12 @@ public class EnOceanDeviceDiscoveryService extends AbstractDiscoveryService impl
// send response // send response
EEP response = EEPFactory.buildResponseEEPFromTeachInERP1(msg, newSenderId, true); EEP response = EEPFactory.buildResponseEEPFromTeachInERP1(msg, newSenderId, true);
if (response != null) { if (response != null) {
bridgeHandler.sendMessage(response.getERP1Message(), null); BasePacket bPacket = response.getERP1Message();
logger.debug("Teach in response for {} with new senderId {} (= offset {}) sent", enoceanId, if (bPacket != null) {
HexUtils.bytesToHex(newSenderId), offset); bridgeHandler.sendMessage(bPacket, null);
logger.debug("Teach in response for {} with new senderId {} (= offset {}) sent", enoceanId,
HexUtils.bytesToHex(newSenderId), offset);
}
} else { } else {
logger.warn("Teach in response for enoceanId {} not supported!", enoceanId); logger.warn("Teach in response for enoceanId {} not supported!", enoceanId);
} }
@ -212,16 +211,24 @@ public class EnOceanDeviceDiscoveryService extends AbstractDiscoveryService impl
// send response // send response
EEP response = EEPFactory.buildResponseEEPFromTeachInERP1(msg, senderId, false); EEP response = EEPFactory.buildResponseEEPFromTeachInERP1(msg, senderId, false);
if (response != null) { if (response != null) {
bridgeHandler.sendMessage(response.getERP1Message(), null); ERP1Message message = response.getERP1Message();
logger.debug("Teach out response for thing {} with EnOceanId {} sent", thing.getUID().getId(), enoceanId); if (message != null) {
bridgeHandler.sendMessage(message, null);
logger.debug("Teach out response for thing {} with EnOceanId {} sent", thing.getUID().getId(),
enoceanId);
}
} else { } else {
logger.warn("Teach out response for enoceanId {} not supported!", enoceanId); logger.warn("Teach out response for enoceanId {} not supported!", enoceanId);
} }
} }
protected void createDiscoveryResult(EEP eep, boolean broadcastMessages, Integer senderIdOffset) { protected void createDiscoveryResult(EEP eep, boolean broadcastMessages, @Nullable Integer senderIdOffset) {
String enoceanId = HexUtils.bytesToHex(eep.getSenderId()); String enoceanId = HexUtils.bytesToHex(eep.getSenderId());
ThingTypeUID thingTypeUID = eep.getThingTypeUID(); ThingTypeUID thingTypeUID = eep.getThingTypeUID();
if (thingTypeUID == null) {
logger.debug("Discovery failed, could not get ThingTypeUID for EnOceanId {}", enoceanId);
return;
}
ThingUID thingUID = new ThingUID(thingTypeUID, bridgeHandler.getThing().getUID(), enoceanId); ThingUID thingUID = new ThingUID(thingTypeUID, bridgeHandler.getThing().getUID(), enoceanId);
DiscoveryResultBuilder discoveryResultBuilder = DiscoveryResultBuilder.create(thingUID) DiscoveryResultBuilder discoveryResultBuilder = DiscoveryResultBuilder.create(thingUID)

View File

@ -18,6 +18,7 @@ import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jdt.annotation.Nullable;
import org.openhab.core.config.discovery.DiscoveryResult; import org.openhab.core.config.discovery.DiscoveryResult;
import org.openhab.core.config.discovery.DiscoveryResultBuilder; import org.openhab.core.config.discovery.DiscoveryResultBuilder;
@ -35,6 +36,7 @@ import org.osgi.service.component.annotations.Component;
* *
* @author Aitor Iturrioz - initial contribution * @author Aitor Iturrioz - initial contribution
*/ */
@NonNullByDefault
@Component(service = UsbSerialDiscoveryParticipant.class) @Component(service = UsbSerialDiscoveryParticipant.class)
public class EnOceanUsbSerialDiscoveryParticipant implements UsbSerialDiscoveryParticipant { public class EnOceanUsbSerialDiscoveryParticipant implements UsbSerialDiscoveryParticipant {

View File

@ -14,6 +14,8 @@ package org.openhab.binding.enocean.internal.eep.A5_02;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -25,6 +27,7 @@ import org.openhab.core.types.State;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public abstract class A5_02 extends _4BSMessage { public abstract class A5_02 extends _4BSMessage {
public A5_02(ERP1Message packet) { public A5_02(ERP1Message packet) {
@ -44,13 +47,12 @@ public abstract class A5_02 extends _4BSMessage {
protected abstract double getScaledMax(); protected abstract double getScaledMax();
protected int getUnscaledTemperatureValue() { protected int getUnscaledTemperatureValue() {
return getDB_1Value(); return getDB1Value();
} }
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
double scaledTemp = getScaledMin() double scaledTemp = getScaledMin()
- (((getUnscaledMin() - getUnscaledTemperatureValue()) * (getScaledMin() - getScaledMax())) - (((getUnscaledMin() - getUnscaledTemperatureValue()) * (getScaledMin() - getScaledMax()))
/ getUnscaledMin()); / getUnscaledMin());

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_01 extends A5_02 { public class A5_02_01 extends A5_02 {
public A5_02_01(ERP1Message packet) { public A5_02_01(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_02 extends A5_02 { public class A5_02_02 extends A5_02 {
public A5_02_02(ERP1Message packet) { public A5_02_02(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_03 extends A5_02 { public class A5_02_03 extends A5_02 {
public A5_02_03(ERP1Message packet) { public A5_02_03(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_04 extends A5_02 { public class A5_02_04 extends A5_02 {
public A5_02_04(ERP1Message packet) { public A5_02_04(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_05 extends A5_02 { public class A5_02_05 extends A5_02 {
public A5_02_05(ERP1Message packet) { public A5_02_05(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_06 extends A5_02 { public class A5_02_06 extends A5_02 {
public A5_02_06(ERP1Message packet) { public A5_02_06(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_07 extends A5_02 { public class A5_02_07 extends A5_02 {
public A5_02_07(ERP1Message packet) { public A5_02_07(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_08 extends A5_02 { public class A5_02_08 extends A5_02 {
public A5_02_08(ERP1Message packet) { public A5_02_08(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_09 extends A5_02 { public class A5_02_09 extends A5_02 {
public A5_02_09(ERP1Message packet) { public A5_02_09(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_0A extends A5_02 { public class A5_02_0A extends A5_02 {
public A5_02_0A(ERP1Message packet) { public A5_02_0A(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_0B extends A5_02 { public class A5_02_0B extends A5_02 {
public A5_02_0B(ERP1Message packet) { public A5_02_0B(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_10 extends A5_02 { public class A5_02_10 extends A5_02 {
public A5_02_10(ERP1Message packet) { public A5_02_10(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_11 extends A5_02 { public class A5_02_11 extends A5_02 {
public A5_02_11(ERP1Message packet) { public A5_02_11(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_12 extends A5_02 { public class A5_02_12 extends A5_02 {
public A5_02_12(ERP1Message packet) { public A5_02_12(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_13 extends A5_02 { public class A5_02_13 extends A5_02 {
public A5_02_13(ERP1Message packet) { public A5_02_13(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_14 extends A5_02 { public class A5_02_14 extends A5_02 {
public A5_02_14(ERP1Message packet) { public A5_02_14(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_15 extends A5_02 { public class A5_02_15 extends A5_02 {
public A5_02_15(ERP1Message packet) { public A5_02_15(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_16 extends A5_02 { public class A5_02_16 extends A5_02 {
public A5_02_16(ERP1Message packet) { public A5_02_16(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_17 extends A5_02 { public class A5_02_17 extends A5_02 {
public A5_02_17(ERP1Message packet) { public A5_02_17(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_18 extends A5_02 { public class A5_02_18 extends A5_02 {
public A5_02_18(ERP1Message packet) { public A5_02_18(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_19 extends A5_02 { public class A5_02_19 extends A5_02 {
public A5_02_19(ERP1Message packet) { public A5_02_19(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_1A extends A5_02 { public class A5_02_1A extends A5_02 {
public A5_02_1A(ERP1Message packet) { public A5_02_1A(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_1B extends A5_02 { public class A5_02_1B extends A5_02 {
public A5_02_1B(ERP1Message packet) { public A5_02_1B(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_20 extends A5_02 { public class A5_02_20 extends A5_02 {
public A5_02_20(ERP1Message packet) { public A5_02_20(ERP1Message packet) {
@ -46,6 +48,6 @@ public class A5_02_20 extends A5_02 {
@Override @Override
protected int getUnscaledTemperatureValue() { protected int getUnscaledTemperatureValue() {
return getDB_1Value() + ((getDB_2Value() & 0b11) << 8); return getDB1Value() + ((getDB2Value() & 0b11) << 8);
} }
} }

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_02; package org.openhab.binding.enocean.internal.eep.A5_02;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_02_30 extends A5_02 { public class A5_02_30 extends A5_02 {
public A5_02_30(ERP1Message packet) { public A5_02_30(ERP1Message packet) {
@ -46,6 +48,6 @@ public class A5_02_30 extends A5_02 {
@Override @Override
protected int getUnscaledTemperatureValue() { protected int getUnscaledTemperatureValue() {
return getDB_1Value() + ((getDB_2Value() & 0b11) << 8); return getDB1Value() + ((getDB2Value() & 0b11) << 8);
} }
} }

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -29,6 +31,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public abstract class A5_04 extends _4BSMessage { public abstract class A5_04 extends _4BSMessage {
public A5_04(ERP1Message packet) { public A5_04(ERP1Message packet) {
@ -48,7 +51,7 @@ public abstract class A5_04 extends _4BSMessage {
protected abstract double getScaledTemperatureMax(); protected abstract double getScaledTemperatureMax();
protected int getUnscaledTemperatureValue() { protected int getUnscaledTemperatureValue() {
return getDB_1Value(); return getDB1Value();
} }
protected double getUnscaledHumidityMax() { protected double getUnscaledHumidityMax() {
@ -56,13 +59,12 @@ public abstract class A5_04 extends _4BSMessage {
} }
protected int getUnscaledHumidityValue() { protected int getUnscaledHumidityValue() {
return getDB_2Value(); return getDB2Value();
} }
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
if (channelId.equals(CHANNEL_TEMPERATURE)) { if (channelId.equals(CHANNEL_TEMPERATURE)) {
double scaledTemp = getScaledTemperatureMin() double scaledTemp = getScaledTemperatureMin()
+ ((getUnscaledTemperatureValue() * (getScaledTemperatureMax() - getScaledTemperatureMin())) + ((getUnscaledTemperatureValue() * (getScaledTemperatureMax() - getScaledTemperatureMin()))

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_04; package org.openhab.binding.enocean.internal.eep.A5_04;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_04_01 extends A5_04 { public class A5_04_01 extends A5_04 {
public A5_04_01(ERP1Message packet) { public A5_04_01(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_04; package org.openhab.binding.enocean.internal.eep.A5_04;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_04_02 extends A5_04 { public class A5_04_02 extends A5_04 {
public A5_04_02(ERP1Message packet) { public A5_04_02(ERP1Message packet) {

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.CHANN
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
import org.openhab.core.library.types.QuantityType; import org.openhab.core.library.types.QuantityType;
@ -26,6 +28,7 @@ import org.openhab.core.types.State;
* *
* @author Dominik Krickl-Vorreiter - Initial contribution * @author Dominik Krickl-Vorreiter - Initial contribution
*/ */
@NonNullByDefault
public class A5_04_02_Eltako extends A5_04_02 { public class A5_04_02_Eltako extends A5_04_02 {
public A5_04_02_Eltako(ERP1Message packet) { public A5_04_02_Eltako(ERP1Message packet) {
@ -34,9 +37,9 @@ public class A5_04_02_Eltako extends A5_04_02 {
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
if (channelId.equals(CHANNEL_BATTERY_VOLTAGE)) { if (channelId.equals(CHANNEL_BATTERY_VOLTAGE)) {
double voltage = getDB_3Value() * 6.58 / 255.0; // not sure if this is right double voltage = getDB3Value() * 6.58 / 255.0; // not sure if this is right
return new QuantityType<>(voltage, Units.VOLT); return new QuantityType<>(voltage, Units.VOLT);
} }

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_04; package org.openhab.binding.enocean.internal.eep.A5_04;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_04_03 extends A5_04 { public class A5_04_03 extends A5_04 {
public A5_04_03(ERP1Message packet) { public A5_04_03(ERP1Message packet) {
@ -41,7 +43,7 @@ public class A5_04_03 extends A5_04 {
@Override @Override
protected int getUnscaledTemperatureValue() { protected int getUnscaledTemperatureValue() {
return getDB_1Value() + ((getDB_2Value() & 0b11) << 8); return getDB1Value() + ((getDB2Value() & 0b11) << 8);
} }
@Override @Override
@ -51,6 +53,6 @@ public class A5_04_03 extends A5_04 {
@Override @Override
protected int getUnscaledHumidityValue() { protected int getUnscaledHumidityValue() {
return getDB_3Value(); return getDB3Value();
} }
} }

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -28,6 +30,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Dominik Krickl-Vorreiter - Initial contribution * @author Dominik Krickl-Vorreiter - Initial contribution
*/ */
@NonNullByDefault
public class A5_06_01 extends _4BSMessage { public class A5_06_01 extends _4BSMessage {
public A5_06_01(ERP1Message packet) { public A5_06_01(ERP1Message packet) {
@ -35,7 +38,7 @@ public class A5_06_01 extends _4BSMessage {
} }
private State getBatteryVoltage() { private State getBatteryVoltage() {
int db3 = getDB_3Value(); int db3 = getDB3Value();
double voltage = db3 / 50.0; // 0..255 = 0.0..5.1V double voltage = db3 / 50.0; // 0..255 = 0.0..5.1V
@ -43,16 +46,16 @@ public class A5_06_01 extends _4BSMessage {
} }
private State getIllumination() { private State getIllumination() {
boolean rs = getBit(getDB_0(), 0); boolean rs = getBit(getDB0(), 0);
double illumination = rs ? getDB_2Value() * 116.48 + 300.0 : getDB_1Value() * 232.94 + 600.0; double illumination = rs ? getDB2Value() * 116.48 + 300.0 : getDB1Value() * 232.94 + 600.0;
return new QuantityType<>(illumination, Units.LUX); return new QuantityType<>(illumination, Units.LUX);
} }
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
switch (channelId) { switch (channelId) {
case CHANNEL_BATTERY_VOLTAGE: case CHANNEL_BATTERY_VOLTAGE:
return getBatteryVoltage(); return getBatteryVoltage();

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.CHANN
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -28,6 +30,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Dominik Krickl-Vorreiter - Initial contribution * @author Dominik Krickl-Vorreiter - Initial contribution
*/ */
@NonNullByDefault
public class A5_06_01_ELTAKO extends _4BSMessage { public class A5_06_01_ELTAKO extends _4BSMessage {
public A5_06_01_ELTAKO(ERP1Message packet) { public A5_06_01_ELTAKO(ERP1Message packet) {
@ -35,10 +38,10 @@ public class A5_06_01_ELTAKO extends _4BSMessage {
} }
private State getIllumination() { private State getIllumination() {
int db2 = getDB_2Value(); int db2 = getDB2Value();
if (db2 == 0) { if (db2 == 0) {
int db3 = getDB_3Value(); int db3 = getDB3Value();
return new QuantityType<>(db3 * 0.5, Units.LUX); return new QuantityType<>(db3 * 0.5, Units.LUX);
} else { } else {
return new QuantityType<>(db2 * 116.48 + 300.0, Units.LUX); return new QuantityType<>(db2 * 116.48 + 300.0, Units.LUX);
@ -47,7 +50,7 @@ public class A5_06_01_ELTAKO extends _4BSMessage {
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
switch (channelId) { switch (channelId) {
case CHANNEL_ILLUMINATION: case CHANNEL_ILLUMINATION:
return getIllumination(); return getIllumination();

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -28,6 +30,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public abstract class A5_07 extends _4BSMessage { public abstract class A5_07 extends _4BSMessage {
public A5_07(ERP1Message packet) { public A5_07(ERP1Message packet) {
@ -52,8 +55,7 @@ public abstract class A5_07 extends _4BSMessage {
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
if (channelId.equals(CHANNEL_ILLUMINATION)) { if (channelId.equals(CHANNEL_ILLUMINATION)) {
return getIllumination(); return getIllumination();
} else if (channelId.equals(CHANNEL_MOTIONDETECTION)) { } else if (channelId.equals(CHANNEL_MOTIONDETECTION)) {

View File

@ -12,6 +12,7 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_07; package org.openhab.binding.enocean.internal.eep.A5_07;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.library.types.OnOffType; import org.openhab.core.library.types.OnOffType;
import org.openhab.core.types.State; import org.openhab.core.types.State;
@ -21,9 +22,10 @@ import org.openhab.core.types.UnDefType;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_07_01 extends A5_07 { public class A5_07_01 extends A5_07 {
private final int PIR_OFF = 0x7f; private static final int PIR_OFF = 0x7f;
public A5_07_01(ERP1Message packet) { public A5_07_01(ERP1Message packet) {
super(packet); super(packet);
@ -36,15 +38,15 @@ public class A5_07_01 extends A5_07 {
@Override @Override
protected State getMotion() { protected State getMotion() {
return getDB_1Value() <= PIR_OFF ? OnOffType.OFF : OnOffType.ON; return getDB1Value() <= PIR_OFF ? OnOffType.OFF : OnOffType.ON;
} }
@Override @Override
protected State getSupplyVoltage() { protected State getSupplyVoltage() {
if (!getBit(getDB_0Value(), 0)) { if (!getBit(getDB0Value(), 0)) {
return UnDefType.UNDEF; return UnDefType.UNDEF;
} }
return getSupplyVoltage(getDB_3Value()); return getSupplyVoltage(getDB3Value());
} }
} }

View File

@ -12,6 +12,7 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_07; package org.openhab.binding.enocean.internal.eep.A5_07;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.library.types.OnOffType; import org.openhab.core.library.types.OnOffType;
import org.openhab.core.types.State; import org.openhab.core.types.State;
@ -21,6 +22,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_07_02 extends A5_07 { public class A5_07_02 extends A5_07 {
public A5_07_02(ERP1Message packet) { public A5_07_02(ERP1Message packet) {
@ -34,11 +36,11 @@ public class A5_07_02 extends A5_07 {
@Override @Override
protected State getMotion() { protected State getMotion() {
return getBit(getDB_0Value(), 7) ? OnOffType.ON : OnOffType.OFF; return getBit(getDB0Value(), 7) ? OnOffType.ON : OnOffType.OFF;
} }
@Override @Override
protected State getSupplyVoltage() { protected State getSupplyVoltage() {
return getSupplyVoltage(getDB_3Value()); return getSupplyVoltage(getDB3Value());
} }
} }

View File

@ -12,6 +12,7 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_07; package org.openhab.binding.enocean.internal.eep.A5_07;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.library.types.QuantityType; import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.Units; import org.openhab.core.library.unit.Units;
@ -21,6 +22,7 @@ import org.openhab.core.types.State;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_07_03 extends A5_07_02 { public class A5_07_03 extends A5_07_02 {
public A5_07_03(ERP1Message packet) { public A5_07_03(ERP1Message packet) {
@ -29,6 +31,6 @@ public class A5_07_03 extends A5_07_02 {
@Override @Override
protected State getIllumination() { protected State getIllumination() {
return new QuantityType<>((getDB_2Value() << 8) + ((getDB_1Value() & 0b11000000) >>> 6), Units.LUX); return new QuantityType<>((getDB2Value() << 8) + ((getDB1Value() & 0b11000000) >>> 6), Units.LUX);
} }
} }

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -30,6 +32,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public abstract class A5_08 extends _4BSMessage { public abstract class A5_08 extends _4BSMessage {
public A5_08(ERP1Message packet) { public A5_08(ERP1Message packet) {
@ -61,17 +64,16 @@ public abstract class A5_08 extends _4BSMessage {
protected abstract double getScaledIlluminationMax(); protected abstract double getScaledIlluminationMax();
protected int getUnscaledTemperatureValue() { protected int getUnscaledTemperatureValue() {
return getDB_1Value(); return getDB1Value();
} }
protected int getUnscaledIlluminationValue() { protected int getUnscaledIlluminationValue() {
return getDB_2Value(); return getDB2Value();
} }
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
if (channelId.equals(CHANNEL_TEMPERATURE)) { if (channelId.equals(CHANNEL_TEMPERATURE)) {
double scaledTemp = getScaledTemperatureMin() double scaledTemp = getScaledTemperatureMin()
+ ((getUnscaledTemperatureValue() * (getScaledTemperatureMax() - getScaledTemperatureMin())) + ((getUnscaledTemperatureValue() * (getScaledTemperatureMax() - getScaledTemperatureMin()))
@ -83,9 +85,9 @@ public abstract class A5_08 extends _4BSMessage {
/ (getUnscaledIlluminationMax() - getUnscaledIlluminationMin())); / (getUnscaledIlluminationMax() - getUnscaledIlluminationMin()));
return new QuantityType<>(scaledIllumination, Units.LUX); return new QuantityType<>(scaledIllumination, Units.LUX);
} else if (channelId.equals(CHANNEL_MOTIONDETECTION)) { } else if (channelId.equals(CHANNEL_MOTIONDETECTION)) {
return getBit(getDB_0(), 1) ? OnOffType.OFF : OnOffType.ON; return getBit(getDB0(), 1) ? OnOffType.OFF : OnOffType.ON;
} else if (channelId.equals(CHANNEL_OCCUPANCY)) { } else if (channelId.equals(CHANNEL_OCCUPANCY)) {
return getBit(getDB_0(), 0) ? OnOffType.OFF : OnOffType.ON; return getBit(getDB0(), 0) ? OnOffType.OFF : OnOffType.ON;
} }
return UnDefType.UNDEF; return UnDefType.UNDEF;

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_08; package org.openhab.binding.enocean.internal.eep.A5_08;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_08_01 extends A5_08 { public class A5_08_01 extends A5_08 {
public A5_08_01(ERP1Message packet) { public A5_08_01(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_08; package org.openhab.binding.enocean.internal.eep.A5_08;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_08_01_FXBH extends A5_08 { public class A5_08_01_FXBH extends A5_08 {
public A5_08_01_FXBH(ERP1Message packet) { public A5_08_01_FXBH(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_08; package org.openhab.binding.enocean.internal.eep.A5_08;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_08_02 extends A5_08 { public class A5_08_02 extends A5_08 {
public A5_08_02(ERP1Message packet) { public A5_08_02(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_08; package org.openhab.binding.enocean.internal.eep.A5_08;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_08_03 extends A5_08 { public class A5_08_03 extends A5_08 {
public A5_08_03(ERP1Message packet) { public A5_08_03(ERP1Message packet) {

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -31,6 +33,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public abstract class A5_10 extends _4BSMessage { public abstract class A5_10 extends _4BSMessage {
public A5_10(ERP1Message packet) { public A5_10(ERP1Message packet) {
@ -39,31 +42,30 @@ public abstract class A5_10 extends _4BSMessage {
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
switch (channelId) { switch (channelId) {
case CHANNEL_FANSPEEDSTAGE: case CHANNEL_FANSPEEDSTAGE:
if (getDB_3Value() > 209) { if (getDB3Value() > 209) {
return new StringType("-1"); return new StringType("-1");
} else if (getDB_3Value() > 189) { } else if (getDB3Value() > 189) {
return new StringType("0"); return new StringType("0");
} else if (getDB_3Value() > 164) { } else if (getDB3Value() > 164) {
return new StringType("1"); return new StringType("1");
} else if (getDB_3Value() > 144) { } else if (getDB3Value() > 144) {
return new StringType("2"); return new StringType("2");
} else { } else {
return new StringType("3"); return new StringType("3");
} }
case CHANNEL_SETPOINT: case CHANNEL_SETPOINT:
return new DecimalType(getDB_2Value()); return new DecimalType(getDB2Value());
case CHANNEL_TEMPERATURE: case CHANNEL_TEMPERATURE:
double temp = (getDB_1Value() - 255) / -6.375; double temp = (getDB1Value() - 255) / -6.375;
return new QuantityType<>(temp, SIUnits.CELSIUS); return new QuantityType<>(temp, SIUnits.CELSIUS);
case CHANNEL_OCCUPANCY: case CHANNEL_OCCUPANCY:
return getBit(getDB_0(), 0) ? OnOffType.OFF : OnOffType.ON; return getBit(getDB0(), 0) ? OnOffType.OFF : OnOffType.ON;
} }
return UnDefType.UNDEF; return UnDefType.UNDEF;

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_01 extends A5_10 { public class A5_10_01 extends A5_10 {
public A5_10_01(ERP1Message packet) { public A5_10_01(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_02 extends A5_10 { public class A5_10_02 extends A5_10 {
public A5_10_02(ERP1Message packet) { public A5_10_02(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_03 extends A5_10 { public class A5_10_03 extends A5_10 {
public A5_10_03(ERP1Message packet) { public A5_10_03(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_04 extends A5_10 { public class A5_10_04 extends A5_10 {
public A5_10_04(ERP1Message packet) { public A5_10_04(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_05 extends A5_10 { public class A5_10_05 extends A5_10 {
public A5_10_05(ERP1Message packet) { public A5_10_05(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_06 extends A5_10 { public class A5_10_06 extends A5_10 {
public A5_10_06(ERP1Message packet) { public A5_10_06(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_07 extends A5_10 { public class A5_10_07 extends A5_10 {
public A5_10_07(ERP1Message packet) { public A5_10_07(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_08 extends A5_10 { public class A5_10_08 extends A5_10 {
public A5_10_08(ERP1Message packet) { public A5_10_08(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_09 extends A5_10 { public class A5_10_09 extends A5_10 {
public A5_10_09(ERP1Message packet) { public A5_10_09(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_0A extends A5_10 { public class A5_10_0A extends A5_10 {
public A5_10_0A(ERP1Message packet) { public A5_10_0A(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_0B extends A5_10 { public class A5_10_0B extends A5_10 {
public A5_10_0B(ERP1Message packet) { public A5_10_0B(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_0C extends A5_10 { public class A5_10_0C extends A5_10 {
public A5_10_0C(ERP1Message packet) { public A5_10_0C(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_0D extends A5_10 { public class A5_10_0D extends A5_10 {
public A5_10_0D(ERP1Message packet) { public A5_10_0D(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_10 extends A5_10 { public class A5_10_10 extends A5_10 {
public A5_10_10(ERP1Message packet) { public A5_10_10(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_11 extends A5_10 { public class A5_10_11 extends A5_10 {
public A5_10_11(ERP1Message packet) { public A5_10_11(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_12 extends A5_10 { public class A5_10_12 extends A5_10 {
public A5_10_12(ERP1Message packet) { public A5_10_12(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_13 extends A5_10 { public class A5_10_13 extends A5_10 {
public A5_10_13(ERP1Message packet) { public A5_10_13(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_14 extends A5_10 { public class A5_10_14 extends A5_10 {
public A5_10_14(ERP1Message packet) { public A5_10_14(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_15 extends A5_10 { public class A5_10_15 extends A5_10 {
public A5_10_15(ERP1Message packet) { public A5_10_15(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_16 extends A5_10 { public class A5_10_16 extends A5_10 {
public A5_10_16(ERP1Message packet) { public A5_10_16(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_17 extends A5_10 { public class A5_10_17 extends A5_10 {
public A5_10_17(ERP1Message packet) { public A5_10_17(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_18 extends A5_10 { public class A5_10_18 extends A5_10 {
public A5_10_18(ERP1Message packet) { public A5_10_18(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_19 extends A5_10 { public class A5_10_19 extends A5_10 {
public A5_10_19(ERP1Message packet) { public A5_10_19(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_1A extends A5_10 { public class A5_10_1A extends A5_10 {
public A5_10_1A(ERP1Message packet) { public A5_10_1A(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_1B extends A5_10 { public class A5_10_1B extends A5_10 {
public A5_10_1B(ERP1Message packet) { public A5_10_1B(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_1C extends A5_10 { public class A5_10_1C extends A5_10 {
public A5_10_1C(ERP1Message packet) { public A5_10_1C(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_1D extends A5_10 { public class A5_10_1D extends A5_10 {
public A5_10_1D(ERP1Message packet) { public A5_10_1D(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_1E extends A5_10 { public class A5_10_1E extends A5_10 {
public A5_10_1E(ERP1Message packet) { public A5_10_1E(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_1F extends A5_10 { public class A5_10_1F extends A5_10 {
public A5_10_1F(ERP1Message packet) { public A5_10_1F(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_20 extends A5_10 { public class A5_10_20 extends A5_10 {
public A5_10_20(ERP1Message packet) { public A5_10_20(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_21 extends A5_10 { public class A5_10_21 extends A5_10 {
public A5_10_21(ERP1Message packet) { public A5_10_21(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_22 extends A5_10 { public class A5_10_22 extends A5_10 {
public A5_10_22(ERP1Message packet) { public A5_10_22(ERP1Message packet) {

View File

@ -12,12 +12,14 @@
*/ */
package org.openhab.binding.enocean.internal.eep.A5_10; package org.openhab.binding.enocean.internal.eep.A5_10;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
/** /**
* *
* @author Daniel Weber - Initial contribution * @author Daniel Weber - Initial contribution
*/ */
@NonNullByDefault
public class A5_10_23 extends A5_10 { public class A5_10_23 extends A5_10 {
public A5_10_23(ERP1Message packet) { public A5_10_23(ERP1Message packet) {

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
import org.openhab.core.config.core.Configuration; import org.openhab.core.config.core.Configuration;
@ -29,6 +31,7 @@ import org.openhab.core.types.UnDefType;
* *
* @author Dominik Krickl-Vorreiter - Initial contribution * @author Dominik Krickl-Vorreiter - Initial contribution
*/ */
@NonNullByDefault
public class A5_11_03 extends _4BSMessage { public class A5_11_03 extends _4BSMessage {
public A5_11_03(ERP1Message packet) { public A5_11_03(ERP1Message packet) {
@ -36,7 +39,7 @@ public class A5_11_03 extends _4BSMessage {
} }
protected boolean isErrorState() { protected boolean isErrorState() {
byte db1 = getDB_1(); byte db1 = getDB1();
int state = (db1 >> 4) & 0x03; int state = (db1 >> 4) & 0x03;
@ -45,14 +48,14 @@ public class A5_11_03 extends _4BSMessage {
} }
protected State getPositionData() { protected State getPositionData() {
byte db1 = getDB_1(); byte db1 = getDB1();
boolean pvf = getBit(db1, 7); boolean pvf = getBit(db1, 7);
if (pvf) { if (pvf) {
byte db0 = getDB_0(); byte db0 = getDB0();
boolean motp = getBit(db0, 6); boolean motp = getBit(db0, 6);
int bsp = getDB_3Value(); int bsp = getDB3Value();
if ((bsp >= 0) && (bsp <= 100)) { if ((bsp >= 0) && (bsp <= 100)) {
return new PercentType(motp ? 100 - bsp : bsp); return new PercentType(motp ? 100 - bsp : bsp);
@ -63,11 +66,11 @@ public class A5_11_03 extends _4BSMessage {
} }
protected State getAngleData() { protected State getAngleData() {
byte db1 = getDB_1(); byte db1 = getDB1();
boolean avf = getBit(db1, 6); boolean avf = getBit(db1, 6);
if (avf) { if (avf) {
byte db2 = getDB_2(); byte db2 = getDB2();
boolean as = getBit(db2, 7); boolean as = getBit(db2, 7);
int an = (db2 & 0x7F) * 2; int an = (db2 & 0x7F) * 2;
@ -82,7 +85,7 @@ public class A5_11_03 extends _4BSMessage {
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
if (isErrorState()) { if (isErrorState()) {
return UnDefType.UNDEF; return UnDefType.UNDEF;
} }

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.eep.EEPHelper; import org.openhab.binding.enocean.internal.eep.EEPHelper;
import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.binding.enocean.internal.messages.ERP1Message;
@ -35,7 +37,7 @@ import org.slf4j.LoggerFactory;
* *
* @author Vincent Bakker - Initial contribution * @author Vincent Bakker - Initial contribution
*/ */
@NonNullByDefault
public class A5_11_04 extends _4BSMessage { public class A5_11_04 extends _4BSMessage {
private enum Error { private enum Error {
@ -64,14 +66,14 @@ public class A5_11_04 extends _4BSMessage {
NOT_SUPPORTED NOT_SUPPORTED
} }
private static Logger logger = LoggerFactory.getLogger(A5_11_04.class); private Logger logger = LoggerFactory.getLogger(A5_11_04.class);
public A5_11_04(ERP1Message packet) { public A5_11_04(ERP1Message packet) {
super(packet); super(packet);
} }
protected boolean isErrorState() { protected boolean isErrorState() {
byte db0 = getDB_0(); byte db0 = getDB0();
int state = (db0 >> 4) & 0x03; int state = (db0 >> 4) & 0x03;
@ -85,12 +87,12 @@ public class A5_11_04 extends _4BSMessage {
} }
protected ParameterMode getParameterMode() { protected ParameterMode getParameterMode() {
int pm = (getDB_0() >> 1) & 0x03; int pm = (getDB0() >> 1) & 0x03;
return ParameterMode.values()[pm]; return ParameterMode.values()[pm];
} }
protected EnergyUnit getEnergyUnit() { protected EnergyUnit getEnergyUnit() {
int unit = getDB_1(); int unit = getDB1();
if (unit < 8) { if (unit < 8) {
return EnergyUnit.values()[unit]; return EnergyUnit.values()[unit];
} }
@ -99,7 +101,7 @@ public class A5_11_04 extends _4BSMessage {
} }
protected State getLightingStatus() { protected State getLightingStatus() {
byte db0 = getDB_0(); byte db0 = getDB0();
boolean lightOn = getBit(db0, 0); boolean lightOn = getBit(db0, 0);
return lightOn ? OnOffType.ON : OnOffType.OFF; return lightOn ? OnOffType.ON : OnOffType.OFF;
@ -107,7 +109,7 @@ public class A5_11_04 extends _4BSMessage {
protected State getDimmerStatus() { protected State getDimmerStatus() {
if (getParameterMode() == ParameterMode.EIGHT_BIT_DIMMER_VALUE_AND_LAMP_OPERATING_HOURS) { if (getParameterMode() == ParameterMode.EIGHT_BIT_DIMMER_VALUE_AND_LAMP_OPERATING_HOURS) {
return new PercentType(getDB_3Value() * 100 / 255); return new PercentType(getDB3Value() * 100 / 255);
} }
return UnDefType.UNDEF; return UnDefType.UNDEF;
} }
@ -134,7 +136,7 @@ public class A5_11_04 extends _4BSMessage {
} }
return new QuantityType<>( return new QuantityType<>(
Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB_3(), getDB_2() }), 16) * factor, Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB3(), getDB2() }), 16) * factor,
Units.KILOWATT_HOUR); Units.KILOWATT_HOUR);
} }
@ -163,7 +165,7 @@ public class A5_11_04 extends _4BSMessage {
} }
return new QuantityType<>( return new QuantityType<>(
Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB_3(), getDB_2() }), 16) * factor, Units.WATT); Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB3(), getDB2() }), 16) * factor, Units.WATT);
} }
return UnDefType.UNDEF; return UnDefType.UNDEF;
@ -171,7 +173,7 @@ public class A5_11_04 extends _4BSMessage {
protected State getOperatingHours() { protected State getOperatingHours() {
if (getParameterMode() == ParameterMode.EIGHT_BIT_DIMMER_VALUE_AND_LAMP_OPERATING_HOURS) { if (getParameterMode() == ParameterMode.EIGHT_BIT_DIMMER_VALUE_AND_LAMP_OPERATING_HOURS) {
return new DecimalType(getDB_2Value() << 8 + getDB_1Value()); return new DecimalType(getDB2Value() << 8 + getDB1Value());
} }
return UnDefType.UNDEF; return UnDefType.UNDEF;
@ -179,7 +181,7 @@ public class A5_11_04 extends _4BSMessage {
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
if (isErrorState()) { if (isErrorState()) {
return UnDefType.UNDEF; return UnDefType.UNDEF;
} }

View File

@ -16,6 +16,8 @@ import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.function.Function; import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.enocean.internal.config.EnOceanChannelTariffInfoConfig; import org.openhab.binding.enocean.internal.config.EnOceanChannelTariffInfoConfig;
import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
import org.openhab.binding.enocean.internal.eep.EEPHelper; import org.openhab.binding.enocean.internal.eep.EEPHelper;
@ -31,6 +33,7 @@ import org.openhab.core.util.HexUtils;
* *
* @author Dominik Krickl-Vorreiter - Initial contribution * @author Dominik Krickl-Vorreiter - Initial contribution
*/ */
@NonNullByDefault
public abstract class A5_12 extends _4BSMessage { public abstract class A5_12 extends _4BSMessage {
public A5_12(ERP1Message packet) { public A5_12(ERP1Message packet) {
super(packet); super(packet);
@ -45,7 +48,7 @@ public abstract class A5_12 extends _4BSMessage {
} }
protected State getCumulativeValue() { protected State getCumulativeValue() {
byte db0 = getDB_0(); byte db0 = getDB0();
boolean dt = getBit(db0, 2); boolean dt = getBit(db0, 2);
if (!dt) { if (!dt) {
@ -70,8 +73,8 @@ public abstract class A5_12 extends _4BSMessage {
return UnDefType.UNDEF; return UnDefType.UNDEF;
} }
float cumulativeValue = Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB_3(), getDB_2(), getDB_1() }), float cumulativeValue = Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB3(), getDB2(), getDB1() }), 16)
16) * factor; * factor;
return calcCumulativeValue(cumulativeValue); return calcCumulativeValue(cumulativeValue);
} }
@ -79,7 +82,7 @@ public abstract class A5_12 extends _4BSMessage {
} }
protected State getCurrentValue() { protected State getCurrentValue() {
byte db0 = getDB_0(); byte db0 = getDB0();
boolean dt = getBit(db0, 2); boolean dt = getBit(db0, 2);
if (dt) { if (dt) {
@ -104,7 +107,7 @@ public abstract class A5_12 extends _4BSMessage {
return UnDefType.UNDEF; return UnDefType.UNDEF;
} }
float currentValue = Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB_3(), getDB_2(), getDB_1() }), 16) float currentValue = Long.parseLong(HexUtils.bytesToHex(new byte[] { getDB3(), getDB2(), getDB1() }), 16)
* factor; * factor;
return calcCurrentValue(currentValue); return calcCurrentValue(currentValue);
@ -114,13 +117,12 @@ public abstract class A5_12 extends _4BSMessage {
} }
protected int getTariffInfo() { protected int getTariffInfo() {
return ((getDB_0() >>> 4) & 0xff); return ((getDB0() >>> 4) & 0xff);
} }
@Override @Override
protected State convertToStateImpl(String channelId, String channelTypeId, protected State convertToStateImpl(String channelId, String channelTypeId,
Function<String, State> getCurrentStateFunc, Configuration config) { Function<String, @Nullable State> getCurrentStateFunc, Configuration config) {
EnOceanChannelTariffInfoConfig c = config.as(EnOceanChannelTariffInfoConfig.class); EnOceanChannelTariffInfoConfig c = config.as(EnOceanChannelTariffInfoConfig.class);
if (c.tariff != getTariffInfo()) { if (c.tariff != getTariffInfo()) {
return UnDefType.UNDEF; return UnDefType.UNDEF;

Some files were not shown because too many files have changed in this diff Show More