Pārlūkot izejas kodu

Add iPettie FW54 feeder config (#4971)

## Summary

Adds a Tuya Local device configuration for the iPettie FW54 food/water
feeder.

This is a device-config-only PR. No Python code changes are included.

## Tested device

- Manufacturer: iPettie
- Model tested: FW54
- Product ID / productKey: `tejdgn0tuyiq6vmt`
- Protocol/interface used: `3.5`

## Setup notes

The device uses protocol/interface `3.5`.

The device was added using protocol `3.5`.

## Known datapoints

- `3`: Manual feed / portion command
- `4`: Device status
- `13`: Problem / error indicator
- `111`: Water light switch

## Usage notes

- DP `111` controls the water light as a normal switch.
- DP `3` is used for manual feeding by writing the desired portion
count.
- DP `4` reports feeder status. In my testing this is useful for
detecting states such as feeding/idle.
- DP `13` reports a problem/error condition. In my testing, `0` means no
problem and non-zero indicates a problem state.

In Home Assistant, I use an input number for the desired portion count
and a script/button to send that value to the manual feed command.

## Validation

- Tested locally with Tuya Local
- Device manually added using IP, device ID, protocol `3.5`, and
recovered local key
- Water light switch works
- Manual feed command works
- Status and problem entities report correctly
- No local keys, device IDs, IP addresses, or private account data are
included

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
locoscientist 1 mēnesi atpakaļ
vecāks
revīzija
107e9f4f06

+ 43 - 0
custom_components/tuya_local/devices/ipettie_fw54_petfeeder.yaml

@@ -0,0 +1,43 @@
+name: Pet feeder
+products:
+  - id: tejdgn0tuyiq6vmt
+    manufacturer: iPettie
+    model: FW54
+entities:
+  - entity: light
+    icon: "mdi:water-outline"
+    dps:
+      - id: 111
+        type: boolean
+        name: switch
+  - entity: number
+    translation_key: manual_feed
+    dps:
+      - id: 3
+        type: integer
+        name: value
+        range:
+          min: 1
+          max: 15
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 13
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 13
+        type: bitfield
+        name: fault_code
+  - entity: sensor
+    translation_key: status
+    icon: "mdi:paw"
+    category: diagnostic
+    dps:
+      - id: 4
+        type: string
+        name: sensor