Add NeoPool relay details

This commit is contained in:
Norbert Richter 2022-04-07 17:00:21 +02:00
parent 2c4b9cb8ec
commit 07f98c7b25
No known key found for this signature in database
GPG Key ID: 6628701A626FA674
28 changed files with 255 additions and 64 deletions

View File

@ -15,10 +15,12 @@ All notable changes to this project will be documented in this file.
### Changed
- Remove support for Internet Explorer by allowing ECMAScript6 syntax using less JavaScript code bytes (#15280)
- NeoPool: boost command with redox control state, relay and aux detail display
### Fixed
- ESP32 save settings after OTA upload regression from v10.0.0.3
- HX711 false readings by removing large deviations
- NeoPool filtration state
## [11.0.0.4] 20220402
### Added

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionisering"
#define D_NEOPOOL_HYDROLYSIS "Hidrolise"
#define D_NEOPOOL_RELAY "Relais"
#define D_NEOPOOL_RELAY_FILTRATION "Filtrasie"
#define D_NEOPOOL_RELAY_FILTRATION "Filtrasie" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Lig"
#define D_NEOPOOL_RELAY_PH_ACID "Suurpomp"
#define D_NEOPOOL_RELAY_PH_BASE "Basispump"
#define D_NEOPOOL_RELAY_RX "Redoksvlak"
#define D_NEOPOOL_RELAY_CL "Chloorpomp"
#define D_NEOPOOL_RELAY_CD "Pekelwaterpomp"
#define D_NEOPOOL_RELAY_CD "Geleidingsvermoë"
#define D_NEOPOOL_RELAY_HEATING "Verhitting"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Tyd"
#define D_NEOPOOL_FILT_MODE "Filtrasie"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Йонизация"
#define D_NEOPOOL_HYDROLYSIS "Хидролиза"
#define D_NEOPOOL_RELAY "Реле"
#define D_NEOPOOL_RELAY_FILTRATION "Филтриране"
#define D_NEOPOOL_RELAY_FILTRATION "Филтриране" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Осветление"
#define D_NEOPOOL_RELAY_PH_ACID "Кисел. помпа"
#define D_NEOPOOL_RELAY_PH_BASE "Алкал. помпа"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Хлорна помпа"
#define D_NEOPOOL_RELAY_CD "Солна помпа"
#define D_NEOPOOL_RELAY_CD "Проводимост"
#define D_NEOPOOL_RELAY_HEATING "Загряване"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Време"
#define D_NEOPOOL_FILT_MODE "Филтриране"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionisierung"
#define D_NEOPOOL_HYDROLYSIS "Hydrolyse"
#define D_NEOPOOL_RELAY "Relais"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Licht"
#define D_NEOPOOL_RELAY_PH_ACID "Säurepumpe"
#define D_NEOPOOL_RELAY_PH_BASE "Laugenpumpe"
#define D_NEOPOOL_RELAY_RX "Redox Pegel"
#define D_NEOPOOL_RELAY_CL "Chlorpumpe"
#define D_NEOPOOL_RELAY_CD "Salzwasserpumpe"
#define D_NEOPOOL_RELAY_CD "Konduktivität"
#define D_NEOPOOL_RELAY_HEATING "Heizung"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Ventil"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Zeit"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Laufzeit Zelle"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionización"
#define D_NEOPOOL_HYDROLYSIS "Hidrólisis"
#define D_NEOPOOL_RELAY "Relé"
#define D_NEOPOOL_RELAY_FILTRATION "Filtrar"
#define D_NEOPOOL_RELAY_FILTRATION "Filtrar" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Luz"
#define D_NEOPOOL_RELAY_PH_ACID "Bomba de Ácido"
#define D_NEOPOOL_RELAY_PH_BASE "Bomba de Base"
#define D_NEOPOOL_RELAY_RX "Nivel Redox"
#define D_NEOPOOL_RELAY_CL "Bomba de Cloro"
#define D_NEOPOOL_RELAY_CD "Bomba de Salmuera"
#define D_NEOPOOL_RELAY_CD "Conductividad"
#define D_NEOPOOL_RELAY_HEATING "Calentando"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Tiempo"
#define D_NEOPOOL_FILT_MODE "Modo de filtrado"
#define D_NEOPOOL_CELL_RUNTIME "Tiempo de actividad"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionisation"
#define D_NEOPOOL_HYDROLYSIS "Hydrolyse"
#define D_NEOPOOL_RELAY "Relais"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Lumière"
#define D_NEOPOOL_RELAY_PH_ACID "Pompe acide"
#define D_NEOPOOL_RELAY_PH_BASE "Pompe base"
#define D_NEOPOOL_RELAY_RX "Pompe RedOx"
#define D_NEOPOOL_RELAY_CL "Pompe Chlore"
#define D_NEOPOOL_RELAY_CD "Pompe Brome"
#define D_NEOPOOL_RELAY_CD "Conductivité"
#define D_NEOPOOL_RELAY_HEATING "Chauffage"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Durée"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Idő"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionizzazione"
#define D_NEOPOOL_HYDROLYSIS "Idrolisi"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtrazione"
#define D_NEOPOOL_RELAY_FILTRATION "Filtrazione" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Luce"
#define D_NEOPOOL_RELAY_PH_ACID "Pompa per acido"
#define D_NEOPOOL_RELAY_PH_BASE "Pompa base"
#define D_NEOPOOL_RELAY_RX "Livello Redox"
#define D_NEOPOOL_RELAY_CL "Pompa cloro"
#define D_NEOPOOL_RELAY_CD "Pompa salamoia"
#define D_NEOPOOL_RELAY_CD "Conduttività"
#define D_NEOPOOL_RELAY_HEATING "Riscaldamento"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Orario"
#define D_NEOPOOL_FILT_MODE "Modalità di filtrazione"
#define D_NEOPOOL_CELL_RUNTIME "Cella attiva"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionizatie"
#define D_NEOPOOL_HYDROLYSIS "Hydrolyse"
#define D_NEOPOOL_RELAY "Relais"
#define D_NEOPOOL_RELAY_FILTRATION "Filtratie"
#define D_NEOPOOL_RELAY_FILTRATION "Filtratie" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Licht"
#define D_NEOPOOL_RELAY_PH_ACID "Zuurpomp"
#define D_NEOPOOL_RELAY_PH_BASE "Basepomp"
#define D_NEOPOOL_RELAY_RX "Redox peil"
#define D_NEOPOOL_RELAY_CL "Chloorpomp"
#define D_NEOPOOL_RELAY_CD "Pekelpomp"
#define D_NEOPOOL_RELAY_CD "Geleidbaarheid"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Tijd"
#define D_NEOPOOL_FILT_MODE "Filtratie modus"
#define D_NEOPOOL_CELL_RUNTIME "Cel looptijd"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionização"
#define D_NEOPOOL_HYDROLYSIS "Hidrólise"
#define D_NEOPOOL_RELAY "Relé"
#define D_NEOPOOL_RELAY_FILTRATION "Filtragem"
#define D_NEOPOOL_RELAY_FILTRATION "Filtragem" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Luz"
#define D_NEOPOOL_RELAY_PH_ACID "Bomba de ácidos"
#define D_NEOPOOL_RELAY_PH_BASE "Bomba de bases"
#define D_NEOPOOL_RELAY_RX "Nível de Redox"
#define D_NEOPOOL_RELAY_CL "Bomba de cloro"
#define D_NEOPOOL_RELAY_CD "Bomba de salmora"
#define D_NEOPOOL_RELAY_CD "Condutividade"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Tempo"
#define D_NEOPOOL_FILT_MODE "Modo de filtragem"
#define D_NEOPOOL_CELL_RUNTIME "Tempo de atividade"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionização"
#define D_NEOPOOL_HYDROLYSIS "Hidrólise"
#define D_NEOPOOL_RELAY "Relé"
#define D_NEOPOOL_RELAY_FILTRATION "Filtragem"
#define D_NEOPOOL_RELAY_FILTRATION "Filtragem" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Luz"
#define D_NEOPOOL_RELAY_PH_ACID "Bomba de ácidos"
#define D_NEOPOOL_RELAY_PH_BASE "Bomba de bases"
#define D_NEOPOOL_RELAY_RX "Nível de Redox"
#define D_NEOPOOL_RELAY_CL "Bomba de cloro"
#define D_NEOPOOL_RELAY_CD "Bomba de salmora"
#define D_NEOPOOL_RELAY_CD "Condutividade"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Tempo"
#define D_NEOPOOL_FILT_MODE "Modo de filtragem"
#define D_NEOPOOL_CELL_RUNTIME "Tempo de atividade"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -1076,13 +1076,17 @@
#define D_NEOPOOL_IONIZATION "Ionization"
#define D_NEOPOOL_HYDROLYSIS "Hydrolysis"
#define D_NEOPOOL_RELAY "Relay"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration"
#define D_NEOPOOL_RELAY_FILTRATION "Filtration" // Relay assignment
#define D_NEOPOOL_RELAY_LIGHT "Light"
#define D_NEOPOOL_RELAY_PH_ACID "Acid pump"
#define D_NEOPOOL_RELAY_PH_BASE "Base pump"
#define D_NEOPOOL_RELAY_RX "Redox level"
#define D_NEOPOOL_RELAY_CL "Chlorine pump"
#define D_NEOPOOL_RELAY_CD "Brine pump"
#define D_NEOPOOL_RELAY_CD "Conductivity"
#define D_NEOPOOL_RELAY_HEATING "Heating"
#define D_NEOPOOL_RELAY_UV "UV"
#define D_NEOPOOL_RELAY_VALVE "Valve"
#define D_NEOPOOL_RELAY_AUX "Aux"
#define D_NEOPOOL_TIME "Time"
#define D_NEOPOOL_FILT_MODE "Filtration mode"
#define D_NEOPOOL_CELL_RUNTIME "Cell runtime"

View File

@ -64,6 +64,7 @@
#define NEOPOOL_READ_REGISTER 0x04 // Function code used to read register
#define NEOPOOL_WRITE_REGISTER 0x10 // Function code used to write register
#define NEOPOOL_READ_TIMEOUT 25 // read data timeout in ms
#define NEOPOOL_DATA_TIMEOUT 30000 // directly read data register data discard timout in ms
// Pool LED RGB lights with different programs, the individual programs can be selected
@ -612,13 +613,21 @@ struct {
{MBF_ION_CURRENT, MBF_NOTIFICATION - MBF_ION_CURRENT + 1, nullptr},
{MBF_CELL_RUNTIME_LOW, MBF_CELL_RUNTIME_POL_CHANGES_HIGH - MBF_CELL_RUNTIME_LOW + 1, nullptr},
{MBF_PAR_VERSION, MBF_PAR_HIDRO_NOM - MBF_PAR_VERSION + 1, nullptr},
{MBF_PAR_TIME_LOW, MBF_PAR_FILT_GPIO - MBF_PAR_TIME_LOW + 1, nullptr},
{MBF_PAR_TIME_LOW, MBF_PAR_HEATING_GPIO - MBF_PAR_TIME_LOW + 1, nullptr},
{MBF_PAR_ION, MBF_PAR_FILTRATION_CONF - MBF_PAR_ION + 1, nullptr},
{MBF_PAR_UICFG_MACHINE, MBF_PAR_UICFG_MACH_VISUAL_STYLE - MBF_PAR_UICFG_MACHINE + 1, nullptr},
{MBF_VOLT_24_36, MBF_VOLT_12 - MBF_VOLT_24_36 + 1, nullptr},
{MBF_VOLT_5, MBF_AMP_4_20_MICRO - MBF_VOLT_5 + 1, nullptr}
};
typedef struct {
uint16_t addr;
uint16_t data;
uint32_t ts;
} TNeoPoolData;
uint16_t NeoPoolDataCount = 0;
TNeoPoolData* NeoPoolData = nullptr;
// NeoPool modbus function errors
enum NeoPoolModbusCode {
NEOPOOL_MODBUS_OK = 0,
@ -1289,20 +1298,57 @@ uint8_t NeoPoolWriteRegisterWord(uint16_t addr, uint16_t data)
}
uint16_t NeoPoolGetData(uint16_t addr)
uint16_t NeoPoolGetDataTO(uint16_t addr, uint32_t timeout)
{
uint16_t data;
uint16_t i;
for (uint32_t i = 0; i < nitems(NeoPoolReg); i++) {
for (i = 0; i < nitems(NeoPoolReg); i++) {
if (nullptr != NeoPoolReg[i].data && addr >= NeoPoolReg[i].addr && addr < NeoPoolReg[i].addr+NeoPoolReg[i].cnt) {
return NeoPoolReg[i].data[addr - NeoPoolReg[i].addr];
}
}
if (timeout < 0) {
timeout = NEOPOOL_DATA_TIMEOUT;
}
// search in temportary data array
for (i = 0; i < NeoPoolDataCount; i++) {
if (nullptr != NeoPoolData && addr == NeoPoolData[i].addr) {
if (millis() < NeoPoolData[i].ts) {
data = NeoPoolData[i].data;
} else {
NeoPoolReadRegister(addr, &data, 1);
NeoPoolData[i].data = data;
NeoPoolData[i].ts = millis() + timeout;
}
return data;
}
}
NeoPoolReadRegister(addr, &data, 1);
if (nullptr == NeoPoolData) {
NeoPoolDataCount = 1;
NeoPoolData = (TNeoPoolData*)malloc(sizeof(TNeoPoolData) * NeoPoolDataCount);
} else {
NeoPoolDataCount++;
NeoPoolData = (TNeoPoolData*)realloc(NeoPoolData, sizeof(TNeoPoolData) * NeoPoolDataCount);
}
if (nullptr != NeoPoolData) {
NeoPoolData[NeoPoolDataCount-1].addr = addr;
NeoPoolData[NeoPoolDataCount-1].data = data;
NeoPoolData[NeoPoolDataCount-1].ts = millis() + timeout;
} else {
NeoPoolDataCount = 0;
}
return data;
}
uint16_t NeoPoolGetData(uint16_t addr)
{
return NeoPoolGetDataTO(addr, -1);
}
uint32_t NeoPoolGetDataLong(uint16_t addr)
{
return ((uint32_t)NeoPoolGetData(addr) + ((uint32_t)NeoPoolGetData(addr+1) << 16));
@ -1384,7 +1430,11 @@ bool NeoPoolIsIonization(void)
#define D_NEOPOOL_JSON_RELAY_PH_BASE "Base"
#define D_NEOPOOL_JSON_RELAY_RX "Redox"
#define D_NEOPOOL_JSON_RELAY_CL "Chlorine"
#define D_NEOPOOL_JSON_RELAY_CD "Brine"
#define D_NEOPOOL_JSON_RELAY_CD "Conductivity"
#define D_NEOPOOL_JSON_RELAY_HEATING "Heating"
#define D_NEOPOOL_JSON_RELAY_UV "UV"
#define D_NEOPOOL_JSON_RELAY_FILTVALVE "Valve"
#define D_NEOPOOL_JSON_AUX "Aux"
#define D_NEOPOOL_JSON_STATE "State"
#define D_NEOPOOL_JSON_TYPE "Type"
#define D_NEOPOOL_JSON_UNIT "Unit"
@ -1610,6 +1660,11 @@ void NeoPoolShow(bool json)
ResponseAppend_P(PSTR("%s%d"), i ? PSTR(",") : PSTR(""), (NeoPoolGetData(MBF_RELAY_STATE) >> i) & 1);
}
ResponseAppend_P(PSTR("]"));
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_AUX "\":["));
for(uint16_t i = 3; i < NEOPOOL_RELAY_MAX; i++) {
ResponseAppend_P(PSTR("%s%d"), i > 3 ? PSTR(",") : PSTR(""), (NeoPoolGetData(MBF_RELAY_STATE) >> i) & 1);
}
ResponseAppend_P(PSTR("]"));
if (0 != NeoPoolGetData(MBF_PAR_PH_ACID_RELAY_GPIO)) {
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_PH_ACID "\":%d"), (NeoPoolGetData(MBF_RELAY_STATE) >> (NeoPoolGetData(MBF_PAR_PH_ACID_RELAY_GPIO)-1)) & 1);
}
@ -1625,6 +1680,15 @@ void NeoPoolShow(bool json)
if (0 != NeoPoolGetData(MBF_PAR_CD_RELAY_GPIO)) {
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_CD " \":%d"), (NeoPoolGetData(MBF_RELAY_STATE) >> NeoPoolGetData(MBF_PAR_CD_RELAY_GPIO)) & 1);
}
if (0 != NeoPoolGetData(MBF_PAR_HEATING_GPIO)) {
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_HEATING " \":%d"), (NeoPoolGetData(MBF_RELAY_STATE) >> NeoPoolGetData(MBF_PAR_HEATING_GPIO)) & 1);
}
if (0 != NeoPoolGetData(MBF_PAR_UV_RELAY_GPIO)) {
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_UV " \":%d"), (NeoPoolGetData(MBF_RELAY_STATE) >> NeoPoolGetData(MBF_PAR_UV_RELAY_GPIO)) & 1);
}
if (0 != NeoPoolGetData(MBF_PAR_FILTVALVE_GPIO)) {
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_FILTVALVE " \":%d"), (NeoPoolGetData(MBF_RELAY_STATE) >> NeoPoolGetData(MBF_PAR_FILTVALVE_GPIO)) & 1);
}
ResponseJsonEndEnd();
@ -1802,27 +1866,45 @@ void NeoPoolShow(bool json)
char sdesc[24];
memset(sdesc, 0, nitems(sdesc));
memset(stemp, 0, nitems(stemp));
if (0 != NeoPoolGetData(MBF_PAR_PH_ACID_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_PH_ACID_RELAY_GPIO)-1) {
if (0 != NeoPoolGetData(MBF_PAR_PH_ACID_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_PH_ACID_RELAY_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_PH_ACID), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_PH_BASE_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_PH_BASE_RELAY_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_PH_BASE), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_RX_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_RX_RELAY_GPIO)-1) {
} else if (0 != NeoPoolGetData(MBF_PAR_RX_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_RX_RELAY_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_RX), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_CL_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_CL_RELAY_GPIO)-1) {
} else if (0 != NeoPoolGetData(MBF_PAR_CL_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_CL_RELAY_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_CL), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_CD_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_CD_RELAY_GPIO)-1) {
} else if (0 != NeoPoolGetData(MBF_PAR_CD_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_CD_RELAY_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_CD), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_FILT_GPIO) && i == NeoPoolGetData(MBF_PAR_FILT_GPIO)-1) {
} else if (0 != NeoPoolGetData(MBF_PAR_FILT_GPIO) && i == NeoPoolGetData(MBF_PAR_FILT_GPIO)-1) {
char smotorspeed[32];
// Filtration
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_FILTRATION), sizeof(sdesc));
GetTextIndexed(smotorspeed, sizeof(smotorspeed), NeoPoolGetSpeedIndex((NeoPoolGetData(MBF_RELAY_STATE) >> 8) & 0x7), kNeoPoolFiltrationSpeed);
snprintf_P(stemp, sizeof(stemp), PSTR("%s%s%s%s"), ((NeoPoolGetData(MBF_RELAY_STATE) & (1<<i))?D_ON:D_OFF), *smotorspeed ? PSTR(" (") : PSTR(""), smotorspeed, *smotorspeed ? PSTR(")") : PSTR(""));
} else if (0 != NeoPoolGetData(MBF_PAR_LIGHTING_GPIO) && i == NeoPoolGetData(MBF_PAR_LIGHTING_GPIO)-1) {
// Light
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_LIGHT), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_HEATING_GPIO) && i == NeoPoolGetData(MBF_PAR_HEATING_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_HEATING), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_UV_RELAY_GPIO) && i == NeoPoolGetData(MBF_PAR_UV_RELAY_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_UV), sizeof(sdesc));
} else if (0 != NeoPoolGetData(MBF_PAR_FILTVALVE_GPIO) && i == NeoPoolGetData(MBF_PAR_FILTVALVE_GPIO)-1) {
strncpy_P(sdesc, PSTR(D_NEOPOOL_RELAY_VALVE), sizeof(sdesc));
} else if (i > 2) {
// Aux
char sname[(MBF_PAR_UICFG_MACH_NAME_AUX2_0 - MBF_PAR_UICFG_MACH_NAME_AUX1_0) * 2 + 1];
uint16_t base = MBF_PAR_UICFG_MACH_NAME_AUX1_0 + ((i - 3) * (MBF_PAR_UICFG_MACH_NAME_AUX2_0 - MBF_PAR_UICFG_MACH_NAME_AUX1_0));
for (uint16_t k = 0; k < (MBF_PAR_UICFG_MACH_NAME_AUX2_0 - MBF_PAR_UICFG_MACH_NAME_AUX1_0); k++) {
uint16_t data = NeoPoolGetData(base + k);
sname[k*2] = (char)(data >> 8);
sname[k*2 + 1] = (char)(data & 0xFF);
}
if (*sname) {
snprintf_P(sdesc, sizeof(sdesc), PSTR(D_NEOPOOL_RELAY_AUX " %d (%s)"), i-2, sname);
} else {
snprintf_P(sdesc, sizeof(sdesc), PSTR(D_NEOPOOL_RELAY_AUX " %d"), i-2);
}
} else {
// Relay
// unassigned relay
snprintf_P(sdesc, sizeof(sdesc), PSTR(D_NEOPOOL_RELAY " %d"), i+1);
}
@ -2366,6 +2448,9 @@ void CmndNeopoolControl(void)
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_RX "\":%d"), NeoPoolGetData(MBF_PAR_RX_RELAY_GPIO));
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_CL "\":%d"), NeoPoolGetData(MBF_PAR_CL_RELAY_GPIO));
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_CD "\":%d"), NeoPoolGetData(MBF_PAR_CD_RELAY_GPIO));
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_HEATING "\":%d"), NeoPoolGetData(MBF_PAR_HEATING_GPIO));
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_UV "\":%d"), NeoPoolGetData(MBF_PAR_UV_RELAY_GPIO));
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_FILTVALVE "\":%d"), NeoPoolGetData(MBF_PAR_FILTVALVE_GPIO));
ResponseJsonEndEnd();
}