catit_pixi_smart_feeder.yaml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. name: Pet feeder
  2. products:
  3. - id: 8vwr6rfoaaxncjwj
  4. manufacturer: Petoneer
  5. model: Nutri Mini
  6. - id: pxwlmmdodfppms3a
  7. manufacturer: GiotoHun
  8. - id: ojqmjnoxqygqldsp
  9. manufacturer: Puppy Kitty
  10. - id: s3rvixmeqx62vud5
  11. manufacturer: Catit
  12. model: Pixi Smart Feeder
  13. model_id: "43752"
  14. entities:
  15. - entity: button
  16. name: Quick feed
  17. icon: "mdi:food-drumstick"
  18. dps:
  19. # Feeds the meal size, regardless of dps value
  20. - id: 2
  21. type: boolean
  22. name: button
  23. optional: true
  24. - entity: text
  25. name: Meal plan
  26. category: config
  27. hidden: true
  28. dps:
  29. # Not thought to be used with Catit 43752
  30. - id: 1
  31. type: base64
  32. name: value
  33. optional: true
  34. - entity: sensor
  35. icon: "mdi:paw"
  36. name: Feed report
  37. category: diagnostic
  38. dps:
  39. - id: 15
  40. name: sensor
  41. type: integer
  42. # Only present after feeding on Catit 43752
  43. optional: true
  44. - entity: button
  45. translation_key: factory_reset
  46. category: config
  47. hidden: true
  48. dps:
  49. - id: 9
  50. type: boolean
  51. name: button
  52. optional: true
  53. - entity: number
  54. translation_key: manual_feed
  55. category: config
  56. dps:
  57. - id: 3
  58. name: value
  59. type: integer
  60. range:
  61. min: 1
  62. max: 12
  63. # Only present after feeding on Catit 43752
  64. optional: true
  65. - entity: binary_sensor
  66. name: Food shortage
  67. class: problem
  68. category: diagnostic
  69. dps:
  70. - id: 14
  71. type: bitfield
  72. name: sensor
  73. optional: true
  74. mapping:
  75. - dps_val: 2
  76. value: true
  77. - value: false
  78. - entity: binary_sensor
  79. name: Food blockage
  80. class: problem
  81. category: diagnostic
  82. dps:
  83. - id: 14
  84. type: bitfield
  85. name: sensor
  86. optional: true
  87. mapping:
  88. - dps_val: 4
  89. value: true
  90. - value: false
  91. - entity: binary_sensor
  92. name: Feeding
  93. class: running
  94. icon: "mdi:paw"
  95. category: diagnostic
  96. dps:
  97. # Not observed in Catit 43752
  98. - id: 4
  99. type: string
  100. name: sensor
  101. optional: true
  102. mapping:
  103. - dps_val: feeding
  104. value: true
  105. - dps_val: null
  106. value: null
  107. - value: false
  108. - entity: sensor
  109. name: Last meal details
  110. category: diagnostic
  111. dps:
  112. # Takes value such as `R:0 C:1 T:1761264924`,
  113. # where `R=result`, `C=meal_size`, `T=unix_time`.
  114. # Extracting the timestamp with Tuya Local is not currently
  115. # possible - use a template sensor:
  116. # ```
  117. # template:
  118. # sensor:
  119. # - name: last meal time
  120. # state: >
  121. # {% set s = states("sensor.your_last_meal_details") %}
  122. # {% if s in [""] %}
  123. # unknown
  124. # {% else %}
  125. # {% set ts = namespace(val=None) %}
  126. # {% for p in s.split() %}
  127. # {% if p.startswith("T:") %}
  128. # {% set ts.val = (p[2:]|int) %}
  129. # {% endif %}
  130. # {% endfor %}
  131. # {% if ts.val is none %}
  132. # unknown
  133. # {% else %}
  134. # {{ (ts.val | int) | timestamp_utc }}
  135. # {% endif %}
  136. # {% endif %}
  137. # device_class: timestamp
  138. # ```
  139. # Value persists until next feed, or device power off
  140. - id: 104
  141. name: sensor
  142. type: string
  143. optional: true
  144. - entity: sensor
  145. name: IP address
  146. category: diagnostic
  147. dps:
  148. - id: 107
  149. name: sensor
  150. type: string
  151. # Present at all times on Catit 43752 but unsure about other products
  152. optional: true
  153. - entity: binary_sensor
  154. category: diagnostic
  155. class: plug
  156. dps:
  157. - id: 105
  158. type: bitfield
  159. name: sensor
  160. mapping:
  161. - dps_val: 1
  162. value: false
  163. - value: true
  164. # Present at all times on Catit 43752 but unsure about other products
  165. optional: true
  166. - entity: switch
  167. translation_key: sound
  168. category: config
  169. dps:
  170. - id: 103
  171. name: switch
  172. type: boolean
  173. # Present at all times on Catit 43752 but unsure about other products
  174. optional: true
  175. - entity: switch
  176. name: Feed button enabled
  177. category: config
  178. dps:
  179. - id: 102
  180. name: switch
  181. type: boolean
  182. # Present at all times on Catit 43752 but unsure about other products
  183. optional: true
  184. - entity: number
  185. name: Meal size
  186. category: config
  187. dps:
  188. - id: 101
  189. name: value
  190. type: integer
  191. # Present at all times on Catit 43752 but unsure about other products
  192. optional: true
  193. range:
  194. min: 1
  195. max: 12