Răsfoiți Sursa

Add support for Arlec Grid Connect 5L pet feeder

Issue #2847
Jason Rumney 1 an în urmă
părinte
comite
8243299447

+ 1 - 1
ACKNOWLEDGEMENTS.md

@@ -841,5 +841,5 @@ Further device support has been made with the assistance of users. Please consid
 - [smue86](https://github.com/smue86) for contributing support for Recteq RT700 grill.
 - [K900](https://github.com/K900) for contributing support for Petoneer Fresco EzGo pet fountain.
 - [eisenschmid23](https://github.com/eisenschmid23) for assisting with support for Papifeed pet feeder.
-- [AndrewJ1990](https://github.com/AndrewJ1990) for assisting with support for Orion smart fingerprint entrance lock.
+- [AndrewJ1990](https://github.com/AndrewJ1990) for assisting with support for Orion smart fingerprint entrance lock and Arlec 5L pet feeder.
 - [enyineer](https://github.com/enyineer) for contributing improvements to Aygrochy fan controller.

+ 1 - 0
DEVICES.md

@@ -846,6 +846,7 @@ port and password.
 ### Pet care
 
 - AF3W pet feeder
+- Arlec Grid Connect 5L pet feeder
 - BNETA F1-D pet feeder (likely compatible with Petwant F1-C)
 - Catit Pixi smart fountain
 - Catit pet feeder (Pixi 2.2kg dispenser and 6 meal versions, and another non-Pixi branded single dispenser)

+ 119 - 0
custom_components/tuya_local/devices/arlec_5l_petfeeder.yaml

@@ -0,0 +1,119 @@
+name: Pet feeder
+products:
+  - id: vhpxqilaahtj3zrr
+    manufacturer: Arlec
+    model: Grid Connect 5L
+entities:
+  - entity: number
+    name: Manual Feed
+    icon: "mdi:food-drumstick"
+    dps:
+      - id: 3
+        type: integer
+        optional: true
+        name: value
+        range:
+          min: 1
+          max: 12
+      - id: 1
+        type: string
+        # Meal plan is the following binary blob (1 byte per line), encoded
+        # in base64 (can repeat up to 10 times):
+        # - Date (1 bit per day Monday -> Sunday, padded with 0 on the MSB).
+        #    Ex: Monday, Wednesday, Sunday -> 0b01010001
+        # - Hour
+        # - Minute
+        # - Feed portions
+        # - Enable/Disabled
+        name: meal_plan
+        optional: true
+  - entity: sensor
+    translation_key: status
+    class: enum
+    category: diagnostic
+    dps:
+      - id: 4
+        type: string
+        name: sensor
+        mapping:
+          - dps_val: standby
+            value: standby
+          - dps_val: feeding
+            value: feeding
+          - dps_val: done
+            value: done
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 14
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 14
+        type: bitfield
+        name: fault_code
+      - id: 14
+        type: bitfield
+        name: description
+        mapping:
+          - dps_val: 0
+            value: ok
+          - dps_val: 1
+            value: pet_food_jam
+          - dps_val: 2
+            value: pet_food_low
+          - dps_val: 4
+            value: pet_food_finished
+          - dps_val: 8
+            value: desiccant_exhausted
+          - dps_val: 16
+            value: battery_low
+  - entity: sensor
+    icon: "mdi:paw"
+    name: Feed report
+    category: diagnostic
+    dps:
+      - id: 15
+        name: sensor
+        # Encountered values so far:
+        # 11: Feeding OK
+        # 10/21: Rotating plate is stuck
+        type: integer
+        optional: true
+  - entity: sensor
+    name: Battery
+    category: diagnostic
+    dps:
+      - id: 11
+        name: sensor
+        type: integer
+        unit: "%"
+  - entity: number
+    name: Voice playbacks
+    category: config
+    dps:
+      - id: 18
+        name: value
+        type: integer
+        range:
+          min: 0
+          max: 5
+  - entity: button
+    translation_key: factory_reset
+    category: config
+    dps:
+      - id: 9
+        type: boolean
+        name: button
+        optional: true
+  - entity: light
+    translation_key: indicator
+    category: config
+    dps:
+      - id: 19
+        type: boolean
+        name: switch