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

Add support for BNETA F1-D pet feeder

Issue #1083
Jason Rumney 1 год назад
Родитель
Сommit
74a9a4acd8
3 измененных файлов с 150 добавлено и 0 удалено
  1. 1 0
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 148 0
      custom_components/tuya_local/devices/bneta_f1d_petfeeder.yaml

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -789,3 +789,4 @@ Further device support has been made with the assistance of users. Please consid
 - [keskival](https://github.com/keskival) for contributing support for ZPMeter ultrasonic water meter (without valve control).
 - [keskival](https://github.com/keskival) for contributing support for ZPMeter ultrasonic water meter (without valve control).
 - [djvalex](https://github.com/djvalex) for assisting with support for Axen/Arielli KS-100W/EN8BP combo heat pump.
 - [djvalex](https://github.com/djvalex) for assisting with support for Axen/Arielli KS-100W/EN8BP combo heat pump.
 - [doertli](https://github.com/doertli) for assisting with support for Aeratron AE3+ ceiling fan.
 - [doertli](https://github.com/doertli) for assisting with support for Aeratron AE3+ ceiling fan.
+- [0xa51f](https://github.com/0xa51f) for assisting with support for BNETA F1-D pet feeder.

+ 1 - 0
DEVICES.md

@@ -801,6 +801,7 @@ port and password.
 ### Pet care
 ### Pet care
 
 
 - AF3W pet feeder
 - AF3W pet feeder
+- BNETA F1-D pet feeder (likely compatible with Petwant F1-C)
 - Catit Pixi smart fountain
 - Catit Pixi smart fountain
 - Catit pet feeder (Pixi 2.2kg dispenser and 6 meal versions, and another non-Pixi branded single dispenser)
 - Catit pet feeder (Pixi 2.2kg dispenser and 6 meal versions, and another non-Pixi branded single dispenser)
 - Ceres Plus pet feeder with camera
 - Ceres Plus pet feeder with camera

+ 148 - 0
custom_components/tuya_local/devices/bneta_f1d_petfeeder.yaml

@@ -0,0 +1,148 @@
+name: Pet feeder
+products:
+  - id: aehfntztbgk0nf8e
+    name: BNETA F1-D
+primary_entity:
+  entity: light
+  translation_key: indicator
+  category: config
+  dps:
+    - id: 101
+      type: boolean
+      name: switch
+secondary_entities:
+  - entity: switch
+    name: Flip image
+    icon: "mdi:flip-horizontal"
+    category: config
+    dps:
+      - id: 103
+        type: boolean
+        optional: true
+        name: switch
+        mapping:
+          - dps_val: null
+            value: false
+            hidden: true
+  - entity: switch
+    name: Timestamp
+    icon: "mdi-clock-time-eight"
+    category: config
+    dps:
+      - id: 104
+        type: boolean
+        optional: true
+        name: switch
+  - entity: select
+    name: Motion sensitivity
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 106
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: low
+          - dps_val: "1"
+            value: medium
+          - dps_val: "2"
+            value: high
+  - entity: switch
+    name: Nightvision
+    icon: "mdi:weather-night"
+    category: config
+    dps:
+      - id: 108
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    icon: "mdi:motion-sensor"
+    name: Motion record
+    category: config
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: string
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: string
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+        mapping:
+          - dps_val: null
+            value: false
+            hidden: true
+  - entity: number
+    name: Manual feed
+    category: config
+    icon: "mdi:paw"
+    dps:
+      - id: 201
+        type: integer
+        optional: true
+        name: value
+        unit: portions
+        range:
+          min: 0
+          max: 20
+      # Following are not well enough documented to do anything useful
+      - id: 203
+        type: integer
+        optional: true
+        name: control
+      - id: 204
+        type: integer
+        optional: true
+        name: realtime_data
+      - id: 205
+        type: integer
+        optional: true
+        name: remote_dispensing
+      - id: 206
+        type: integer
+        optional: true
+        name: history_data
+      - id: 207
+        type: string
+        optional: true
+        name: schedule
+      - id: 208
+        type: string
+        optional: true
+        name: feed_voice_record
+  - entity: sensor
+    name: Portion size
+    class: weight
+    category: diagnostic
+    dps:
+      - id: 202
+        type: integer
+        optional: true
+        name: sensor
+        unit: g
+        class: measurement
+        mapping:
+          - scale: 10