From 33cadda7df7f8407c9d0e5c33e0c9a5fe29c8cc5 Mon Sep 17 00:00:00 2001 From: Norbert Richter Date: Sat, 28 Oct 2023 08:43:30 +0200 Subject: [PATCH 1/4] Add NeoPool hydrolysis setpoint and max --- CHANGELOG.md | 1 + .../tasmota_xsns_sensor/xsns_83_neopool.ino | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 470fa3bdfdd8..30f8ab805dfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ All notable changes to this project will be documented in this file. - Command ``GpioRead`` to show input state (#19810) - ESP32 core v3 auto TasConsole USB or Serial connection by @staars - Support for Winsen XH03x dust particle sensors using USE_PMS5003 and PMS_MODEL_ZH03X (#19850) +- NeoPool hydrolysis setpoint and max ### Breaking Changed diff --git a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino index 35d5c5b04332..456ebf14f00f 100644 --- a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino +++ b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino @@ -1629,9 +1629,14 @@ void NeoPoolShow(bool json) sunit = PSTR(D_NEOPOOL_UNIT_GPERH); int dec = 1; } + ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_HYDROLYSIS "\":{")); fvalue = (float)NeoPoolGetData(MBF_HIDRO_CURRENT)/10; - ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_HYDROLYSIS "\":{\"" D_JSON_DATA "\":" NEOPOOL_FMT_HIDRO), dec, &fvalue); + ResponseAppend_P(PSTR( "\"" D_JSON_DATA "\":" NEOPOOL_FMT_HIDRO), dec, &fvalue); ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_UNIT "\":\"%s\""), sunit); + fvalue = (float)NeoPoolGetData(MBF_PAR_HIDRO)/10; + ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_SETPOINT "\":" NEOPOOL_FMT_HIDRO), dec, &fvalue); + fvalue = (float)NeoPoolGetData(MBF_PAR_HIDRO_NOM)/10; + ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_MAX "\":" NEOPOOL_FMT_HIDRO), dec, &fvalue); ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_CELL_RUNTIME "\":{")); ResponseAppend_P(PSTR( "\"" D_NEOPOOL_JSON_CELL_RUNTIME_TOTAL "\":\"%s\""), GetDuration(NeoPoolGetDataLong(MBF_CELL_RUNTIME_LOW)).c_str()); @@ -1760,7 +1765,14 @@ void NeoPoolShow(bool json) } fvalue = (float)NeoPoolGetData(MBF_HIDRO_CURRENT)/10; WSContentSend_PD(HTTP_SNS_NEOPOOL_HYDROLYSIS, neopool_type, dec, &fvalue, sunit); + // S1 + float fhidromax = (float)NeoPoolGetData(MBF_PAR_HIDRO)/10; + ext_snprintf_P(stemp, sizeof(stemp), PSTR(NEOPOOL_FMT_HIDRO " %s"), dec, &fhidromax, sunit); + WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_INACTIVE, stemp); + WSContentSend_PD(PSTR(" ")); + + // S2 if (0 == (NeoPoolGetData(MBF_HIDRO_STATUS) & MBMSK_HIDRO_STATUS_MODULE_ACTIVE)) { WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_NORMAL, PSTR(D_NEOPOOL_STATUS_OFF)); } else if (0 == (NeoPoolGetData(MBF_HIDRO_STATUS) & MBMSK_HIDRO_STATUS_FL1)) { @@ -1773,14 +1785,14 @@ void NeoPoolShow(bool json) WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_NORMAL, PSTR(D_NEOPOOL_STATUS_OFF)); } WSContentSend_PD(PSTR(" ")); - // S2 + // S3 if (NeoPoolGetData(MBF_HIDRO_STATUS) & MBMSK_HIDRO_STATUS_COVER) { WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_ACTIVE, PSTR(D_NEOPOOL_COVER)); } else { WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_DISABLED, PSTR(D_NEOPOOL_COVER)); } WSContentSend_PD(PSTR(" ")); - // S3 + // S4 if (NeoPoolGetData(MBF_HIDRO_STATUS) & MBMSK_HIDRO_STATUS_SHOCK_ENABLED) { if ((NeoPoolGetData(MBF_CELL_BOOST) & MBMSK_CELL_BOOST_REDOX_CTL) == 0) { WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_ACTIVE, PSTR(D_NEOPOOL_SHOCK "+" D_NEOPOOL_REDOX)); @@ -1791,7 +1803,7 @@ void NeoPoolShow(bool json) WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_DISABLED, PSTR(D_NEOPOOL_SHOCK)); } WSContentSend_PD(PSTR(" ")); - // S4 + // S5 if (NeoPoolGetData(MBF_HIDRO_STATUS) & MBMSK_HIDRO_STATUS_LOW) { WSContentSend_PD(HTTP_SNS_NEOPOOL_STATUS, bg_color, HTTP_SNS_NEOPOOL_STATUS_ACTIVE, PSTR(D_NEOPOOL_LOW)); } else { From 0778b7af6863a67b94dc2a31eca759251e933191 Mon Sep 17 00:00:00 2001 From: Norbert Richter Date: Sat, 28 Oct 2023 10:35:32 +0200 Subject: [PATCH 2/4] Add NeoPool command ``NPFiltrationSpeed`` --- CHANGELOG.md | 1 + .../tasmota_xsns_sensor/xsns_83_neopool.ino | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30f8ab805dfe..27ff54034403 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ All notable changes to this project will be documented in this file. - ESP32 core v3 auto TasConsole USB or Serial connection by @staars - Support for Winsen XH03x dust particle sensors using USE_PMS5003 and PMS_MODEL_ZH03X (#19850) - NeoPool hydrolysis setpoint and max +- NeoPool command ``NPFiltrationSpeed`` to set non-standard filtration type speed ### Breaking Changed diff --git a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino index 456ebf14f00f..7ea91ab0ca65 100644 --- a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino +++ b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino @@ -806,6 +806,14 @@ const char HTTP_SNS_NEOPOOL_STATUS_ACTIVE[] PROGMEM = "filter:invert(1)"; * 4 - Intelligent * 13 - Backwash * + * NPFiltrationSpeed {} + * (only available for non-standard filtration types) + * get/set manual filtration speed (speed = 1..3) + * get filtration speed if is omitted, otherwise set new speed + * 1 - low + * 2 - mid + * 3 - high + * * NPTime {