@@ -103,7 +103,10 @@ class DeviceCategory(StrEnum):
103103 BGL = "bgl"
104104 """Wall-hung boiler"""
105105 BH = "bh"
106- """Smart kettle"""
106+ """Smart kettle
107+
108+ https://developer.tuya.com/en/docs/iot/fbh?id=K9gf484m21yq7
109+ """
107110 BX = "bx"
108111 """Refrigerator"""
109112 BXX = "bxx"
@@ -163,34 +166,58 @@ class DeviceCategory(StrEnum):
163166 https://developer.tuya.com/en/docs/iot/f?id=Kacpeobojffop
164167 """
165168 DC = "dc"
166- """String lights"""
169+ """String lights
170+
171+ # https://developer.tuya.com/en/docs/iot/dc?id=Kaof7taxmvadu
172+ """
167173 DCL = "dcl"
168174 """Induction cooker"""
169175 DD = "dd"
170- """Strip lights"""
176+ """Strip lights
177+
178+ https://developer.tuya.com/en/docs/iot/dd?id=Kaof804aibg2l
179+ """
171180 DGNBJ = "dgnbj"
172181 """Multi-functional alarm
173182
174183 https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
175184 """
176185 DJ = "dj"
177- """Light"""
186+ """Light
187+
188+ https://developer.tuya.com/en/docs/iot/categorydj?id=Kaiuyzy3eheyy
189+ """
178190 DLQ = "dlq"
179191 """Circuit breaker"""
180192 DR = "dr"
181- """Electric blanket"""
193+ """Electric blanket
194+
195+ https://developer.tuya.com/en/docs/iot/categorydr?id=Kaiuz22dyc66p
196+ """
182197 DS = "ds"
183198 """TV set"""
184199 FS = "fs"
185- """Fan"""
200+ """Fan
201+
202+ https://developer.tuya.com/en/docs/iot/categoryfs?id=Kaiuz1xweel1c
203+ """
186204 FSD = "fsd"
187- """Ceiling fan light"""
205+ """Ceiling fan light
206+
207+ https://developer.tuya.com/en/docs/iot/fsd?id=Kaof8eiei4c2v
208+ """
188209 FWD = "fwd"
189- """Ambiance light"""
210+ """Ambiance light
211+
212+ https://developer.tuya.com/en/docs/iot/ambient-light?id=Kaiuz06amhe6g
213+ """
190214 GGQ = "ggq"
191215 """Irrigator"""
192216 GYD = "gyd"
193- """Motion sensor light"""
217+ """Motion sensor light
218+
219+ https://developer.tuya.com/en/docs/iot/gyd?id=Kaof8a8hycfmy
220+ """
194221 GYMS = "gyms"
195222 """Business lock"""
196223 HOTELMS = "hotelms"
@@ -203,7 +230,10 @@ class DeviceCategory(StrEnum):
203230 JS = "js"
204231 """Water purifier"""
205232 JSQ = "jsq"
206- """Humidifier"""
233+ """Humidifier
234+
235+ https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
236+ """
207237 JTMSBH = "jtmsbh"
208238 """Smart lock (keep alive)"""
209239 JTMSPRO = "jtmspro"
@@ -214,11 +244,20 @@ class DeviceCategory(StrEnum):
214244 https://developer.tuya.com/en/docs/iot/categoryjwbj?id=Kaiuz40u98lkm
215245 """
216246 KFJ = "kfj"
217- """Coffee maker"""
247+ """Coffee maker
248+
249+ https://developer.tuya.com/en/docs/iot/categorykfj?id=Kaiuz2p12pc7f
250+ """
218251 KG = "kg"
219- """Switch"""
252+ """Switch
253+
254+ https://developer.tuya.com/en/docs/iot/s?id=K9gf7o5prgf7s
255+ """
220256 KJ = "kj"
221- """Air purifier"""
257+ """Air purifier
258+
259+ https://developer.tuya.com/en/docs/iot/f?id=K9gf46h2s6dzm
260+ """
222261 KQZG = "kqzg"
223262 """Air fryer"""
224263 KT = "kt"
@@ -270,13 +309,19 @@ class DeviceCategory(StrEnum):
270309 MSP = "msp"
271310 """Cat toilet"""
272311 MZJ = "mzj"
273- """Sous vide cooker"""
312+ """Sous vide cooker
313+
314+ https://developer.tuya.com/en/docs/iot/categorymzj?id=Kaiuz2vy130ux
315+ """
274316 NNQ = "nnq"
275317 """Bottle warmer"""
276318 NTQ = "ntq"
277319 """HVAC"""
278320 PC = "pc"
279- """Power strip"""
321+ """Power strip
322+
323+ https://developer.tuya.com/en/docs/iot/s?id=K9gf7o5prgf7s
324+ """
280325 PHOTOLOCK = "photolock"
281326 """Audio and video lock"""
282327 PIR = "pir"
@@ -292,7 +337,7 @@ class DeviceCategory(StrEnum):
292337 QN = "qn"
293338 """Heater
294339
295- https://developer.tuya.com/en/docs/iot/f ?id=K9gf46epy4j82
340+ https://developer.tuya.com/en/docs/iot/categoryqn ?id=Kaiuz18kih0sm
296341 """
297342 RQBJ = "rqbj"
298343 """Gas alarm
@@ -331,22 +376,34 @@ class DeviceCategory(StrEnum):
331376 SP = "sp"
332377 """Smart camera
333378
334- https://developer.tuya.com/en/docs/iot/categorysgbj ?id=Kaiuz37tlpbnu
379+ https://developer.tuya.com/en/docs/iot/categorysp ?id=Kaiuz35leyo12
335380 """
336381 SZ = "sz"
337- """Smart indoor garden"""
382+ """Smart indoor garden
383+
384+ https://developer.tuya.com/en/docs/iot/categorysz?id=Kaiuz4e6h7up0
385+ """
338386 TGKG = "tgkg"
339- """Dimmer switch"""
387+ """Dimmer switch
388+
389+ https://developer.tuya.com/en/docs/iot/categorytgkg?id=Kaiuz0ktx7m0o
390+ """
340391 TGQ = "tgq"
341- """Dimmer"""
392+ """Dimmer
393+
394+ https://developer.tuya.com/en/docs/iot/categorytgkg?id=Kaiuz0ktx7m0o
395+ """
342396 TNQ = "tnq"
343397 """Smart milk kettle"""
344398 TRACKER = "tracker"
345399 """Tracker"""
346400 TS = "ts"
347401 """Smart jump rope"""
348402 TYNDJ = "tyndj"
349- """Solar light"""
403+ """Solar light
404+
405+ https://developer.tuya.com/en/docs/iot/tynd?id=Kaof8j02e1t98
406+ """
350407 TYY = "tyy"
351408 """Projector"""
352409 TZC1 = "tzc1"
@@ -364,7 +421,10 @@ class DeviceCategory(StrEnum):
364421 https://developer.tuya.com/en/docs/iot/categorywsdcg?id=Kaiuz3hinij34
365422 """
366423 XDD = "xdd"
367- """Ceiling light"""
424+ """Ceiling light
425+
426+ https://developer.tuya.com/en/docs/iot/ceiling-light?id=Kaiuz03xxfc4r
427+ """
368428 XFJ = "xfj"
369429 """Ventilation system"""
370430 XXJ = "xxj"
@@ -376,7 +436,10 @@ class DeviceCategory(StrEnum):
376436 YG = "yg"
377437 """Bathtub"""
378438 YKQ = "ykq"
379- """Remote control"""
439+ """Remote control
440+
441+ https://developer.tuya.com/en/docs/iot/ykq?id=Kaof8ljn81aov
442+ """
380443 YLCG = "ylcg"
381444 """Pressure sensor
382445
@@ -402,22 +465,65 @@ class DeviceCategory(StrEnum):
402465 """Smart pill box"""
403466
404467 # Undocumented
468+ BZYD = "bzyd"
469+ """White noise machine (undocumented)"""
470+ CWJWQ = "cwjwq"
471+ """Smart Odor Eliminator-Pro (undocumented)
472+
473+ see https://github.com/orgs/home-assistant/discussions/79
474+ """
405475 DGHSXJ = "dghsxj"
406476 """Smart Camera - Low power consumption camera (undocumented)
407477
408478 see https://github.com/home-assistant/core/issues/132844
409479 """
480+ DSD = "dsd"
481+ """Filament Light
482+
483+ Based on data from https://github.com/home-assistant/core/issues/106703
484+ Product category mentioned in https://developer.tuya.com/en/docs/iot/oemapp-light?id=Kb77kja5woao6
485+ As at 30/12/23 not documented in https://developer.tuya.com/en/docs/iot/lighting?id=Kaiuyzxq30wmc
486+ """
487+ FSKG = "fskg"
488+ """Fan wall switch (undocumented)"""
410489 HXD = "hxd"
411490 """Wake Up Light II (undocumented)"""
412491 JDCLJQR = "jdcljqr"
413492 """Curtain Robot (undocumented)"""
414493 JQBJ = "jqbj"
415494 """Formaldehyde Detector (undocumented)"""
495+ KS = "ks"
496+ """Tower fan (undocumented)
497+
498+ See https://github.com/orgs/home-assistant/discussions/329
499+ """
500+ MBD = "mbd"
501+ """Unknown light product
502+
503+ Found as VECINO RGBW as provided by diagnostics
504+ """
505+ QJDCZ = "qjdcz"
506+ """ Unknown product with light capabilities
507+
508+ Found in some diffusers, plugs and PIR flood lights
509+ """
416510 QXJ = "qxj"
417511 """Temperature and Humidity Sensor with External Probe (undocumented)
418512
419513 see https://github.com/home-assistant/core/issues/136472
420514 """
515+ SFKZQ = "sfkzq"
516+ """Smart Water Timer (undocumented)"""
517+ SJZ = "sjz"
518+ """Electric desk (undocumented)"""
519+ SZJQR = "szjqr"
520+ """Fingerbot (undocumented)"""
521+ SWTZ = "swtz"
522+ """Cooking thermometer (undocumented)"""
523+ TDQ = "tdq"
524+ """Dimmer (undocumented)"""
525+ TYD = "tyd"
526+ """Outdoor flood light (undocumented)"""
421527 VOC = "voc"
422528 """Volatile Organic Compound Sensor (undocumented)"""
423529 WG2 = "wg2" # Documented, but not in official list
@@ -427,6 +533,20 @@ class DeviceCategory(StrEnum):
427533 """
428534 WKF = "wkf"
429535 """Thermostatic Radiator Valve (undocumented)"""
536+ WXKG = "wxkg" # Documented, but not in official list
537+ """Wireless Switch
538+
539+ https://developer.tuya.com/en/docs/iot/s?id=Kbeoa9fkv6brp
540+ """
541+ XNYJCN = "xnyjcn"
542+ """Micro Storage Inverter
543+
544+ Energy storage and solar PV inverter system with monitoring capabilities
545+ """
546+ YWCGQ = "ywcgq"
547+ """Tank Level Sensor (undocumented)"""
548+ ZNRB = "znrb"
549+ """Pool HeatPump"""
430550
431551
432552class DPCode (StrEnum ):
0 commit comments