Преглед изворни кода

Poolsystems IPS100Max: add compatible Fairland X20

Add some optional dps from PR #2191
Jason Rumney пре 1 година
родитељ
комит
5a905ea21c
3 измењених фајлова са 40 додато и 65 уклоњено
  1. 1 0
      ACKNOWLEDGEMENTS.md
  2. 2 2
      DEVICES.md
  3. 37 63
      custom_components/tuya_local/devices/poolsystems_ips100max.yaml

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -624,3 +624,4 @@ Further device support has been made with the assistance of users. Please consid
 - [nanosonde](https://github.com/nanosonde) for contributing support for Pool Systems IPS-100MAX pool heatpump.
 - [oyvindwe](https://github.com/oyvindwe) for contributing improvements to Nedis pet feeder.
 - [juliusvaart](https://github.com/juliusvaart) for contributing support for Duux Whisper Flex Ultimate fan.
+- [abipster](https://github.com/abipster) for contributing support for Fairland X20 series (merged with Poolsystems IPS100max).

+ 2 - 2
DEVICES.md

@@ -115,8 +115,8 @@
 - Madimack(model unknown) pool heatpump (seems to match Fairland IPH45 as well)
 - Poolex Silverline, Q-7, Q-line, Arctic and Vertigo heatpumps
 - Poolsana InverPower Next pool heatpump
-- Pool Systems IPS 100MAX pool heatpump
-- Pool Systems IPS Pro pool heatpump (seems to match Fairland Inver-X as well)
+- Pool Systems IPS 100MAX pool heatpump (also Fairland X20 series)
+- Pool Systems IPS Pro pool heatpump (also Fairland Inver-X)
 - Pro-Energy PE08 pool heatpump
 - Remora pool heatpump
 - W'eau pool heatpump (simple model and a more complex 13kW model)

+ 37 - 63
custom_components/tuya_local/devices/poolsystems_ips100max.yaml

@@ -2,6 +2,8 @@ name: Pool heatpump
 products:
   - id: 1ovawewadpk2jiaw
     name: Pool-Systems IPS-100MAX
+  - id: a4bepadftizzrd8g
+    name: Fairland X20 series
 primary_entity:
   entity: climate
   dps:
@@ -17,7 +19,7 @@ primary_entity:
           constraint: work_mode
           conditions:
             - dps_val: smart
-              value: heat_cool
+              value: auto
             - dps_val: cool
               value: cool
             - dps_val: warm
@@ -51,21 +53,22 @@ primary_entity:
       name: temperature
       type: integer
       range:
-        min: 18
-        max: 40
-      mapping:
-        - constraint: temperature_unit
-          conditions:
-            - dps_val: true
-              range:
-                min: 60
-                max: 115
+        min: -22
+        max: 122
     - id: 108
       type: integer
       name: min_temperature
     - id: 109
       type: integer
       name: max_temperature
+    - id: 114
+      type: string
+      optional: true
+      name: cool_available
+    - id: 115
+      type: string
+      optional: true
+      name: boost_available
 secondary_entities:
   - entity: sensor
     category: diagnostic
@@ -97,10 +100,29 @@ secondary_entities:
         name: sensor
         mapping:
           - dps_val: 4
-            value: false
+            value: true
+            constraint: fault_code_2
+            conditions:
+              - dps_val: 0
+                value: false
+              - dps_val: null
+                value: false
           - dps_val: 0
-            value: false
+            value: true
+            constraint: fault_code_2
+            conditions:
+              - dps_val: 0
+                value: false
+              - dps_val: null
+                value: false
           - value: true
+      - id: 110
+        type: bitfield
+        name: fault_code
+      - id: 111
+        type: bitfield
+        optional: true
+        name: fault_code_2
   - entity: sensor
     category: diagnostic
     class: power
@@ -110,55 +132,7 @@ secondary_entities:
         type: integer
         unit: W
         optional: true
-  - entity: number
-    category: config
-    name: Minimum temperature
-    class: temperature
-    dps:
-      - id: 108
-        type: integer
-        name: value
-        range:
-          min: 18
-          max: 40
-        mapping:
-          - constraint: unit
-            conditions:
-              - dps_val: true
-                range:
-                  min: 60
-                  max: 115
-      - id: 104
-        name: unit
-        type: boolean
-        mapping:
-          - dps_val: false
-            value: C
-          - dps_val: true
-            value: F
-  - entity: number
-    category: config
-    name: Maximum temperature
-    class: temperature
-    dps:
-      - id: 109
-        type: integer
-        name: value
-        range:
-          min: 18
-          max: 40
-        mapping:
-          - constraint: unit
-            conditions:
-              - dps_val: true
-                range:
-                  min: 60
-                  max: 115
-      - id: 104
-        name: unit
+      - id: 113
+        name: available
         type: boolean
-        mapping:
-          - dps_val: false
-            value: C
-          - dps_val: true
-            value: F
+        optional: true