*/
package org.openhab.binding.bluetooth.gattserial;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* @author Connor Petty - Initial Contribution
*
*/
+@NonNullByDefault
public interface MessageSupplier<M extends GattMessage> {
public M createMessage();
}
private CompletableFuture<@Nullable ?> createInitSettingsJob() {
-
logger.debug("Initializing Govee Hygrometer {} settings", address);
QuantityType<Temperature> temCali = config.getTemperatureCalibration();
private final String label;
private final boolean supportsWarningBroadcast;
- private final static Logger logger = LoggerFactory.getLogger(GoveeModel.class);
+ private static final Logger logger = LoggerFactory.getLogger(GoveeModel.class);
private GoveeModel(ThingTypeUID thingTypeUID, String label, boolean supportsWarningBroadcast) {
this.thingTypeUID = thingTypeUID;
return 3;
}
- private static short convertQuantity(QuantityType<Dimensionless> quantity) {
- var percentQuantity = quantity.toUnit(Units.PERCENT);
+ private static short convertQuantity(@Nullable QuantityType<Dimensionless> quantity) {
+ if (quantity == null) {
+ throw new IllegalArgumentException("Unable to convert quantity to percent");
+ }
+ QuantityType<Dimensionless> percentQuantity = quantity.toUnit(Units.PERCENT);
if (percentQuantity == null) {
throw new IllegalArgumentException("Unable to convert quantity to percent");
}
@Override
protected byte @Nullable [] getData() {
- if (settings == null) {
+ WarningSettingsDTO<Dimensionless> localSettins = settings;
+ if (localSettins == null || localSettins.min == null || localSettins.max == null) {
return null;
}
ByteBuffer buffer = ByteBuffer.allocate(5).order(ByteOrder.LITTLE_ENDIAN);
- buffer.put(settings.enableAlarm == OnOffType.ON ? (byte) 1 : 0);
- buffer.putShort(convertQuantity(settings.min));
- buffer.putShort(convertQuantity(settings.max));
+ buffer.put(localSettins.enableAlarm == OnOffType.ON ? (byte) 1 : 0);
+ buffer.putShort(convertQuantity(localSettins.min));
+ buffer.putShort(convertQuantity(localSettins.max));
return buffer.array();
}
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.openhab.binding.bluetooth.MockBluetoothAdapter;
import org.openhab.binding.bluetooth.MockBluetoothDevice;
}
@Test
- void testGovee_H5074_84DD() {
+ @DisplayName("testGovee_H5074_84DD")
+ void testGoveeH507484DD() {
MockBluetoothAdapter adapter = new MockBluetoothAdapter();
MockBluetoothDevice mockDevice = adapter.getDevice(TestUtils.randomAddress());
mockDevice.setName("Govee_H5074_84DD");
}
@Test
- void testGVH5102_77E9() {
+ @DisplayName("testGVH5102_77E9")
+ void testGVH510277E9() {
MockBluetoothAdapter adapter = new MockBluetoothAdapter();
MockBluetoothDevice mockDevice = adapter.getDevice(TestUtils.randomAddress());
mockDevice.setName("GVH5102_77E9");
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.bluetooth.govee.internal.GoveeModel;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
* @author Connor Petty - Initial contribution
*
*/
+@NonNullByDefault
public class ThingTypeTableGenerator {
public static void main(String[] args) throws Exception {
-
FileInputStream fileIS = new FileInputStream("src/main/resources/OH-INF/thing/thing-types.xml");
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
}
private static class ThingTypeData {
- private String id;
- private String label;
- private String description;
+ private @Nullable String id;
+ private @Nullable String label;
+ private @Nullable String description;
}
private static String[] toRow(ThingTypeData data) {
modelsForType(data.id).stream().map(model -> model.name()).collect(Collectors.joining(",")) };
}
- private static List<GoveeModel> modelsForType(String typeUID) {
+ private static List<GoveeModel> modelsForType(@Nullable String typeUID) {
return Arrays.stream(GoveeModel.values()).filter(model -> model.getThingTypeUID().getId().equals(typeUID))
.collect(Collectors.toList());
}