friedrich_uct08b10a_airconditioner 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520
  1. name: Air Conditioner
  2. products:
  3. - id: jvnwkkvvshk3go8f
  4. # https://www.friedrich.com/professional/products/uni-fit
  5. # NB: Tuya calls this "Friedrich Window Unit" but these are through-the-wall units
  6. name: Friedrich Uni-Fit Through-the-Wall Air Conditioner (Model UCT08B10A)
  7. # Even though the latest firmware for UCT08B10A exposes tons of DPs (very similar to Fisher Summer Air Conditioner)
  8. # after testing vast majority of them are unsupported. This unit is much closer to the other Friedrich Air Conditioners
  9. # in terms of actual capabilities but it's still different enough to warrant a separate yaml.
  10. # Note: we are forced to add all the DPs in order for the YAML configuration to be identified even though most of them
  11. # need to be made invisible and are not used by the hardware of the actual air conditioner.
  12. primary_entity:
  13. entity: climate
  14. dps:
  15. - id: 1
  16. type: boolean
  17. name: hvac_mode
  18. mapping:
  19. - dps_val: false
  20. value: "off"
  21. - dps_val: true
  22. constraint: mode
  23. conditions:
  24. - dps_val: cold
  25. value: cool
  26. - dps_val: wet
  27. value: dry
  28. - dps_val: wind
  29. value: fan_only
  30. - dps_val: auto
  31. value: auto
  32. - dps_val: hot
  33. value: heat
  34. hidden: true
  35. - id: 3
  36. type: integer
  37. name: current_temperature_in_c
  38. optional: true
  39. unit: C
  40. - id: 23
  41. name: current_temperature
  42. type: integer
  43. optional: true
  44. hidden: true
  45. range:
  46. min: -20
  47. max: 100
  48. - id: 24
  49. type: integer
  50. name: temperature
  51. optional: true
  52. unit: F
  53. range:
  54. min: 690
  55. max: 890
  56. mapping:
  57. - scale: 10
  58. step: 10
  59. - id: 2
  60. name: temperature_in_c
  61. type: integer
  62. optional: true
  63. range:
  64. min: 205
  65. max: 317
  66. mapping:
  67. - scale: 10
  68. step: 5
  69. unit: C
  70. - id: 4
  71. type: string
  72. name: mode
  73. hidden: true
  74. - id: 5
  75. name: fan_mode
  76. type: string
  77. mapping:
  78. # the unit only truly supports 4 speeds: low, med, high, auto
  79. - dps_val: auto
  80. value: auto
  81. - dps_val: low
  82. value: low
  83. - dps_val: mid
  84. value: medium
  85. - dps_val: high
  86. value: high
  87. # the below are all duplicates of some of the above and don't change air speed
  88. - dps_val: mute
  89. value: quiet
  90. optional: true
  91. hidden: true
  92. - dps_val: mid_low
  93. value: medlow
  94. optional: true
  95. hidden: true
  96. - dps_val: mid_high
  97. value: medhigh
  98. optional: true
  99. hidden: true
  100. - dps_val: strong
  101. value: strong
  102. optional: true
  103. hidden: true
  104. - id: 123
  105. name: preset_mode
  106. # Tuya IOT dev says this is "bool" but the values aren't boolean
  107. type: string
  108. mapping:
  109. - dps_val: "0018"
  110. value: comfort
  111. - dps_val: "0019"
  112. value: eco
  113. - dps_val: null
  114. value: comfort
  115. hidden: true
  116. - id: 128
  117. name: style
  118. type: string
  119. mapping:
  120. - dps_val: "0"
  121. value: wall
  122. - dps_val: "1"
  123. value: floor
  124. - dps_val: "2"
  125. value: missing mapping
  126. - dps_val: "3"
  127. value: through-the-wall
  128. - id: 8
  129. name: legacy_preset_mode
  130. type: boolean
  131. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  132. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  133. hidden: true
  134. optional: true
  135. mapping:
  136. - dps_val: true
  137. value: eco
  138. - dps_val: false
  139. value: comfort
  140. - dps_val: null
  141. value: comfort
  142. hidden: true
  143. - id: 18
  144. name: unsupported_current_humidity
  145. type: integer
  146. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  147. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  148. hidden: true
  149. optional: true
  150. - id: 101
  151. name: sleep_legacy_unreported
  152. type: integer
  153. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  154. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  155. hidden: true
  156. optional: true
  157. - id: 102
  158. name: temp_conversion_unit_legacy
  159. type: boolean
  160. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  161. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  162. hidden: true
  163. optional: true
  164. mapping:
  165. - dps_val: true
  166. value: "°F"
  167. - dps_val: false
  168. value: "°C"
  169. - id: 110
  170. name: hswing_available
  171. type: bitfield
  172. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  173. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  174. hidden: true
  175. optional: true
  176. mapping:
  177. - dps_val: 32
  178. value: true
  179. - value: false
  180. - id: 113
  181. name: option
  182. type: string
  183. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  184. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  185. hidden: true
  186. optional: true
  187. mapping:
  188. - dps_val: "0"
  189. value: None
  190. default: true
  191. - dps_val: "1"
  192. value: Upper and lower
  193. - dps_val: "2"
  194. value: Upper
  195. - dps_val: "3"
  196. value: Lower
  197. - id: 114
  198. name: option
  199. type: string
  200. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  201. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  202. hidden: true
  203. optional: true
  204. mapping:
  205. - dps_val: "0"
  206. value: "Off"
  207. default: true
  208. - dps_val: "1"
  209. value: Left and Right
  210. - dps_val: "2"
  211. value: Left
  212. - dps_val: "3"
  213. value: Middle
  214. - dps_val: "4"
  215. value: Right
  216. - dps_val: "5"
  217. value: Partial Left
  218. - dps_val: "6"
  219. value: Partial Right
  220. - dps_val: "7"
  221. value: Wide Angle
  222. - id: 115
  223. type: integer
  224. name: total_n
  225. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  226. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  227. hidden: true
  228. optional: true
  229. - id: 119
  230. name: psaving
  231. type: string
  232. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  233. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  234. hidden: true
  235. optional: true
  236. mapping:
  237. - dps_val: "0"
  238. value: None
  239. default: true
  240. - dps_val: "1"
  241. value: Default Power Saving
  242. - dps_val: "2"
  243. value: Quota Power Saving
  244. - dps_val: "3"
  245. value: Fixed Temperature Power Saving
  246. - id: 120
  247. name: llevel
  248. type: string
  249. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  250. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  251. hidden: true
  252. optional: true
  253. mapping:
  254. - dps_val: "off"
  255. value: None
  256. default: true
  257. - dps_val: L1
  258. value: L1
  259. - dps_val: L2
  260. value: L2
  261. - dps_val: L3
  262. value: L3
  263. - id: 125
  264. name: air_quality
  265. type: string
  266. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  267. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  268. hidden: true
  269. optional: true
  270. - id: 126
  271. name: vertical_direction
  272. type: string
  273. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  274. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  275. hidden: true
  276. optional: true
  277. mapping:
  278. - dps_val: "0"
  279. value: Freeze Current Position
  280. default: true
  281. - dps_val: "1"
  282. value: Top
  283. - dps_val: "2"
  284. value: Slightly Up
  285. - dps_val: "3"
  286. value: Middle
  287. - dps_val: "4"
  288. value: Slightly Down
  289. - dps_val: "5"
  290. value: Down
  291. - id: 127
  292. name: fan_orientation
  293. type: string
  294. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  295. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  296. hidden: true
  297. optional: true
  298. mapping:
  299. - dps_val: "0"
  300. value: Freeze current position
  301. default: true
  302. - dps_val: "1"
  303. value: Left
  304. - dps_val: "2"
  305. value: Slightly left
  306. - dps_val: "3"
  307. value: Middle
  308. - dps_val: "4"
  309. value: Slightly right
  310. - dps_val: "5"
  311. value: Right
  312. - dps_val: "6"
  313. value: Wide angle left
  314. - dps_val: "7"
  315. value: Wide angle right
  316. - dps_val: "8"
  317. value: Wide angle
  318. - id: 129
  319. type: string
  320. name: power_picker
  321. read_only: true
  322. mapping:
  323. - dps_val: 1
  324. value: 1 kWh
  325. - dps_val: 2
  326. value: 2 kWh
  327. - dps_val: 3
  328. value: 3 kWh
  329. - dps_val: 4
  330. value: 4 kWh
  331. - dps_val: 5
  332. value: 5 kWh
  333. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  334. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  335. hidden: true
  336. optional: true
  337. - id: 130
  338. name: eco_mode_temperature_setting
  339. type: integer
  340. unit: C
  341. range:
  342. min: 26
  343. max: 31
  344. optional: true
  345. - id: 131
  346. type: boolean
  347. name: dirty_filter
  348. readonly: true
  349. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  350. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  351. hidden: true
  352. optional: true
  353. - id: 132
  354. name: is_fan_air_cold
  355. type: boolean
  356. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  357. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  358. hidden: true
  359. optional: true
  360. mapping:
  361. - dps_val: true
  362. value: Cold Wind
  363. - dps_val: false
  364. value: Hot wind
  365. - id: 133
  366. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  367. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  368. hidden: true
  369. optional: true
  370. name: swing_support
  371. type: string
  372. mapping:
  373. - dps_val: "0"
  374. value: "off"
  375. - dps_val: "1"
  376. value: horizontal
  377. available: hswing_available
  378. - dps_val: "2"
  379. value: vertical
  380. - dps_val: "3"
  381. value: both
  382. available: hswing_available
  383. - id: 134
  384. name: working_time
  385. type: string
  386. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  387. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  388. hidden: true
  389. optional: true
  390. - id: 135
  391. name: running_time
  392. type: integer
  393. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  394. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  395. hidden: true
  396. optional: true
  397. - id: 136
  398. name: dr_energy_function
  399. type: string
  400. # the unit's actual hardware doesn't support this functionality even though the firmware / DP is exposed
  401. # we are forced to add it so that Tuya Local gets to 100% DP match and allows us to pick this YAML for this unit
  402. hidden: true
  403. optional: true
  404. secondary_entities:
  405. - entity: switch
  406. name: "Sleep Mode"
  407. icon: "mdi:sleep"
  408. translation_key: sleep
  409. category: config
  410. dps:
  411. - id: 105
  412. type: string
  413. name: switch
  414. mapping:
  415. # IOT Tuya says these are the 4 values of the enum but only OFF and CHILD
  416. # are supported by the firmware
  417. # "off",
  418. # "normal",
  419. # "old",
  420. # "child"
  421. - dps_val: "normal"
  422. value: true
  423. - dps_val: "off"
  424. value: false
  425. - value: false
  426. - entity: sensor
  427. name: "Configured Temperature Unit"
  428. category: diagnostic
  429. class: enum
  430. dps:
  431. - id: 19
  432. name: sensor
  433. type: string
  434. optional: true
  435. mapping:
  436. - dps_val: "f"
  437. value: "°F"
  438. icon: "mdi:temperature-fahrenheit"
  439. icon_priority: 2
  440. - dps_val: "c"
  441. value: "°C"
  442. icon: "mdi:temperature-celsius"
  443. icon_priority: 2
  444. - entity: sensor
  445. translation_key: status
  446. class: enum
  447. category: diagnostic
  448. dps:
  449. - id: 20
  450. type: bitfield
  451. name: sensor
  452. mapping:
  453. - dps_val: 0
  454. value: Normal
  455. icon: "mdi:check-circle"
  456. icon_priority: 2
  457. - dps_val: E1
  458. value: Fault E1
  459. icon: "mdi:alert-circle"
  460. icon_priority: 2
  461. - dps_val: E2
  462. value: Fault E2
  463. icon: "mdi:alert-circle"
  464. icon_priority: 2
  465. - id: 122
  466. name: fault2
  467. type: bitfield
  468. optional: true
  469. - entity: binary_sensor
  470. class: problem
  471. category: diagnostic
  472. dps:
  473. - id: 20
  474. type: bitfield
  475. name: sensor
  476. mapping:
  477. - dps_val: 0
  478. value: false
  479. - dps_val: E1
  480. value: false
  481. - dps_val: E2
  482. value: false
  483. - value: true
  484. - id: 20
  485. type: bitfield
  486. name: fault_code
  487. - id: 122
  488. name: fault2
  489. type: bitfield
  490. optional: true
  491. - entity: sensor
  492. # unclear what this is, seems like intended to be total power but it's unitless per IOT and doesn't exactly track
  493. # what the unit is doing so leaving as a diagnostic-only sensor that should probably be disabled by the user
  494. name: totalp
  495. category: diagnostic
  496. #class: measurement
  497. dps:
  498. - id: 116
  499. name: sensor
  500. type: integer
  501. optional: true
  502. # from tuya iot dev
  503. range:
  504. min: 0
  505. max: 1000000
  506. - entity: number
  507. name: Eco Mode Temperature Setting
  508. category: config
  509. class: temperature
  510. dps:
  511. - id: 130
  512. name: value
  513. type: integer
  514. unit: C
  515. range:
  516. min: 26
  517. max: 31
  518. optional: true