import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.bluetooth.discovery.BluetoothDiscoveryDevice;
import org.openhab.core.thing.ThingTypeUID;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author Connor Petty - Initial contribution
private final String label;
private final boolean supportsWarningBroadcast;
+ private final static Logger logger = LoggerFactory.getLogger(GoveeModel.class);
+
private GoveeModel(ThingTypeUID thingTypeUID, String label, boolean supportsWarningBroadcast) {
this.thingTypeUID = thingTypeUID;
this.label = label;
public static @Nullable GoveeModel getGoveeModel(BluetoothDiscoveryDevice device) {
String name = device.getName();
if (name != null) {
- if (name.startsWith("Govee") && name.length() >= 11) {
+ if ((name.startsWith("Govee") && name.length() >= 11) || name.startsWith("GVH")) {
String uname = name.toUpperCase();
for (GoveeModel model : GoveeModel.values()) {
if (uname.contains(model.name())) {
+ logger.debug("detected model {}", model);
return model;
}
}
}
}
+ logger.debug("Device {} is no Govee", name);
return null;
}
}
Assertions.assertEquals(GoveeModel.H5074, GoveeModel.getGoveeModel(new BluetoothDiscoveryDevice(mockDevice)));
}
+
+ @Test
+ void testGVH5102_77E9() {
+ MockBluetoothAdapter adapter = new MockBluetoothAdapter();
+ MockBluetoothDevice mockDevice = adapter.getDevice(TestUtils.randomAddress());
+ mockDevice.setName("GVH5102_77E9");
+
+ Assertions.assertEquals(GoveeModel.H5102, GoveeModel.getGoveeModel(new BluetoothDiscoveryDevice(mockDevice)));
+ }
}