Kaynağa Gözat

Add device amicismart as sm 63a (#5011)

* Update DEVICES.md

* add device file for amiciSmart AS-SM-63A

add device file for amiciSmart AS-SM-63A
https://www.amazon.in/dp/B0DJ5MNQFL
the temperature reading tends to spike
supports all readings and most settings

* Revert Update to DEVICES.md

* Update amiciSmart_1P_JT.yaml

fix linting issues.

* Update amiciSmart_1P_JT.yaml

Apply recommendations.

* fix(amicismart_1pjt_energymeter): renaming

- rename file to follow convention
- use concise entity names based on other configs

PR #5011

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
manic-mark 2 gün önce
ebeveyn
işleme
007ad57785

+ 294 - 0
custom_components/tuya_local/devices/amicismart_1pjt_energymeter.yaml

@@ -0,0 +1,294 @@
+name: Energy meter
+products:
+  - id: ixbxhsx6schv9abb
+    manufacturer: amiciSmart
+    model: AS-SM-63A
+entities:
+  - entity: switch
+    translation_key: breaker
+    dps:
+      - id: 16
+        type: boolean
+        name: switch
+  - entity: sensor
+    class: energy
+    dps:
+      - id: 1
+        type: integer
+        name: sensor
+        class: total_increasing
+        unit: kWh
+        mapping:
+          - scale: 100
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 9
+        type: bitfield
+        name: fault_code
+      - id: 9
+        type: bitfield
+        name: description
+        mapping:
+          - dps_val: 0
+            value: OK
+          - dps_val: 1
+            value: Short circuit
+          - dps_val: 2
+            value: Surge
+          - dps_val: 4
+            value: Overload
+          - dps_val: 8
+            value: Earth leak
+          - dps_val: 16
+            value: High temperature
+          - dps_val: 32
+            value: Fire
+          - dps_val: 64
+            value: High power
+          - dps_val: 128
+            value: Self test
+          - dps_val: 256
+            value: Over current
+          - dps_val: 512
+            value: Unbalanced
+          - dps_val: 1024
+            value: Over voltage
+          - dps_val: 2048
+            value: Under voltage
+          - dps_val: 4096
+            value: Phase fault
+          - dps_val: 8192
+            value: Outage
+          - dps_val: 16384
+            value: Magnetism
+          - dps_val: 32768
+            value: Low credit
+          - dps_val: 65536
+            value: Credit expired
+  - entity: sensor
+    name: Remaining energy
+    category: diagnostic
+    class: energy_storage
+    icon: "mdi:home-lightning-bolt"
+    dps:
+      - id: 13
+        type: integer
+        name: sensor
+        unit: kWh
+        mapping:
+          - scale: 100
+        class: measurement
+  - entity: sensor
+    class: voltage
+    dps:
+      - id: 6
+        type: base64
+        name: sensor
+        optional: true
+        unit: V
+        mask: "FFFF000000000000"
+        mapping:
+          - scale: 10
+        class: measurement
+  - entity: sensor
+    class: current
+    dps:
+      - id: 6
+        type: base64
+        name: sensor
+        optional: true
+        unit: A
+        mask: "0000FFFFFF000000"
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    class: power
+    dps:
+      - id: 6
+        type: base64
+        name: sensor
+        optional: true
+        unit: kW
+        mask: "0000000000FFFFFF"
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    class: temperature
+    dps:
+      - id: 103
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  # ==========================================
+  # CONFIG SETTINGS : TEMPERATURE
+  # ==========================================
+  - entity: number
+    name: Alarm temperature
+    category: config
+    class: temperature
+    dps:
+      - id: 17
+        type: base64
+        name: value
+        unit: C
+        mask: "0000FFFF"
+        range:
+          min: 10
+          max: 85
+  - entity: switch
+    name: Over temperature shutoff
+    category: config
+    dps:
+      - id: 17
+        type: base64
+        name: switch
+        mask: "00FF0000"
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 1
+            value: true
+  # ==========================================
+  # CONFIG SETTINGS : CURRENT
+  # ==========================================
+  - entity: number
+    name: Alarm current
+    category: config
+    class: current
+    dps:
+      - id: 18
+        type: base64
+        name: value
+        unit: A
+        mask: "0000FFFF0000000000000000"
+        range:
+          min: 10
+          max: 400
+        mapping:
+          - scale: 10
+            step: 5
+  - entity: switch
+    name: Over current shutoff
+    category: config
+    dps:
+      - id: 18
+        type: base64
+        name: switch
+        mask: "00FF00000000000000000000"
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 1
+            value: true
+  # ==========================================
+  # CONFIG SETTINGS : VOLTAGE
+  # ==========================================
+  - entity: number
+    name: Alarm over voltage
+    category: config
+    class: voltage
+    dps:
+      - id: 18
+        type: base64
+        name: value
+        unit: V
+        mask: "000000000000FFFF00000000"
+        range:
+          min: 120
+          max: 300
+  - entity: switch
+    name: Over voltage shutoff
+    category: config
+    dps:
+      - id: 18
+        type: base64
+        name: switch
+        mask: "0000000000FF000000000000"
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 1
+            value: true
+  - entity: number
+    name: Alarm under voltage
+    category: config
+    class: voltage
+    dps:
+      - id: 18
+        type: base64
+        name: value
+        unit: V
+        mask: "00000000000000000000FFFF"
+        range:
+          min: 80
+          max: 210
+  - entity: switch
+    name: Under voltage shutoff
+    category: config
+    dps:
+      - id: 18
+        type: base64
+        name: switch
+        mask: "000000000000000000FF0000"
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 1
+            value: true
+  # ==========================================
+  # CONFIG SETTINGS : RECOVERY
+  # ==========================================
+  - entity: number
+    name: Recovery attempts
+    category: config
+    icon: "mdi:counter"
+    dps:
+      - id: 102
+        type: integer
+        name: value
+        range:
+          min: 1
+          max: 30
+  - entity: number
+    name: Recovery delay
+    category: config
+    icon: "mdi:timer-check-outline"
+    dps:
+      - id: 107
+        type: integer
+        name: value
+        unit: s
+        range:
+          min: 1
+          max: 100
+  # ==========================================
+  # CONFIG SETTINGS : MISC
+  # ==========================================
+  - entity: switch
+    name: Prepay
+    category: config
+    icon: "mdi:hand-coin"
+    dps:
+      - id: 11
+        type: boolean
+        name: switch
+  - entity: button
+    name: Prepaid reset
+    category: config
+    class: restart
+    dps:
+      - id: 12
+        type: boolean
+        name: button