Ver código fonte

Add AGA Electrickit Advanced range cooker (#5509)

* feat(aga_electrickit_advanced): add AGA Electrickit Advanced range cooker

Two-oven electric AGA conversion (Tuya category kx, protocol 3.5).
DPs mapped by live local monitoring against the Smart Life app.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(aga_electrickit_advanced): swap 24/7 timer dps

dp 108 is the timer on/off setting (matches the app's toggle);
dp 107 is the timer's live output state, confirmed by observing an
enabled timer holding the ovens in an off window.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Move unknown dps 156/157 to attributes of the timer binary_sensor

Requested in review: unknown dps should be attributes on another
entity rather than entities in their own right.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(aga_electrickitadvanced_oven): Naming updates

- Avoid brackets in entity names in case of exporting entities to other systems that don't handle them well
- rename file to include device type

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
Sean @ Arbology 1 dia atrás
pai
commit
a48cd0dffd

+ 103 - 0
custom_components/tuya_local/devices/aga_electrickitadvanced_oven.yaml

@@ -0,0 +1,103 @@
+name: Range cooker
+products:
+  - id: nsyzaeaife8j7sx0
+    manufacturer: AGA
+    model: Electrickit Advanced
+entities:
+  - entity: climate
+    name: Roasting oven
+    dps:
+      - id: 101
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: true
+            value: heat
+          - dps_val: false
+            value: "off"
+      - id: 103
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 0
+          max: 280
+      - id: 110
+        type: integer
+        name: current_temperature
+  - entity: climate
+    name: Simmering oven
+    dps:
+      - id: 102
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: true
+            value: heat
+          - dps_val: false
+            value: "off"
+      - id: 104
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 0
+          max: 280
+      - id: 111
+        type: integer
+        name: current_temperature
+  - entity: switch
+    name: Roasting oven rest
+    icon: "mdi:power-sleep"
+    category: config
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Simmering oven rest
+    icon: "mdi:power-sleep"
+    category: config
+    dps:
+      - id: 106
+        type: boolean
+        name: switch
+  # In the app this is the "24/7 timer" on/off; a single setting covering
+  # both ovens. The device rejects writes to this (self-reverts after ~2s)
+  # until a timer schedule has been configured in the app.
+  - entity: switch
+    translation_key: timer
+    category: config
+    dps:
+      - id: 108
+        type: boolean
+        name: switch
+  # Live output of the 24/7 timer: on when the timer is currently running
+  # the ovens, off during an off window.
+  # dps 156/157 are believed to relate to the optional vent fan, which was
+  # not fitted on the test device (disabled in the app), so they could not
+  # be confirmed. Both remained static through all other functions.
+  - entity: binary_sensor
+    name: Timer running
+    class: running
+    category: diagnostic
+    dps:
+      - id: 107
+        type: boolean
+        name: sensor
+      - id: 156
+        type: boolean
+        name: unknown_156
+      - id: 157
+        type: integer
+        name: unknown_157
+  # Food timer, counts down in seconds. Can only be cancelled at the cooker.
+  - entity: sensor
+    translation_key: time_remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 159
+        type: integer
+        name: sensor
+        unit: s