Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OPUS Led support #34

Open
kamushadenes opened this issue Jan 7, 2025 · 12 comments
Open

OPUS Led support #34

kamushadenes opened this issue Jan 7, 2025 · 12 comments

Comments

@kamushadenes
Copy link

kamushadenes commented Jan 7, 2025

Hello!

Thanks for this great project.

Description

I'm having a hard time controlling my ceiling fan, and would like to ask for some help.

It's a OPUS Led Basic (https://opusled.com.br/produto/air-basic-pt/), and it uses a bluetooth remote. I haven't managed to make it work with any app in the App Store, nor does its manual suggests that's possible.

The remote

The remote itself it stupidly simple, with a SoC and a clock generator at 24mhz, nothing else. SoC is http://www.hi-flying.com/hf1631.

IMG_0327

(The chinese writing is just the button function regarding the wind direction, nothing useful.)

72E27B28-71E1-49C8-8A90-73B7A32EFE8C_1_102_o

There is a pairing process that involves holding S1 for 3 seconds. In the back of the remote, it states that this serves as a code alignment, which makes me believe it's a rolling code.

C16CAF35-7C3A-4BE9-ABF7-E2D4464B7B29_1_102_o

I have considered designing some PCB to directly interface with this remote using some optocouplers, or perhaps more simply to interface with another HF1631 directly, as in my experience rolling codes suck, but I would like to avoid the trouble.

Any help here would be much appreciated!

What I tried

  • I tried all the different encodings but none worked.
  • Captured raw packets where also not recognized.
  • Replaying raw packets as-is doesn't work.

Extra resources

CI Datasheet

HF1631_2.4G蓝牙遥控器芯片用户手册_20230427.pdf

Captured packets

I noticed the codes alternated a bit each time they were pressed (especially in the third section), so there seems to be some sort of rolling code in place.

Those are the codes I captured. Notice it always seems to send two codes.

Desligar Tudo

[02:58:29][D][ble_adv_handler:300]: raw - 55.FF.2C.A8.83.FE.00.00.00.A9 (10)
[02:58:29][D][ble_adv_handler:300]: raw - 1E.FF.2C.A8.83.48.46.4B.4A.99.E9.AD.D5.50.3A.64.2E.FA.C5.FC.D5.DA.BC.3C.2F.10.11.12.13.14.15 (31)

Luz Liga / Desliga

[02:58:57][D][ble_adv_handler:300]: raw - 55.FF.37.A8.83.A6.02.00.00.5E (10)
[02:58:57][D][ble_adv_handler:300]: raw - 1E.FF.37.A8.83.48.46.4B.4A.7B.DA.A6.B3.72.58.82.C8.DC.94.14.E0.0B.AD.32.75.10.11.12.13.14.15 (31)

Vento pra Baixo

[03:00:00][D][ble_adv_handler:300]: raw - 55.FF.49.A8.83.D9.00.00.00.A1 (10)
[03:00:00][D][ble_adv_handler:300]: raw - 1E.FF.49.A8.83.48.46.4B.4A.9E.09.CB.D0.4D.35.5F.0E.FF.9B.47.21.06.EE.C3.BE.10.11.12.13.14.15 (31)

Vento no Meio

[03:00:29][D][ble_adv_handler:300]: raw - 55.FF.4D.A8.83.FE.00.00.00.CA (10)
[03:00:29][D][ble_adv_handler:300]: raw - 1E.FF.4D.A8.83.48.46.4B.4A.E4.53.19.9A.03.EF.19.7B.45.5E.EA.CA.3F.9B.0C.13.10.11.12.13.14.15 (31)

Vento pra Cima

[03:00:40][D][ble_adv_handler:300]: raw - 55.FF.4F.A8.83.FE.00.00.00.CC (10)
[03:00:40][D][ble_adv_handler:300]: raw - 1E.FF.4F.A8.83.48.46.4B.4A.B2.6B.45.8C.39.21.4B.49.13.71.17.FB.30.60.CA.C2.10.11.12.13.14.15 (31)

Desligar Ventilador

[03:01:13][D][ble_adv_handler:300]: raw - 1E.FF.57.A8.83.48.46.4B.4A.69.2C.F4.C5.80.6A.94.2D.CA.1D.69.5D.82.44.13.1F.10.11.12.13.14.15 (31)
[03:01:13][D][ble_adv_handler:300]: raw - 55.FF.57.A8.83.D1.00.00.00.A7 (10)

Velocidade 1

[03:01:46][D][ble_adv_handler:300]: raw - 55.FF.5C.A8.83.FE.00.00.00.D9 (10)
[03:01:46][D][ble_adv_handler:300]: raw - 1E.FF.5C.A8.83.48.46.4B.4A.1C.9C.62.52.CB.B7.E1.B3.7D.26.B1.92.77.53.6C.92.10.11.12.13.14.15 (31)

Velocidade 2

[03:02:04][D][ble_adv_handler:300]: raw - 55.FF.5E.A8.83.FE.00.00.00.DB (10)
[03:02:04][D][ble_adv_handler:300]: raw - 1E.FF.4C.00.07.19.01.0A.20.22.00.80.02.0F.44.6A.60.F8.88.72.85.CE.52.F8.34.F0.E2.B3.D3.DF.26 (31)

Velocidade 3

[03:02:20][D][ble_adv_handler:300]: raw - 55.FF.61.A8.83.D3.03.00.00.B6 (10)
[03:02:21][D][ble_adv_handler:300]: raw - 1E.FF.61.A8.83.48.46.4B.4A.8F.40.04.DF.5E.44.6E.09.F0.F2.68.87.AD.77.DB.BD.10.11.12.13.14.15 (31)

Velocidade 4

[03:02:33][D][ble_adv_handler:300]: raw - 55.FF.64.A8.83.D3.04.00.00.BA (10)
[03:02:33][D][ble_adv_handler:300]: raw - 1E.FF.64.A8.83.48.46.4B.4A.07.8B.4F.37.E6.CC.F6.B1.68.9F.1E.CF.00.DA.E0.82.10.11.12.13.14.15 (31)

Velocidade 5

[03:02:50][D][ble_adv_handler:300]: raw - 55.FF.66.A8.83.FE.00.00.00.E3 (10)
[03:02:50][D][ble_adv_handler:300]: raw - 1E.FF.66.A8.83.48.46.4B.4A.23.A9.6D.5B.CA.B0.DA.B8.84.AF.40.FB.F0.C2.7F.C4.10.11.12.13.14.15 (31) 

Velocidade 6

[03:03:25][D][ble_adv_handler:300]: raw - 55.FF.70.A8.83.FE.00.00.00.ED (10)
[03:03:25][D][ble_adv_handler:300]: raw - 1E.FF.70.A8.83.48.46.4B.4A.FF.9F.63.2F.EE.D4.FE.94.60.62.E7.38.3D.07.99.CC.10.11.12.13.14.15 (31)
@NicoIIT
Copy link
Contributor

NicoIIT commented Jan 9, 2025

Hello @kamushadenes,

From what I see from the Opus Led web site, the application they indicate to control their lamps is "Fan Lamp Pro", so you could give it a second try with this app directly from your phone, but I doubt it would work given that you already tried, and that the raw packets generated by the remote do not correspond to what "Fan Lamp Pro" app generates.

From the packets you provided, the remote is indeed sending 2 different messages on each action, this is kind of usual with the BLE ADV technology: each one is a 'variant' but only one effectively controls your device.

Variant 1:

  • Sample: 55.FF.2C.A8.83.FE.00.00.00.A9 (10)
  • NON Standard BLE ADV message, as the first byte is supposed to be the length of what follows, so it should be '09'...
  • 'FF' is the data type 'Other'
  • '2C' looks like a counter, it increases on each action
  • 'A8.83' is probably the provider code, identifying Opus Led, or the code identifying the remote
  • 'FE.00.00.00' is the controlling data, it does not look like it is encoded
  • 'A9' is a checksum (sum of all bytes & 0xFF)

Variant 2:

  • Sample: 1E.FF.2C.A8.83.48.46.4B.4A.99.E9.AD.D5.50.3A.64.2E.FA.C5.FC.D5.DA.BC.3C.2F.10.11.12.13.14.15 (31)
  • '1E': length 30
  • 'FF': data type 'Other'
  • '2C': counter
  • 'A8.83' provider code or remote code
  • '48.46.4B.4A' probably a unique identifier
  • '99.E9.AD.D5.50.3A.64.2E.FA.C5.FC.D5.DA.BC.3C.2F' the controlling data, encoded
  • '10.11.12.13.14.15' spare data, always the same, probably just to complete the standard BLE ADV max length

If your device is using variant 1, we should be able to easily extract an encoder and integrate it, but if it uses variant 2 it would be much more complex as we would need to decode the controlling data...

Anyway in order to confirm the first hypothesis above, I would need you to provide the packets of an exact same action, repeated several times, such as for instance 5 times the press on the first speed of the Fan, would it be possible to do so?

Thanks in advance!

@kamushadenes
Copy link
Author

@NicoIIT thank you for the thoughtful reply and detailed explanation.

This is me pressing speed 1 a bunch of times:

[12:33:52][D][ble_adv_handler:300]: raw - 55.FF.20.A8.83.D3.01.00.00.73 (10)
[12:33:52][D][ble_adv_handler:300]: raw - 1E.FF.20.A8.83.48.46.4B.4A.07.47.0B.37.E6.CC.F6.B1.68.9F.1A.CA.00.DA.B9.9D.10.11.12.13.14.15 (31)
[12:33:53][D][ble_adv_handler:300]: raw - 55.FF.21.A8.83.FE.00.00.00.9E (10)
[12:33:53][D][ble_adv_handler:300]: raw - 1E.FF.21.A8.83.48.46.4B.4A.0A.85.47.64.E1.C9.F3.A1.6B.CD.CD.EF.D4.D4.29.5F.10.11.12.13.14.15 (31)
[12:33:54][D][ble_adv_handler:300]: raw - 1E.FF.22.A8.83.48.46.4B.4A.23.6D.31.5B.CA.B0.DA.95.84.AF.0C.FA.F0.C2.A5.06.10.11.12.13.14.15 (31)
[12:33:54][D][ble_adv_handler:300]: raw - 55.FF.22.A8.83.D3.01.00.00.75 (10)
[12:33:55][D][ble_adv_handler:300]: raw - 1E.FF.23.A8.83.48.46.4B.4A.FF.52.16.2F.EE.D4.FE.94.60.A4.18.F6.FB.C5.1B.E8.10.11.12.13.14.15 (31)
[12:33:55][D][ble_adv_handler:300]: raw - 55.FF.23.A8.83.FE.00.00.00.A0 (10)
[12:33:55][D][ble_adv_handler:300]: raw - 55.FF.24.A8.83.D3.01.00.00.77 (10)
[12:33:55][D][ble_adv_handler:300]: raw - 1E.FF.24.A8.83.48.46.4B.4A.E1.A9.6D.9D.08.F2.1C.53.42.EA.1B.BD.B1.17.56.BC.10.11.12.13.14.15 (31)
[12:33:56][D][ble_adv_handler:300]: raw - 55.FF.25.A8.83.FE.00.00.00.A2 (10)
[12:33:56][D][ble_adv_handler:300]: raw - 1E.FF.25.A8.83.48.46.4B.4A.8F.04.C8.DF.5E.44.6E.24.F0.F2.B4.88.AD.77.04.F4.10.11.12.13.14.15 (31)
[12:33:57][D][ble_adv_handler:300]: raw - 1E.FF.26.A8.83.48.46.4B.4A.B2.98.5E.8C.39.21.4B.64.13.6D.3C.1E.34.74.59.0C.10.11.12.13.14.15 (31)
[12:33:57][D][ble_adv_handler:300]: raw - 55.FF.26.A8.83.D3.01.00.00.79 (10)
[12:33:58][D][ble_adv_handler:300]: raw - 1E.FF.27.A8.83.48.46.4B.4A.E4.B1.6F.9A.03.EF.19.7B.45.1C.DA.0C.81.DD.C9.C0.10.11.12.13.14.15 (31)
[12:33:58][D][ble_adv_handler:300]: raw - 55.FF.27.A8.83.FE.00.00.00.A4 (10)
[12:33:59][D][ble_adv_handler:300]: raw - 55.FF.28.A8.83.D3.01.00.00.7B (10)
[12:33:59][D][ble_adv_handler:300]: raw - 1E.FF.28.A8.83.48.46.4B.4A.7B.CB.8F.B3.72.58.82.3D.DC.E1.D8.B8.BE.80.A7.5A.10.11.12.13.14.15 (31)
[12:34:00][D][ble_adv_handler:300]: raw - 55.FF.29.A8.83.FE.00.00.00.A6 (10)
[12:34:00][D][ble_adv_handler:300]: raw - 1E.FF.29.A8.83.48.46.4B.4A.1C.67.2D.52.CB.B7.E1.B3.7D.2B.57.8D.72.5E.B3.C5.10.11.12.13.14.15 (31)
[12:34:00][D][ble_adv_handler:300]: raw - 1E.FF.2A.A8.83.48.46.4B.4A.78.CA.90.B6.6F.5B.85.3A.D9.26.7F.53.77.5B.E3.8B.10.11.12.13.14.15 (31)
[12:34:00][D][ble_adv_handler:300]: raw - 55.FF.2A.A8.83.D3.01.00.00.7D (10)
[12:34:01][D][ble_adv_handler:300]: raw - 55.FF.2B.A8.83.FE.00.00.00.A8 (10)
[12:34:01][D][ble_adv_handler:300]: raw - 1E.FF.2B.A8.83.48.46.4B.4A.9E.EB.AD.D0.4D.35.5F.35.FF.A8.D6.10.F5.D1.A9.90.10.11.12.13.14.15 (31)
[12:34:02][D][ble_adv_handler:300]: raw - 55.FF.2C.A8.83.D3.01.00.00.7F (10)
[12:34:03][D][ble_adv_handler:300]: raw - 1E.FF.2C.A8.83.48.46.4B.4A.99.E9.AD.D5.50.3A.64.1B.FA.C5.FC.D4.DA.BC.76.67.10.11.12.13.14.15 (31)
[12:34:03][D][ble_adv_handler:300]: raw - 02.01.1A.1B.FF.4C.00.0C.0E.00.7C.54.67.29.46.AE.5D.35.33.02.04.DC.CF.10.06.4C.1D.B8.06.F2.18 (31)
[12:34:04][D][ble_adv_handler:300]: raw - 55.FF.2D.A8.83.FE.00.00.00.AA (10)
[12:34:08][D][ble_adv_handler:300]: raw - 1E.FF.2D.A8.83.48.46.4B.4A.51.3E.06.2D.98.82.AC.E6.B2.F0.B6.B6.AB.E1.62.AB.10.11.12.13.14.15 (31)
[12:34:08][D][ble_adv_handler:300]: raw - 55.FF.2E.A8.83.D3.01.00.00.81 (10)
[12:34:08][D][ble_adv_handler:300]: raw - 1E.FF.2E.A8.83.48.46.4B.4A.69.D7.9B.C5.80.6A.94.2B.CA.60.37.17.3B.01.77.3A.10.11.12.13.14.15 (31)
[12:34:08][D][ble_adv_handler:300]: raw - 55.FF.2F.A8.83.FE.00.00.00.AC (10)
[12:34:08][D][ble_adv_handler:300]: raw - 1E.FF.2F.A8.83.48.46.4B.4A.07.56.1A.37.E6.CC.F6.9C.68.32.3A.B8.6D.87.F2.6D.10.11.12.13.14.15 (31)

@kamushadenes
Copy link
Author

This is speed 2, just for comparison:

[12:36:24][D][ble_adv_handler:300]: raw - 55.FF.30.A8.83.D3.02.00.00.84 (10)
[12:36:24][D][ble_adv_handler:300]: raw - 1E.FF.30.A8.83.48.46.4B.4A.16.66.2C.68.D5.BD.E7.80.77.C1.CA.ED.E0.D8.C9.EA.10.11.12.13.14.15 (31)
[12:36:25][D][ble_adv_handler:300]: raw - 55.FF.31.A8.83.FE.00.00.00.AE (10)
[12:36:25][D][ble_adv_handler:300]: raw - 1E.FF.31.A8.83.48.46.4B.4A.23.7C.40.5B.CA.B0.DA.B8.84.C3.E5.E7.DC.BE.2F.04.10.11.12.13.14.15 (31)
[12:36:25][D][ble_adv_handler:300]: raw - 1A.FF.4C.00.12.02.22.03.07.11.06.86.21.E1.C9.69.CD.C9.C9.B8.AD.9F.E4.49.71.0A.FE (27)
[12:36:26][D][ble_adv_handler:300]: raw - 1E.FF.32.A8.83.48.46.4B.4A.0A.74.3A.64.E1.C9.F3.8C.6B.B1.1C.C5.F0.B0.39.4C.10.11.12.13.14.15 (31)
[12:36:26][D][ble_adv_handler:300]: raw - 55.FF.32.A8.83.D3.02.00.00.86 (10)
[12:36:26][D][ble_adv_handler:300]: raw - 1E.16.F3.FE.4A.17.23.55.44.49.35.11.32.CB.FF.BD.95.91.15.8E.7C.5E.0C.E8.86.43.6B.65.8E.B9.1D (31)
[12:36:26][D][ble_adv_handler:300]: raw - 55.FF.33.A8.83.FE.00.00.00.B0 (10)
[12:36:26][D][ble_adv_handler:300]: raw - 1E.FF.33.A8.83.48.46.4B.4A.E1.B8.80.9D.08.F2.1C.76.42.F1.B9.B9.AE.00.67.50.10.11.12.13.14.15 (31)
[12:36:27][D][ble_adv_handler:300]: raw - 1E.FF.34.A8.83.48.46.4B.4A.FF.63.27.2F.EE.D4.FE.B9.60.62.53.36.3D.07.71.4A.10.11.12.13.14.15 (31)
[12:36:27][D][ble_adv_handler:300]: raw - 55.FF.34.A8.83.D3.02.00.00.88 (10)
[12:36:28][D][ble_adv_handler:300]: raw - 55.FF.35.A8.83.FE.00.00.00.B2 (10)
[12:36:28][D][ble_adv_handler:300]: raw - 1E.FF.35.A8.83.48.46.4B.4A.B2.89.4B.8C.39.21.4B.49.13.FD.D9.8F.A4.E4.0C.E1.10.11.12.13.14.15 (31)
[12:36:28][D][ble_adv_handler:300]: raw - 55.FF.36.A8.83.D3.02.00.00.8A (10)
[12:36:28][D][ble_adv_handler:300]: raw - 1E.FF.36.A8.83.48.46.4B.4A.8F.F5.B9.DF.5E.44.6E.09.F0.E3.94.D9.BC.86.2B.11.10.11.12.13.14.15 (31)
[12:36:29][D][ble_adv_handler:300]: raw - 1E.FF.37.A8.83.48.46.4B.4A.7B.DA.A6.B3.72.58.82.10.DC.94.14.C6.0B.AD.C8.D2.10.11.12.13.14.15 (31)
[12:36:29][D][ble_adv_handler:300]: raw - 55.FF.37.A8.83.FE.00.00.00.B4 (10)
[12:36:30][D][ble_adv_handler:300]: raw - 1E.FF.38.A8.83.48.46.4B.4A.E4.C0.86.9A.03.EF.19.4E.45.63.20.CB.3A.96.D5.0E.10.11.12.13.14.15 (31)
[12:36:30][D][ble_adv_handler:300]: raw - 55.FF.38.A8.83.D3.02.00.00.8C (10)
[12:36:30][D][ble_adv_handler:300]: raw - 1E.FF.39.A8.83.48.46.4B.4A.78.DB.A1.B6.6F.5B.85.0F.D9.DE.A6.BA.BF.83.F0.58.10.11.12.13.14.15 (31)
[12:36:30][D][ble_adv_handler:300]: raw - 55.FF.39.A8.83.FE.00.00.00.B6 (10)
[12:36:31][D][ble_adv_handler:300]: raw - 55.FF.3A.A8.83.D3.02.00.00.8E (10)
[12:36:31][D][ble_adv_handler:300]: raw - 1E.FF.3A.A8.83.48.46.4B.4A.1C.76.3C.52.CB.B7.E1.96.7D.26.67.8C.77.53.C1.8A.10.11.12.13.14.15 (31)
[12:36:31][D][ble_adv_handler:300]: raw - 55.FF.3B.A8.83.FE.00.00.00.B8 (10)
[12:36:31][D][ble_adv_handler:300]: raw - 02.01.1A.1B.FF.4C.00.0C.0E.00.87.54.41.8A.38.FC.F9.DE.BC.AA.93.A0.26.10.06.40.1D.B8.06.F2.58 (31)
[12:36:31][D][ble_adv_handler:300]: raw - 1E.FF.3B.A8.83.48.46.4B.4A.99.F8.C0.D5.50.3A.64.2E.FA.47.6F.73.58.3A.C4.2E.10.11.12.13.14.15 (31)
[12:36:32][D][ble_adv_handler:300]: raw - 55.FF.3C.A8.83.D3.02.00.00.90 (10)
[12:36:32][D][ble_adv_handler:300]: raw - 1E.FF.3C.A8.83.48.46.4B.4A.9E.FA.C0.D0.4D.35.5F.18.FF.CB.F4.EF.D6.BE.28.E8.10.11.12.13.14.15 (31)

@NicoIIT
Copy link
Contributor

NicoIIT commented Jan 9, 2025

Thanks @kamushadenes !
So it confirms what has been analyzed for both variants, and I suppose the first push on a button starts the fan at the given speed, and that the next push stops it?

This would give:
Controlling data for Speed 1 start (v1): D3.01.00.00
Controlling data for Speed N start (v1): D3.0N.00.00
Controlling data for Fan Stop (v1): FE.00.00.00

Knowing that may you try to use the raw injection service to inject the following message?: 55.FF.01.A8.83.D3.02.00.00.55
If it switches on your Fan with speed 2, we can do something 😃. Please note that if it works, it would only work ONCE, so be sure your fan is stopped and that everything is ready before trying it !

@kamushadenes
Copy link
Author

From my tests, pressing the button again doesn't change anything. The only button that does "loop" is the one I labeled "Luz Liga / Desliga".

I'll test and report back in a few minutes.

@kamushadenes
Copy link
Author

It worked! That's awesome.

I had to try a few times but this might simply be related to the duration not being correct.

@NicoIIT
Copy link
Contributor

NicoIIT commented Jan 9, 2025

From my tests, pressing the button again doesn't change anything. The only button that does "loop" is the one I labeled "Luz Liga / Desliga".

Hum this would mean it is the remote itself that is sending 2 messages one after the other for each action, with 1 second delay:
[12:36:24][D][ble_adv_handler:300]: raw - 55.FF.30.A8.83.D3.02.00.00.84 (10) => the effective action
[12:36:25][D][ble_adv_handler:300]: raw - 55.FF.31.A8.83.FE.00.00.00.AE (10) => a kind of 'end of action', with code FE.00.00.00

@kamushadenes
Copy link
Author

Makes sense, some of the codes above are incorrect them.

I need to run some errands, but I'll send the correct ones as soon as possible.

I assume that doesn't block you, right?

Thanks for all the help so far.

@NicoIIT
Copy link
Contributor

NicoIIT commented Jan 9, 2025

I assume that doesn't block you, right?

Well the framework is designed to send only one message per action so it would mean a lot of changes to adapt it at the end.

But anyway you need to gather the codes so once done you should be able to setup a light / fan directly in Home Assistant using the raw injection service, as defined here, modifying the actions done to send 2 messages with a 1 second delay.

@NicoIIT
Copy link
Contributor

NicoIIT commented Jan 10, 2025

@kamushadenes , as per latest discussions here, it seems your remote is issuing commands very similar to the ZhiMeiDengKong app, so your device can probably be controlled by this phone app.
The good news is that the app can be reversed engineered without major difficulties as it does not protect its algo, so it should be possible to add it with a few hours (days?) of work.

@kamushadenes
Copy link
Author

kamushadenes commented Jan 10, 2025

Hi! Sorry for not replying yet, it’s very busy here in the moment.

I tested this app and it works!

It’s necessary to do the pairing process in the first 5 seconds of the fan receiving energy from mains, but after that, everything works.

Also, only the second tab works (fan light).

IMG_0339

The light colors don’t work (the fan doesn’t support it), but by turning it on and off with the “switch” button, it toggles between it’s 3 colors, same as with the remote.

How did you find that?

@NicoIIT
Copy link
Contributor

NicoIIT commented Jan 12, 2025

@kamushadenes, I added the support of 'zhimei' app to my repo:

external_components:
  - source: github://NicoIIT/esphome-components

I am not sure it would work but you can try to pair with it, encoding: zhimei.

Note that you will need to migrate the Pair button if you defined one, but the migration is indicated in the error raised at compile time.

You should also setup the option separate_dim_cct: true at light level.

Hope it will work !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants