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

Madimack Inverflow: merge Aquaforte VSP and add Aquagem Inverpro

Aquagem Inverpro is a cut down version of these two identical models.
A single config can handle all three.

PR #3062
Jason Rumney 10 месяцев назад
Родитель
Сommit
4675d1035b

+ 2 - 1
ACKNOWLEDGEMENTS.md

@@ -641,7 +641,7 @@ Further device support has been made with the assistance of users. Please consid
 - [edev-us](https://github.com/edev-us) for contributing support for Sobralik pet fountain.
 - [Dedemoos](https://github.com/Dedemoos) for contributing improvements for SWS01 weather station.
 - [David-Eilers](https://github.com/David-Eilers) for contributing support for Calex S45 Clear E27 lightbulb.
-- [pelle2011](https://github.com/pelle2011) for contributing support for AquaForte Inverter VSP pool pump.
+- [pelle2011](https://github.com/pelle2011) for contributing support for AquaForte Inverter VSP pool pump which was merged with Madimack Inverflow.
 - [tv4you2016](https://github.com/tv4you2016) for contributing support for Cecotec ForceClima Soundless air conditioner.
 - [danieljohngomez](https://github.com/danieljohngomez) for assisting with support for BSTUOKEY invisible door lock.
 - [robinhood-code](https://github.com/robinhood-code) for assisting with support for Arlec USB strip lights.
@@ -873,3 +873,4 @@ Further device support has been made with the assistance of users. Please consid
 - [Antoni950425](https://github.com/Antoni950425) for assisting with support for Zigbee smart air box BR V2.
 - [skylarhays](https://github.com/skylarhays) for assisting with support for Arknoah Aquarium lights.
 - [MichalSieciechowicz](https://github.com/MichalSieciechowicz) for contributing support for Manta Windy weather station.
+- [tomcastleman](https://github.com/tomcastleman) for contributing support for Aquagem Inverpro pool pump, which was merged with Madimack Inverflow.

+ 1 - 2
DEVICES.md

@@ -944,7 +944,6 @@ port and password.
 - generic smoke detector
 - Air Housekeeper 6-in-1 air quality monitor
 - Akai heat pump clothes dryer
-- AquaForte Inverter VSP pool pump
 - ASIP-0622 indoor planter
 - Brennenstuhl WFD3050P PIR motion activated CCT spotlight
 - Bresser Smart 7-in-1 weather station
@@ -967,7 +966,7 @@ port and password.
 - Kogan bidet toilet seat
 - Kogan KAWHTNOSLPA white noise sleep aid
 - Konlen/Rockson WF96L water level controller
-- Madimack Inverflow Pro pool pump
+- Madimack Inverflow Pro pool pump (also AquaForte Inverter VSP, Aquagem Inverpro)
 - Manta Windy MT0200B weather station
 - Mayborn GroClock Connect sleep training alarm clock (also sold under Tommee Tippee and other brands)
 - Mirabella Genio motion sensor

+ 0 - 234
custom_components/tuya_local/devices/aquaforte_vsp_poolpump.yaml

@@ -1,234 +0,0 @@
-name: Pool pump
-products:
-  - id: i0elff0w1pehctax
-    manufacturer: AquaForte
-    model: Inverter VSP
-entities:
-  - entity: valve
-    class: water
-    dps:
-      - id: 105
-        type: boolean
-        name: valve
-  - entity: select
-    name: Pump mode
-    icon: "mdi:pump"
-    category: config
-    dps:
-      - id: 103
-        type: string
-        name: option
-        mapping:
-          - dps_val: "MI"
-            value: "Manual"
-          - dps_val: "AI"
-            value: "AI Flow"
-          - dps_val: "backwash"
-            value: "Boost"
-  - entity: select
-    name: Pump flow units
-    category: config
-    dps:
-      - id: 110
-        type: string
-        name: option
-        mapping:
-          - dps_val: "m3_h"
-            value: "m³/h"
-          - dps_val: "l_min"
-            value: "L/min"
-          - dps_val: "us_gpm"
-            value: "US gpm"
-          - dps_val: "ipm_gpm"
-            value: "Imperial gpm"
-  - entity: number
-    name: Boost timer
-    translation_key: timer
-    class: duration
-    category: config
-    mode: box
-    dps:
-      - id: 104
-        type: integer
-        name: value
-        range:
-          min: 0
-          max: 1500
-        unit: s
-  - entity: number
-    name: AI flow rate
-    class: volume_flow_rate
-    category: config
-    mode: slider
-    dps:
-      - id: 106
-        type: integer
-        name: value
-        range:
-          min: 0
-          max: 1000
-      - id: 101
-        type: integer
-        name: maximum
-      - id: 107
-        type: integer
-        name: minimum
-      - id: 113
-        type: integer
-        name: step
-      - id: 110
-        type: string
-        name: unit
-        mapping:
-          - dps_val: "m3_h"
-            value: "m³/h"
-          - dps_val: "l_min"
-            value: "L/min"
-          - dps_val: "us_gpm"
-            value: "gal/min"
-          - dps_val: "ipm_gpm"
-            value: "gal/min"
-  - entity: number
-    name: Manual percentage power
-    category: config
-    mode: slider
-    dps:
-      - id: 111
-        type: integer
-        name: value
-        range:
-          min: 30
-          max: 120
-        unit: "%"
-  - entity: sensor
-    name: Boost time remaining
-    class: duration
-    category: diagnostic
-    dps:
-      - id: 108
-        type: integer
-        name: sensor
-        unit: s
-  - entity: sensor
-    class: power
-    category: diagnostic
-    dps:
-      - id: 5
-        type: integer
-        name: sensor
-        unit: W
-  - entity: sensor
-    class: volume_flow_rate
-    category: diagnostic
-    dps:
-      - id: 112
-        type: integer
-        name: sensor
-      - id: 110
-        type: string
-        name: unit
-        mapping:
-          - dps_val: "m3_h"
-            value: "m³/h"
-          - dps_val: "l_min"
-            value: "L/min"
-          - dps_val: "us_gpm"
-            value: "gal/min"
-          - dps_val: "ipm_gpm"
-            value: "gal/min"
-  - entity: sensor
-    class: energy
-    category: diagnostic
-    dps:
-      - id: 109
-        type: integer
-        name: sensor
-        class: total_increasing
-        unit: kWh
-        mapping:
-          - scale: 100
-  - entity: sensor
-    name: Actual pump speed
-    category: diagnostic
-    dps:
-      - id: 102
-        type: integer
-        name: sensor
-        unit: "%"
-        range:
-          min: 30
-          max: 120
-  - entity: binary_sensor
-    category: diagnostic
-    class: problem
-    dps:
-      - id: 2
-        type: bitfield
-        name: sensor
-        mapping:
-          - dps_val: 0
-            value: false
-          - value: true
-      - id: 2
-        type: bitfield
-        name: fault_code
-      - id: 2
-        type: bitfield
-        name: description
-        mapping:
-          - dps_val: 0
-            value: "None"
-          - dps_val: "E001"
-            value: "E001 - Abnormal input voltage"
-          - dps_val: "E002"
-            value: "E002 - Output over current"
-          - dps_val: "E101"
-            value: "E101 - Heat sink over heat"
-          - dps_val: "E102"
-            value: "E102 - Heat sink sensor error"
-          - dps_val: "E103"
-            value: "E103 - Master driver board error"
-          - dps_val: "E104"
-            value: "E104 - Phase-deficient protection"
-          - dps_val: "E105"
-            value: "E105 - AC current sampling circuit failure"
-          - dps_val: "E106"
-            value: "E106 - DC abnormal voltage"
-          - dps_val: "E107"
-            value: "E107 - PFC protection"
-          - dps_val: "E108"
-            value: "E108 - Motor power overload"
-          - dps_val: "E201"
-            value: "E201 - Circuit board error"
-          - dps_val: "E202"
-            value: "E202 - Master board EEPROM reading failure"
-          - dps_val: "E203"
-            value: "E203 - RTC time reading error"
-          - dps_val: "E204"
-            value: "E204 - Display Board EEPROM reading failure"
-          - dps_val: "E205"
-            value: "E205 - Communication Error"
-          - dps_val: "E206"
-            value: "E206 - RS485 communication Error"
-          - dps_val: "E207"
-            value: "E207 - No water protection"
-          - dps_val: "E208"
-            value: "E208 - Pressure sensor failure"
-          - dps_val: "E209"
-            value: "E209 - Loss of prime"
-          - dps_val: "AL01"
-            value: "AL01 - High temperature warning deceleration"
-          - dps_val: "AL02"
-            value: "AL02 - AC voltage low droop"
-          - dps_val: "AL03"
-            value: "AL03 - Anti Freezing"
-          - dps_val: "E003"
-            value: "E003 - No water protection"
-  - entity: binary_sensor
-    name: Flow pressure warning
-    category: diagnostic
-    class: problem
-    dps:
-      - id: 114
-        type: boolean
-        name: sensor

+ 81 - 5
custom_components/tuya_local/devices/madimack_inverflow_pro.yaml

@@ -1,8 +1,15 @@
 name: Pool pump
+legacy_type: aquaforte_vsp_poolpump
 products:
   - id: ircs2n82vgrozoew
     manufacturer: Madimack
     model: Inverflow Pro P300i
+  - id: i0elff0w1pehctax
+    manufacturer: AquaForte
+    model: Inverter VSP
+  - id: skbzchwjmnf8vmm4
+    manufacturer: Aquagem
+    model: Inverpro v20230816
 entities:
   - entity: valve
     class: water
@@ -12,16 +19,16 @@ entities:
         name: valve
       - id: 116
         name: unknown_116
+        optional: true
         type: string
-        hidden: true
       - id: 117
         name: unknown_117
         type: string
-        hidden: true
+        optional: true
       - id: 115
         name: unknown_115
         type: boolean
-        hidden: true
+        optional: true
   - entity: select
     name: Pump mode
     icon: "mdi:pump"
@@ -35,14 +42,25 @@ entities:
             value: "Manual"
           - dps_val: "AI"
             value: "AI Flow"
+            available: aiflow_available
           - dps_val: "backwash"
             value: "Boost"
+      - id: 110
+        type: string
+        optional: true
+        name: aiflow_available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
   - entity: select
     name: Pump flow units
     category: config
+    hidden: unavailable
     dps:
       - id: 110
         type: string
+        optional: true
         name: option
         mapping:
           - dps_val: "m3_h"
@@ -53,6 +71,14 @@ entities:
             value: "US gpm"
           - dps_val: "ipm_gpm"
             value: "Imperial gpm"
+      - id: 110
+        type: string
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
   - entity: number
     name: Boost timer
     translation_key: timer
@@ -72,21 +98,30 @@ entities:
     class: volume_flow_rate
     category: config
     mode: slider
+    hidden: unavailable
     dps:
       - id: 106
         type: integer
+        optional: true
         name: value
+        range:
+          min: 0
+          max: 1000
       - id: 101
         type: integer
+        optional: true
         name: maximum
       - id: 107
         type: integer
+        optional: true
         name: minimum
       - id: 113
         type: integer
+        optional: true
         name: step
       - id: 110
         type: string
+        optional: true
         name: unit
         mapping:
           - dps_val: "m3_h"
@@ -97,6 +132,14 @@ entities:
             value: "gal/min"
           - dps_val: "ipm_gpm"
             value: "gal/min"
+      - id: 110
+        type: string
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
   - entity: number
     name: Manual percentage power
     category: config
@@ -108,6 +151,8 @@ entities:
         range:
           min: 30
           max: 120
+        mapping:
+          - step: 5
         unit: "%"
   - entity: sensor
     name: Boost time remaining
@@ -129,12 +174,15 @@ entities:
   - entity: sensor
     class: volume_flow_rate
     category: diagnostic
+    hidden: unavailable
     dps:
       - id: 112
         type: integer
+        optional: true
         name: sensor
       - id: 110
         type: string
+        optional: true
         name: unit
         mapping:
           - dps_val: "m3_h"
@@ -145,28 +193,46 @@ entities:
             value: "gal/min"
           - dps_val: "ipm_gpm"
             value: "gal/min"
+      - id: 110
+        type: string
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
   - entity: sensor
-    name: Hourly energy usage
+    class: energy
     category: diagnostic
     dps:
       - id: 109
         type: integer
         name: sensor
-        class: measurement
+        class: total_increasing
         unit: kWh
         mapping:
           - scale: 100
   - entity: sensor
     name: Actual pump speed
     category: diagnostic
+    hidden: unavailable
     dps:
       - id: 102
         type: integer
+        optional: true
         name: sensor
         unit: "%"
         range:
           min: 30
           max: 120
+      - id: 110
+        type: string
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
   - entity: binary_sensor
     category: diagnostic
     class: problem
@@ -237,7 +303,17 @@ entities:
     name: Flow pressure warning
     category: diagnostic
     class: problem
+    hidden: unavailable
     dps:
       - id: 114
         type: boolean
+        optional: true
         name: sensor
+      - id: 110
+        type: string
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true