diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiConstants.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiConstants.java
index 4fe8b57d71..5dcddb4519 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiConstants.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiConstants.java
@@ -96,6 +96,7 @@ public final class HuaweiConstants {
public static final String HU_WATCHFIT4_NAME = "huawei watch fit 4-";
public static final String HU_WATCHFIT4PRO_NAME = "huawei watch fit 4 pro-";
public static final String HU_WATCHULTIMATE_NAME = "huawei watch ultimate-";
+ public static final String HU_WATCHULTIMATE2_NAME = "watch ultimate 2-";
public static final String HU_WATCH4_NAME = "huawei watch 4-";
public static final String HU_WATCH4PRO_NAME = "huawei watch 4 pro-";
public static final String HU_WATCH5_NAME = "huawei watch 5-";
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchultimate2/HuaweiWatchUltimate2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchultimate2/HuaweiWatchUltimate2Coordinator.java
new file mode 100644
index 0000000000..31c28643ea
--- /dev/null
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/huaweiwatchultimate2/HuaweiWatchUltimate2Coordinator.java
@@ -0,0 +1,54 @@
+/* Copyright (C) 2026 José Rebelo
+
+ This file is part of Gadgetbridge.
+
+ Gadgetbridge is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Gadgetbridge is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see . */
+package nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchultimate2;
+
+import androidx.annotation.NonNull;
+
+import java.util.regex.Pattern;
+
+import nodomain.freeyourgadget.gadgetbridge.R;
+import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiBRCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants;
+import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
+
+public class HuaweiWatchUltimate2Coordinator extends HuaweiBRCoordinator {
+ @Override
+ public boolean isExperimental() {
+ return true;
+ }
+
+ @Override
+ protected Pattern getSupportedDeviceName() {
+ return Pattern.compile("(" + HuaweiConstants.HU_WATCHULTIMATE2_NAME + ").*", Pattern.CASE_INSENSITIVE);
+ }
+
+ @Override
+ public int getDeviceNameResource() {
+ return R.string.devicetype_huawei_watchultimate2;
+ }
+
+ @Override
+ public boolean supportsUnicodeEmojis(@NonNull GBDevice device) {
+ // HarmonyOS watch
+ return true;
+ }
+
+ @Override
+ public DeviceKind getDeviceKind(@NonNull GBDevice device) {
+ return DeviceKind.WATCH;
+ }
+}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
index ec37b1a6bd..caa82c9e24 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
@@ -310,6 +310,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgtcyber.Hu
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgtrunner.HuaweiWatchGTRunnerCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgtrunner2.HuaweiWatchGTRunner2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchultimate.HuaweiWatchUltimateCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchultimate2.HuaweiWatchUltimate2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.id115.ID115Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.idasen.IdasenCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.itag.ITagCoordinator;
@@ -842,6 +843,7 @@ public enum DeviceType {
HUAWEIWATCHFIT3(HuaweiWatchFit3Coordinator.class),
HUAWEIWATCHFIT4PRO(HuaweiWatchFit4ProCoordinator.class),
HUAWEIWATCHULTIMATE(HuaweiWatchUltimateCoordinator.class),
+ HUAWEIWATCHULTIMATE2(HuaweiWatchUltimate2Coordinator.class),
HUAWEIWATCH3(HuaweiWatch3Coordinator.class),
HUAWEIWATCH4PRO(HuaweiWatch4ProCoordinator.class),
HUAWEIWATCH5(HuaweiWatch5Coordinator.class),
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index be9c4d96b8..d695aed871 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2182,6 +2182,7 @@
Huawei Watch Fit 3
Huawei Watch Fit 4 (Pro)
Huawei Watch Ultimate
+ Huawei Watch Ultimate 2
Huawei Watch 3 (Pro)
Huawei Watch 4 (Pro)
Huawei Watch 5
diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
index 234f693fb8..5e9e38b9e7 100644
--- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
+++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
@@ -180,6 +180,7 @@ public class AbstractDeviceCoordinatorTest extends TestBase {
put("Redmi Watch 2 Lite 31A5", DeviceType.REDMIWATCH2LITE); // #2637
put("honor Watch-7EE", DeviceType.HONORMAGICWATCH); // #5816
put("HUAWEI Band 6-A47", DeviceType.HUAWEIBAND6); // #2569
+ put("WATCH Ultimate 2-D96", DeviceType.HUAWEIWATCHULTIMATE2); // matrix
put("716", DeviceType.FITPRO);
put("LH716", DeviceType.FITPRO);
put("Sunset 6", DeviceType.FITPRO);