Просмотр исходного кода

Add Newpet feeder model to configuration (#4043)

* Add new pet feeder model to configuration

Add support to https://pt.aliexpress.com/item/1005008409616201.html?spm=a2g0o.order_list.order_list_main.39.929ccaa4s2t9bp&gatewayAdapt=glo2bra

* Clarify factory reset support for Newpet model

Added comment to clarify factory reset support for Newpet model.

* fix: Split newpet configuration

* fix: Mappings

* fix: Bad type at Feed Report

* fix: Feed report as event, Fault code as problem

* fix (newpet_feeder): use correct dps for event

- a single event "fed", with "portions" as an attribute
- disable factory_reset by default, as it is dangerous to have such entities exposed

Issue #4043

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
Frederico Mourão 3 месяцев назад
Родитель
Сommit
c7a1be0ef9
1 измененных файлов с 107 добавлено и 0 удалено
  1. 107 0
      custom_components/tuya_local/devices/newpet_feeder.yaml

+ 107 - 0
custom_components/tuya_local/devices/newpet_feeder.yaml

@@ -0,0 +1,107 @@
+name: Pet feeder
+products:
+  - id: 13yxt7ukaktyacqi
+    manufacturer: Newpet
+    model: DR Feeder
+entities:
+  - entity: text
+    name: Meal plan
+    category: config
+    hidden: true
+    dps:
+      # Meal plan is the following binary blob (1 byte per line), encoded
+      # in base64:
+      # - Date (1 bit per day Monday -> Sunday, padded with 0 on the MSB).
+      #    Ex: Monday, Wednesday, Sunday -> 0b01010001
+      # - Hour
+      # - Minute
+      # - Feed number
+      # - Enable/Disabled
+      - id: 1
+        type: base64
+        name: value
+        optional: true
+  - entity: number
+    name: Manual feed
+    icon: "mdi:food-drumstick"
+    dps:
+      - id: 3
+        type: integer
+        optional: true
+        name: value
+        unit: portions
+        range:
+          min: 1
+          max: 20
+  - entity: sensor
+    class: enum
+    translation_key: status
+    category: diagnostic
+    dps:
+      - id: 4
+        type: string
+        name: sensor
+        mapping:
+          - dps_val: standby
+            value: standby
+          - dps_val: feeding
+            value: feeding
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 13
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 8
+            value: false
+          - value: true
+      - id: 13
+        type: bitfield
+        name: fault_code
+      - id: 13
+        type: bitfield
+        name: description
+        mapping:
+          - dps_val: 0
+            value: ok
+          - dps_val: 1
+            value: pet_food_jam
+          - dps_val: 2
+            value: pet_food_shortages
+          - dps_val: 4
+            value: pet_food_run_out
+          - dps_val: 8
+            value: desiccant_exhausted
+          - dps_val: 16
+            value: battery_low
+          - dps_val: 64
+            value: pet_food_stuck
+  - entity: event
+    icon: "mdi:paw"
+    name: Feed Report
+    dps:
+      - id: 14
+        type: integer
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: fed
+      - id: 14
+        type: integer
+        name: portions
+        optional: true
+  - entity: button
+    translation_key: factory_reset
+    category: config
+    hidden: true
+    dps:
+      - id: 24
+        type: boolean
+        name: button
+        optional: true