Browse Source

Add support for Kogan bidet.

Partial features supported, as iot.tuya.com documentation does not
seem to exactly match the info from the logs.

Issue #559
Jason Rumney 2 years ago
parent
commit
58af672e6c
3 changed files with 159 additions and 1 deletions
  1. 1 1
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 157 0
      custom_components/tuya_local/devices/kogan_bidet.yaml

+ 1 - 1
ACKNOWLEDGEMENTS.md

@@ -200,7 +200,7 @@ Further device support has been made with the assistance of users.  Please consi
 - [hebenon](https://github.com/hebenon) for contributing support for Breville Smart Air Connect purifiers.
 - [pvillanyi](https://github.com/pvillanyi) for contributing support for smartplugs with USB (Gosund SP112).
 - [jaichinger](https://github.com/jaichinger) for contributing support for Breville Smart Air Viral Protect Plus purifier.
-- [kytro](https://github.com/kytro) for assistaing with support for Anko smart kettles and MoeBot mowers.
+- [kytro](https://github.com/kytro) for assistaing with support for Anko smart kettles, MoeBot mowers and Kogan bidets.
 - [Oglaf](https://github.com/Oglaf) for contributing support for Kabum Smart 500 vacuum cleaners.
 - [Whytey](https://github.com/Whytey/pymoebot) for investigation work into the MoeBot protocol.
 - [launchm](https://github.com/launchm) for assisting with support for Asakuki aroma diffusers.

+ 1 - 0
DEVICES.md

@@ -335,6 +335,7 @@ of device.
 - Catit Pixi smart fountain
 - Catit pet feeder (experimental)
 - Emax EM3378 Weather Station (selling as Hiper P1 and other rebrands)
+- Kogan bidet toilet seat
 - Konlen/Rockson WF96L water level controller
 - Nedis pet feeder
 - Nedis WIFISA10CWT air quality monitor

+ 157 - 0
custom_components/tuya_local/devices/kogan_bidet.yaml

@@ -0,0 +1,157 @@
+name: Bidet
+products:
+  - id: 7cuimqtezvgbaeun
+    name: Kogan bidet
+primary_entity:
+  entity: switch
+  icon: "mdi:toilet"
+  dps:
+    - id: 45
+      type: boolean
+      name: switch
+    - id: 68
+      type: bitfield
+      name: fault_code
+      optional: true
+      # does not seem to show in logs, and name in iot.tuya.com is in Chinese so probably not implemented
+    - id: 103
+      type: integer
+      name: ambient_temperature
+      optional: true
+    - id: 56
+      type: integer
+      name: clean_time
+      optional: true
+    - id: 57
+      type: string
+      name: wind_temperature
+      optional: true
+    - id: 59
+      type: integer
+      name: drying_time
+      optional: true
+secondary_entities:
+  - entity: select
+    name: Mode
+    icon: "mdi:toilet"
+    category: config
+    dps:
+      - id: 50
+        type: string
+        name: option
+        mapping:
+          - dps_val: dry
+            value: Dry
+          - dps_val: normal
+            value: Normal
+          - dps_val: child
+            value: Child
+  - entity: number
+    name: Water temperature
+    icon: "mdi:coolant-temperature"
+    category: config
+    dps:
+      - id: 52
+        type: string
+        name: option
+        range:
+          min: 1
+          max: 4
+        mapping:
+          - dps_val: level_1
+            value: 1
+          - dps_val: level_2
+            value: 2
+          - dps_val: level_3
+            value: 3
+          - dps_val: level_4
+            value: 4
+      - id: 53
+        name: temperature
+        type: integer
+        optional: true
+      - id: 54
+        name: pressure
+        type: string
+        optional: true
+  - entity: select
+    name: Position
+    icon: "mdi:arrow-left-right"
+    category: config
+    dps:
+      - id: 55
+        type: string
+        name: option
+        mapping:
+          - dps_val: pos_1
+            value: Front
+          - dps_val: pos_2
+            value: Slightly forward
+          - dps_val: pos_3
+            value: Centre
+          - dps_val: pos_4
+            value: Slightly back
+          - dps_val: pos_5
+            value: Rear
+  - entity: number
+    name: Seat warmth
+    category: config
+    icon: "mdi:car-seat-heater"
+    dps:
+      - id: 60 
+        type: string
+        name: value
+        range:
+          min: 1
+          max: 4
+        mapping:
+          - dps_val: level_1
+            value: 1
+          - dps_val: level_2
+            value: 2
+          - dps_val: level_3
+            value: 3
+          - dps_val: level_4
+            value: 4
+      - id: 61
+        name: temperature
+        type: integer
+        optional: true
+  - entity: switch
+    name: Deodorize
+    icon: "mdi:flower"
+    category: config
+    dps:
+      - id: 62
+        type: boolean
+        name: switch
+  - entity: light
+    name: Light
+    category: config
+    dps:
+      - id: 64
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Eco mode
+    icon: "mdi:leaf"
+    category: config
+    dps:
+      - id: 65
+        type: boolean
+        name: switch
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 68
+        type: bitfield
+        name: sensor
+        optional: true
+        mapping:
+          - dps_val: null
+            value: false
+          - dps_val: 0
+            value: false
+          - value: true