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

feat (devices): add Frienhund dual camera pet feeder

Issue #4484
Jason Rumney 18 часов назад
Родитель
Сommit
7c22db4f0d

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -1299,3 +1299,4 @@ Further device support has been made with the assistance of users. Please consid
 - [lolmaxlevel](https://github.com/lolmaxlevel) for contributin improvements for Tongou SA1 energy meter.
 - [goblinmaks](https://github.com/goblinmaks) for contributing support for iPengen GO-E31-32A EV charger.
 - [cjsturgess](https://github.com/cjsturgess) for assisting with support for Pawspik Microchip pet feeder.
+- [meeowgler](https://github.com/meeowgler) for assisting with support for Frienhund ACF180W-A dual camera pet feeder.

+ 1 - 0
DEVICES.md

@@ -1077,6 +1077,7 @@ port and password.
 - Faroro PF50 pet feeder
 - Faroro TD20 pet treat camera
 - FeelNeedy P-LFP01 camera pet feeder
+- Frienhund ACF180W-A dual camera pet feeder
 - Fukumaru AF01-W pet feeder
 - Hapaw pet fountain
 - Happy Llama Tech SoCool pet feeder

+ 261 - 0
custom_components/tuya_local/devices/frienhund_acf180wa_dualfeeder.yaml

@@ -0,0 +1,261 @@
+name: Dual pet feeder
+products:
+  - id: zamvomvycqa48ovw
+    manufacturer: Frienhund
+    model: ACF180W-A
+entities:
+  - entity: light
+    translation_key: indicator
+    category: config
+    dps:
+      - id: 101
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Listen
+    category: config
+    dps:
+      - id: 102
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    translation_key: flip_image
+    category: config
+    dps:
+      - id: 103
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Watermark
+    category: config
+    icon: "mdi:watermark"
+    dps:
+      - id: 104
+        type: boolean
+        name: switch
+  - entity: camera
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
+        mapping:
+          - dps_val: false
+            value: true
+          - dps_val: true
+            value: false
+      - id: 134
+        type: boolean
+        name: motion_enable
+      - id: 150
+        type: boolean
+        name: record
+  - entity: select
+    translation_key: motion_sensitivity
+    category: config
+    dps:
+      - id: 106
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: low
+          - dps_val: "1"
+            value: medium
+          - dps_val: "2"
+            value: high
+  - entity: switch
+    name: Slow feed
+    icon: "mdi:food-turkey"
+    category: config
+    dps:
+      - id: 107
+        type: boolean
+        name: switch
+  - entity: select
+    name: Nightvision
+    translation_key: light_mode
+    icon: "mdi:weather-night"
+    category: config
+    dps:
+      - id: 108
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: auto
+          - dps_val: "1"
+            value: "off"
+          - dps_val: "2"
+            value: "on"
+  - entity: sensor
+    name: SD status
+    class: enum
+    translation_key: status
+    category: diagnostic
+    icon: "mdi:micro-sd"
+    dps:
+      - id: 110
+        type: integer
+        name: sensor
+        mapping:
+          - dps_val: 1
+            value: normal
+          - dps_val: 2
+            value: fault
+          - dps_val: 3
+            value: full
+          - dps_val: 4
+            value: formatting
+          - dps_val: 5
+            value: missing
+          - dps_val: null
+            value: normal
+            hidden: true
+      - id: 109
+        type: string
+        name: memory_card_capacity
+  - entity: button
+    name: Format SD card
+    category: diagnostic
+    icon: "mdi:delete-empty"
+    dps:
+      - id: 111
+        type: boolean
+        optional: true
+        name: button
+      - id: 117
+        type: integer
+        name: sd_format_status
+        mapping:
+          - dps_val: 2000
+            value: Formatting
+          - dps_val: 2001
+            value: Format error
+          - dps_val: 2002
+            value: "No SD card"
+          - dps_val: 2003
+            value: Card error
+  - entity: select
+    name: Feed voice record
+    icon: "mdi:account-voice"
+    category: config
+    dps:
+      - id: 112
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: stop
+          - dps_val: "1"
+            value: record
+          - dps_val: "2"
+            value: error
+  - entity: select
+    name: Recording mode
+    icon: "mdi:file-video"
+    category: config
+    dps:
+      - id: 151
+        type: string
+        name: option
+        mapping:
+          - dps_val: "1"
+            value: Event
+          - dps_val: "2"
+            value: Continuous
+  - entity: number
+    translation_key: volume
+    category: config
+    dps:
+      - id: 160
+        type: integer
+        name: value
+        unit: "%"
+        range:
+          min: 1
+          max: 100
+  - entity: number
+    translation_key: manual_feed
+    category: config
+    dps:
+      - id: 203
+        type: integer
+        optional: true
+        name: value
+        unit: portions
+        range:
+          min: 1
+          max: 12
+  - entity: sensor
+    translation_key: status
+    class: enum
+    category: diagnostic
+    dps:
+      - id: 204
+        type: string
+        optional: true
+        name: sensor
+        mapping:
+          - dps_val: standby
+            value: standby
+          - dps_val: feeding
+            value: feeding
+          - dps_val: done
+            value: feeding_complete
+  - entity: sensor
+    name: Last feed
+    dps:
+      - id: 205
+        type: integer
+        name: sensor
+        unit: portions
+  - entity: sensor
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 210
+        optional: true
+        type: integer
+        name: sensor
+        unit: "%"
+  - entity: event
+    name: Notification
+    dps:
+      - id: 212
+        type: utf16b64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: message
+      - id: 212
+        type: utf16b64
+        optional: true
+        name: message
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 219
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 219
+        type: bitfield
+        name: fault_code
+  - entity: text
+    name: Meal plan
+    category: config
+    icon: "mdi:food-drumstick"
+    hidden: true
+    dps:
+      - id: 223
+        type: base64
+        optional: true
+        name: value