[haywardomnilogic] Added filter & pump RPM & state channels (#11223)

* Update unit formating

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Updates per last review

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Updated units to decimal

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Removed erroneous chlorinator code from filterhandler

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Adding pump support, added body of water to xml paths to prevent detection of terminal or other items

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Added getApiDef call to initialize when debug=trace

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Fixed typo on README

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Cleanup pump xml spotless checks

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Fix typos in README

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Fixed a couple typos in pump discovery

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Fixed README typo

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Fix untested pump typos

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Fix pump typo

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Add thing properties and max filter/pump speed command

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Add support for relays to exist in the backyard

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Update README

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Add support for colorLogicLights to exist in the backyard

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Remove sensor thing and associated handler.  Hayward does not expose data for stand alone sensors.  Packaged in other things (backyard air temp, body of water temp, etc.)

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Added heater states

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Updated heater state in readme

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Added dynamic state description updates to set pump & filter minimum and maximum speeds.

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Moved dynamicStateDescription updates to thing initialize routine

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Code checks

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Add min/max limits to filter, pump and heater setpoints

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Add virtual heater dynamic state descriptions.  Change filter & pump speeds back to number:dimensionless

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Add pump & filter speed RPM channels

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Fixed typo in pump handler

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Elaborate on filter/pump handler initialize exception

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Update bow.xml property intit's to empty values (fix typos)

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Added debug flag to inject XML until appropriate integration tests are setup

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Pump and Filter enable to last speed

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Removed tatus file

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Update readme

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* format readMe

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Update ReadMe

Signed-off-by: Matt Myers <mmyers75@icloud.com>

* Remove xml debug code

Signed-off-by: Matt Myers <mmyers75@icloud.com>
This commit is contained in:
Matt
2022-01-03 10:49:36 -05:00
committed by GitHub
parent 45ce201813
commit 770e897f36
21 changed files with 975 additions and 269 deletions

View File

@@ -41,15 +41,16 @@ Hayward OmniLogic Connection Parameters:
### Backyard Channels
| backyardAirTemp | Number:Temperature | Backyard air temp sensor reading | R |
|-----------------|--------------------|----------------------------------|:-:|
| backyardStatus | String | Backyard status | R |
| backyardState | String | Backyard state | R |
| backyardAlarm1 | String | Backyard alarm #1 | R |
| backyardAlarm2 | String | Backyard alarm #2 | R |
| backyardAlarm3 | String | Backyard alarm #3 | R |
| backyardAlarm4 | String | Backyard alarm #4 | R |
| backyardAlarm5 | String | Backyard alarm #5 | R |
| Channel Type ID | Item Type | Description | Read Write |
|-----------------|--------------------|----------------------------------|:----------:|
| backyardAirTemp | Number:Temperature | Backyard air temp sensor reading | R |
| backyardStatus | String | Backyard status | R |
| backyardState | String | Backyard state | R |
| backyardAlarm1 | String | Backyard alarm #1 | R |
| backyardAlarm2 | String | Backyard alarm #2 | R |
| backyardAlarm3 | String | Backyard alarm #3 | R |
| backyardAlarm4 | String | Backyard alarm #4 | R |
| backyardAlarm5 | String | Backyard alarm #5 | R |
### Body of Water Channels
@@ -87,7 +88,9 @@ Hayward OmniLogic Connection Parameters:
|---------------------|----------------------|------------------------|:----------:|
| filterEnable | Switch | Filter enable | R/W |
| filterValvePosition | String | Filter valve position | R |
| filterSpeed | Number:Dimensionless | Filter speed in % | R/W |
| filterSpeedPercent | Number:Dimensionless | Filter speed in % | R/W |
| filterSpeedRpm | Number | Filter speed in RPM | R/W |
| filterSpeedSelect | String | Filter speed presets | R/W |
| filterState | String | Filter state | R |
| filterLastSpeed | Number:Dimensionless | Filter last speed in % | R |
@@ -95,15 +98,19 @@ Hayward OmniLogic Connection Parameters:
| Channel Type ID | Item Type | Description | Read Write |
|-----------------|-----------|---------------|:----------:|
| heaterState | Number | Heater state | R |
| heaterState | String | Heater state | R |
| heaterEnable | Switch | Heater enable | R |
### Pump Channels
| Channel Type ID | Item Type | Description | Read Write |
|-----------------|----------------------|-----------------|:----------:|
| pumpEnable | Switch | Pump enable | R |
| pumpSpeed | Number:Dimensionless | Pump speed in % | R |
| Channel Type ID | Item Type | Description | Read Write |
|------------------|----------------------|----------------------|:----------:|
| pumpEnable | Switch | Pump enable | R/W |
| pumpSpeedPercent | Number:Dimensionless | Pump speed in % | R/W |
| pumpSpeedRpm | Number | Pump speed in RPM | R/W |
| pumpSpeedSelect | String | Pump speed presets | R/W |
| pumpState | String | Pump state | R |
| pumpLastSpeed | Number:Dimensionless | Pump last speed in % | R |
### Relay Channels
@@ -115,57 +122,11 @@ Hayward OmniLogic Connection Parameters:
| Channel Type ID | Item Type | Description | Read Write |
|-----------------------|--------------------|-------------------------|:----------:|
| heaterEnable | Number | Heater enable | R |
| heaterEnable | Switch | Heater enable | R |
| heaterCurrentSetpoint | Number:Temperature | Heater Current Setpoint | R/W |
## Full Example
After installing the binding, you will need to manually add the Hayward Connection thing and enter your credentials.
All pool items can be autmatically discovered by scanning the bridge
All pool items can be automatically discovered by scanning the bridge.
Goto the inbox and add the things.
### demo.items:
```text
Group gPool "Pool" ["Location"]
Group gHaywardChlorinator "Hayward Chlorinator" (gPool) ["Equipment"]
Switch HaywardChlorinator_Power "Power" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorEnable" }
String HaywardChlorinator_OperatingMode "Operating Mode" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorOperatingMode" }
Number:Dimensionless HaywardChlorinator_SaltOutput "Salt Output (%)" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorTimedPercent" }
String HaywardChlorinator_scMode "scMode" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorScMode" }
Number HaywardChlorinator_ChlorinatorError "Chlorinator Error" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorError" }
String HaywardChlorinator_ChlorinatorAlert "Chlorinator Alert" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorAlert" }
Number:Dimensionless HaywardChlorinator_AverageSaltLevel "Average Salt Level" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorAvgSaltLevel" }
Number:Dimensionless HaywardChlorinator_InstantSaltLevel "Instant Salt Level" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorInstantSaltLevel" }
Number HaywardChlorinator_Status "Status" (gHaywardChlorinator) ["Point"] { channel="haywardomnilogic:chlorinator:3766402f00:34:chlorStatus" }
Group gHaywardBackyard "Hayward Backyard" (gPool) ["Equipment"]
Number:Temperature HaywardBackyard_AirTemp "Air Temp" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardAirTemp" }
String HaywardBackyard_Status "Status" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardStatus" }
String HaywardBackyard_State "State" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardState" }
String HaywardBackyard_BackyardAlarm1 "Alarm" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardAlarm1" }
String HaywardBackyard_BackyardAlarm2 "Alarm" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardAlarm2" }
String HaywardBackyard_BackyardAlarm3 "Alarm" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardAlarm3" }
String HaywardBackyard_BackyardAlarm4 "Alarm" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardAlarm4" }
String HaywardBackyard_BackyardAlarm5 "Alarm" (gHaywardBackyard) ["Point"] { channel="haywardomnilogic:backyard:3766402f00:35940:backyardAlarm5" }
Group gHaywardGas "Hayward Gas" (gPool) ["Equipment"]
Number HaywardGas_HeaterState "Heater State" (gHaywardGas) ["Point"] { channel="haywardomnilogic:heater:3766402f00:33:heaterState" }
Switch HaywardGas_HeaterEnable "Heater Enable" (gHaywardGas) ["Point"] { channel="haywardomnilogic:heater:3766402f00:33:heaterEnable" }
Group gHaywardJets "Hayward Jets" (gPool) ["Equipment"]
Switch HaywardJets_Power "Power" (gHaywardJets) ["Point"] { channel="haywardomnilogic:relay:3766402f00:37:relayState" }
Group gHaywardPool "Hayward Pool" (gPool) ["Equipment"]
Switch HaywardPool_FlowSensor "Flow Sensor" (gHaywardPool) ["Point"] { channel="haywardomnilogic:bow:3766402f00:30:bowFlow" }
Number:Temperature HaywardPool_WaterTemp "Water Temp" (gHaywardPool) ["Point"] { channel="haywardomnilogic:bow:3766402f00:30:bowWaterTemp" }
Group gHaywardPoolLight "Hayward Pool Light" (gPool) ["Equipment"]
Switch HaywardPoolLight_Power "Power" (gHaywardPoolLight) ["Point"] { channel="haywardomnilogic:colorlogic:3766402f00:38:colorLogicLightEnable" }
String HaywardPoolLight_LightState "Light State" (gHaywardPoolLight) ["Point"] { channel="haywardomnilogic:colorlogic:3766402f00:38:colorLogicLightState" }
String HaywardPoolLight_CurrentShow "Current Show" (gHaywardPoolLight) ["Point"] { channel="haywardomnilogic:colorlogic:3766402f00:38:colorLogicLightCurrentShow" }
```