diff --git a/I2CDEVICES.md b/I2CDEVICES.md index cd193ee92..57b10538c 100644 --- a/I2CDEVICES.md +++ b/I2CDEVICES.md @@ -85,3 +85,4 @@ Index | Define | Driver | Device | Address(es) | Description 55 | USE_EZOCO2 | xsns_78 | EZOCO2 | 0x61 - 0x70 | CO2 sensor 55 | USE_EZOO2 | xsns_78 | EZOO2 | 0x61 - 0x70 | O2 sensor 55 | USE_EZOPRS | xsns_78 | EZOPRS | 0x61 - 0x70 | Pressure sensor + 55 | USE_EZOFLO | xsns_78 | EZOFLO | 0x61 - 0x70 | Flow meter sensor diff --git a/tasmota/i18n.h b/tasmota/i18n.h index d19bf3144..0611eafac 100644 --- a/tasmota/i18n.h +++ b/tasmota/i18n.h @@ -182,6 +182,7 @@ #define D_JSON_VCC "Vcc" #define D_JSON_VERSION "Version" #define D_JSON_VOLTAGE "Voltage" +#define D_JSON_VOLUME "Volume" #define D_JSON_WEIGHT "Weight" #define D_JSON_WIFI "Wifi" #define D_JSON_WRONG "Wrong" @@ -781,6 +782,8 @@ const char HTTP_SNS_PH[] PROGMEM = "{s}%s " D_PH "{ const char HTTP_SNS_ORP[] PROGMEM = "{s}%s " D_ORP "{m}%s " D_UNIT_MILLIVOLT "{e}"; const char HTTP_SNS_EC[] PROGMEM = "{s}%s " D_EC "{m}%s " D_UNIT_MICROSIEMENS_PER_CM "{e}"; const char HTTP_SNS_O2[] PROGMEM = "{s}%s " D_O2 "{m}%s " D_UNIT_PERCENT "{e}"; +const char HTTP_SNS_LITERS[] PROGMEM = "{s}%s " D_VOLUME "{m}%s " D_UNIT_LITERS "{e}"; +const char HTTP_SNS_LPM[] PROGMEM = "{s}%s " D_FLOW_RATE "{m}%s " D_UNIT_LITERS_PER_MIN "{e}"; const char S_MAIN_MENU[] PROGMEM = D_MAIN_MENU; const char S_CONFIGURATION[] PROGMEM = D_CONFIGURATION; diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h index 2a3e93e5d..162c0d564 100644 --- a/tasmota/language/bg_BG.h +++ b/tasmota/language/bg_BG.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV мощност" #define D_VERSION "Версия" #define D_VOLTAGE "Напрежение" +#define D_VOLUME "Volume" #define D_WEIGHT "Тегло" #define D_WARMLIGHT "Топла" #define D_WEB_SERVER "Уеб сървър" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h index df9f31290..e4e07aa03 100644 --- a/tasmota/language/cs_CZ.h +++ b/tasmota/language/cs_CZ.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "Verze" #define D_VOLTAGE "Napětí" +#define D_VOLUME "Volume" #define D_WEIGHT "Hmotnost" #define D_WARMLIGHT "Teplé světlo" #define D_WEB_SERVER "Web Server" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h index 6a5745eee..5ab4b8df4 100644 --- a/tasmota/language/de_DE.h +++ b/tasmota/language/de_DE.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Intensität" #define D_VERSION "Version" #define D_VOLTAGE "Spannung" +#define D_VOLUME "Volume" #define D_WEIGHT "Gewicht" #define D_WARMLIGHT "warm" #define D_WEB_SERVER "Web-Server" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h index 44db54b36..5fdbb305b 100644 --- a/tasmota/language/el_GR.h +++ b/tasmota/language/el_GR.h @@ -191,6 +191,7 @@ #define D_UV_POWER "Ένταση UV" #define D_VERSION "Έκδοση" #define D_VOLTAGE "Τάση" +#define D_VOLUME "Volume" #define D_WEIGHT "Βάρος" #define D_WARMLIGHT "Θερμό" #define D_WEB_SERVER "Διακομιστής Web" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h index efaac7f76..25fa29550 100644 --- a/tasmota/language/en_GB.h +++ b/tasmota/language/en_GB.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "Version" #define D_VOLTAGE "Voltage" +#define D_VOLUME "Volume" #define D_WEIGHT "Weight" #define D_WARMLIGHT "Warm" #define D_WEB_SERVER "Web Server" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index 7c05c0398..88537c607 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "Versión" #define D_VOLTAGE "Tensión" +#define D_VOLUME "Volume" #define D_WEIGHT "Peso" #define D_WARMLIGHT "Cálida" #define D_WEB_SERVER "Servidor Web" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h index a6013f54f..4fb5a3452 100644 --- a/tasmota/language/fr_FR.h +++ b/tasmota/language/fr_FR.h @@ -187,6 +187,7 @@ #define D_UV_POWER "Puissance UV" #define D_VERSION "Version" #define D_VOLTAGE "Tension" +#define D_VOLUME "Volume" #define D_WEIGHT "Poids" #define D_WARMLIGHT "Chaud" #define D_WEB_SERVER "Serveur web" @@ -741,6 +742,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h index 3ca9774cd..032ce5c04 100644 --- a/tasmota/language/he_HE.h +++ b/tasmota/language/he_HE.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "גרסה" #define D_VOLTAGE "מתח" +#define D_VOLUME "Volume" #define D_WEIGHT "משקל" #define D_WARMLIGHT "חום" #define D_WEB_SERVER "Web שרת" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h index 2d4f55cf8..be7590886 100644 --- a/tasmota/language/hu_HU.h +++ b/tasmota/language/hu_HU.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV teljesítmény" #define D_VERSION "Verzió" #define D_VOLTAGE "Feszültség" +#define D_VOLUME "Volume" #define D_WEIGHT "Tömeg" #define D_WARMLIGHT "Meleg fény" #define D_WEB_SERVER "Webszerver" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h index 703777448..614d47a95 100644 --- a/tasmota/language/it_IT.h +++ b/tasmota/language/it_IT.h @@ -191,6 +191,7 @@ #define D_UV_POWER "Intensità UV" #define D_VERSION "Versione" #define D_VOLTAGE "Tensione" +#define D_VOLUME "Volume" #define D_WEIGHT "Peso" #define D_WARMLIGHT "Calda" #define D_WEB_SERVER "Server web" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h index 13c77db2e..0dce6d865 100644 --- a/tasmota/language/ko_KO.h +++ b/tasmota/language/ko_KO.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV 파워" #define D_VERSION "버전" #define D_VOLTAGE "전압" +#define D_VOLUME "Volume" #define D_WEIGHT "무게" #define D_WARMLIGHT "따뜻하게" #define D_WEB_SERVER "웹 서버" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "마이크로미터" diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h index c98e4296d..dcbd187fc 100644 --- a/tasmota/language/nl_NL.h +++ b/tasmota/language/nl_NL.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV intensiteit" #define D_VERSION "Versie" #define D_VOLTAGE "Spanning" +#define D_VOLUME "Volume" #define D_WEIGHT "Gewicht" #define D_WARMLIGHT "Warm" #define D_WEB_SERVER "Webserver" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h index 1d70d89a9..764396b4e 100644 --- a/tasmota/language/pl_PL.h +++ b/tasmota/language/pl_PL.h @@ -191,6 +191,7 @@ #define D_UV_POWER "Moc UV" #define D_VERSION "Wersja" #define D_VOLTAGE "Napięcie" +#define D_VOLUME "Volume" #define D_WEIGHT "Waga" #define D_WARMLIGHT "Temperatura światła" #define D_WEB_SERVER "Serwer Web" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index 1768cdf86..fc69677ab 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "Versão" #define D_VOLTAGE "Voltagem" +#define D_VOLUME "Volume" #define D_WEIGHT "Peso" #define D_WARMLIGHT "Luz quente" #define D_WEB_SERVER "Servidor WEB" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index c730a7292..a3b7a5542 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -191,6 +191,7 @@ #define D_UV_POWER "Poder UV" #define D_VERSION "Versão" #define D_VOLTAGE "Voltagem" +#define D_VOLUME "Volume" #define D_WEIGHT "Peso" #define D_WARMLIGHT "Luz Quente" #define D_WEB_SERVER "Servidor WEB" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h index ac1e2de26..eea0cc635 100644 --- a/tasmota/language/ro_RO.h +++ b/tasmota/language/ro_RO.h @@ -191,6 +191,7 @@ #define D_UV_POWER "Putere UV" #define D_VERSION "Versiune" #define D_VOLTAGE "Voltaj" +#define D_VOLUME "Volume" #define D_WEIGHT "Greutate" #define D_WARMLIGHT "Cald" #define D_WEB_SERVER "Server Web" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h index 6eb49aecb..8e51ec376 100644 --- a/tasmota/language/ru_RU.h +++ b/tasmota/language/ru_RU.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "Версия" #define D_VOLTAGE "Напряжение" +#define D_VOLUME "Volume" #define D_WEIGHT "Weight" #define D_WARMLIGHT "Тепло" #define D_WEB_SERVER "Web сервер" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "кОм" #define D_UNIT_KILOWATTHOUR "кВт" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "лк" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "мкг/м³" #define D_UNIT_MICROMETER "мкм" diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h index 873baf2ca..c84590e18 100644 --- a/tasmota/language/sk_SK.h +++ b/tasmota/language/sk_SK.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "Verzia" #define D_VOLTAGE "Napätie" +#define D_VOLUME "Volume" #define D_WEIGHT "Hmotnosť" #define D_WARMLIGHT "Teplé svetlo" #define D_WEB_SERVER "Web Server" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h index 90fd47d4c..615669f74 100644 --- a/tasmota/language/sv_SE.h +++ b/tasmota/language/sv_SE.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV kraft" #define D_VERSION "Version" #define D_VOLTAGE "Volttal" +#define D_VOLUME "Volume" #define D_WEIGHT "Vikt" #define D_WARMLIGHT "Varm" #define D_WEB_SERVER "Webbserver" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h index f8d13e8f6..29558e865 100644 --- a/tasmota/language/tr_TR.h +++ b/tasmota/language/tr_TR.h @@ -191,6 +191,7 @@ #define D_UV_POWER "UV Power" #define D_VERSION "Versiyon" #define D_VOLTAGE "Voltaj" +#define D_VOLUME "Volume" #define D_WEIGHT "Weight" #define D_WARMLIGHT "Sıcak" #define D_WEB_SERVER "Web Sunucusu" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h index 499f42c1b..f5b0d3e9a 100644 --- a/tasmota/language/uk_UA.h +++ b/tasmota/language/uk_UA.h @@ -191,6 +191,7 @@ #define D_UV_POWER "Потужність УФ" #define D_VERSION "Версія" #define D_VOLTAGE "Напруга" +#define D_VOLUME "Volume" #define D_WEIGHT "Вага" #define D_WARMLIGHT "Тепло" #define D_WEB_SERVER "Web сервер" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "км/г" // or "km/h" #define D_UNIT_KILOOHM "㏀" #define D_UNIT_KILOWATTHOUR "кВт/г" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "лк" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µг/м³" #define D_UNIT_MICROMETER "µм" diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h index 42b95d930..c1dd6ed19 100644 --- a/tasmota/language/vi_VN.h +++ b/tasmota/language/vi_VN.h @@ -191,6 +191,7 @@ #define D_UV_POWER "Công suất UV" #define D_VERSION "Phiên bản" #define D_VOLTAGE "Điện áp" +#define D_VOLUME "Volume" #define D_WEIGHT "Cân nặng" #define D_WARMLIGHT "Ấm" #define D_WEB_SERVER "Máy chủ Web" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "kΩ" #define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lx" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³" #define D_UNIT_MICROMETER "µm" diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h index e475e360c..fa9c04339 100644 --- a/tasmota/language/zh_CN.h +++ b/tasmota/language/zh_CN.h @@ -191,6 +191,7 @@ #define D_UV_POWER "紫外线功率 " #define D_VERSION "版本" #define D_VOLTAGE "电压" +#define D_VOLUME "Volume" #define D_WEIGHT "重量" #define D_WARMLIGHT "暖" #define D_WEB_SERVER "Web Server" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "公里/时" // or "km/h" #define D_UNIT_KILOOHM "千欧" #define D_UNIT_KILOWATTHOUR "千瓦时" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "勒克斯" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "微克/立方米" #define D_UNIT_MICROMETER "微米" diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h index 21a7d2d14..0dd6d15d4 100644 --- a/tasmota/language/zh_TW.h +++ b/tasmota/language/zh_TW.h @@ -191,6 +191,7 @@ #define D_UV_POWER "紫外線能量" #define D_VERSION "版本" #define D_VOLTAGE "電壓" +#define D_VOLUME "Volume" #define D_WEIGHT "重量" #define D_WARMLIGHT "暖光" #define D_WEB_SERVER "網頁伺服器" @@ -745,6 +746,8 @@ #define D_UNIT_KILOMETER_PER_HOUR "km/h" // or "km/h" #define D_UNIT_KILOOHM "千歐姆" #define D_UNIT_KILOWATTHOUR "千瓦小時" +#define D_UNIT_LITERS "L" +#define D_UNIT_LITERS_PER_MIN "L/m" #define D_UNIT_LUX "lux" #define D_UNIT_MICROGRAM_PER_CUBIC_METER "微克/立方公尺" #define D_UNIT_MICROMETER "微米" diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index 5dd086bcf..b0b06a64e 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -570,6 +570,7 @@ // #define USE_EZOCO2 // [I2cDriver55] Enable support for EZO's CO2 sensor (+0k2 code) - Shared EZO code required for any EZO device (+1k2 code) // #define USE_EZOO2 // [I2cDriver55] Enable support for EZO's O2 sensor (+0k3 code) - Shared EZO code required for any EZO device (+1k2 code) // #define USE_EZOPRS // [I2cDriver55] Enable support for EZO's PRS sensor (+0k7 code) - Shared EZO code required for any EZO device (+1k2 code) +// #define USE_EZOFLO // [I2cDriver55] Enable support for EZO's FLO sensor (+0k4 code) - Shared EZO code required for any EZO device (+1k2 code) // #define USE_DISPLAY // Add I2C Display Support (+2k code) #define USE_DISPLAY_MODES1TO5 // Enable display mode 1 to 5 in addition to mode 0 diff --git a/tasmota/tasmota_configurations.h b/tasmota/tasmota_configurations.h index 530fd5f0d..47caeb9cd 100644 --- a/tasmota/tasmota_configurations.h +++ b/tasmota/tasmota_configurations.h @@ -135,6 +135,7 @@ //#define USE_EZOCO2 // [I2cDriver55] Enable support for EZO's CO2 sensor (+0k2 code) - Shared EZO code required for any EZO device (+1k2 code) //#define USE_EZOO2 // [I2cDriver55] Enable support for EZO's O2 sensor (+0k3 code) - Shared EZO code required for any EZO device (+1k2 code) //#define USE_EZOPRS // [I2cDriver55] Enable support for EZO's PRS sensor (+0k7 code) - Shared EZO code required for any EZO device (+1k2 code) +//#define USE_EZOFLO // [I2cDriver55] Enable support for EZO's FLO sensor (+0k4 code) - Shared EZO code required for any EZO device (+1k2 code) #define USE_MHZ19 // Add support for MH-Z19 CO2 sensor (+2k code) #define USE_SENSEAIR // Add support for SenseAir K30, K70 and S8 CO2 sensor (+2k3 code) diff --git a/tasmota/xsns_78_ezo.ino b/tasmota/xsns_78_ezo.ino index 01107e9d5..a92df5d87 100644 --- a/tasmota/xsns_78_ezo.ino +++ b/tasmota/xsns_78_ezo.ino @@ -18,7 +18,7 @@ */ #ifdef USE_I2C -#if defined(USE_EZOPH) || defined(USE_EZOORP) || defined(USE_EZORTD) || defined(USE_EZOHUM) || defined(USE_EZOEC) || defined(USE_EZOCO2) || defined(USE_EZOO2) || defined(USE_EZOPRS) +#if defined(USE_EZOPH) || defined(USE_EZOORP) || defined(USE_EZORTD) || defined(USE_EZOHUM) || defined(USE_EZOEC) || defined(USE_EZOCO2) || defined(USE_EZOO2) || defined(USE_EZOPRS) || defined(USE_EZOFLO) #define USE_EZO #endif #if defined(USE_EZO) diff --git a/tasmota/xsns_78_ezoflo.ino b/tasmota/xsns_78_ezoflo.ino new file mode 100644 index 000000000..214069001 --- /dev/null +++ b/tasmota/xsns_78_ezoflo.ino @@ -0,0 +1,81 @@ +/* + xsns_78_ezoflo.ino - EZO FLO I2C FLO sensor support for Tasmota + + Copyright (C) 2020 Christopher Tremblay + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifdef USE_I2C +#ifdef USE_EZOFLO + +#define EZO_FLO_READ_LATENCY 300 + +struct EZOFLO : public EZOStruct { + EZOFLO(uint32_t addr) : EZOStruct(addr), totalVolume(NAN), flowRate(NAN) {} + + virtual void ProcessMeasurement(void) + { + char data[D_EZO_MAX_BUF]; + // Total Volume, Flow Rate + + EZOStruct::ProcessMeasurement(data, sizeof(data), EZO_FLO_READ_LATENCY); + + totalVolume = CharToFloat(data); + + char *next = strchr(data, ','); + if (next) { + flowRate = CharToFloat(next + 1); + } + } + + virtual void Show(bool json, const char *name) + { + char volume[FLOATSZ]; + char rate[FLOATSZ]; + bool hasFlow = !isnan(flowRate); + + dtostrfd(totalVolume, 2, volume); + + dtostrfd(flowRate, 2, rate); + + if (json) { + ResponseAppend_P(PSTR(",\"%s\":{\"" D_JSON_VOLUME "\":%s"), name, volume); + if (hasFlow) { + ResponseAppend_P(PSTR(",\"" D_JSON_FLOWRATE "\":%s"), name, rate); + } + ResponseJsonEnd(); + +#ifdef USE_WEBSERVER + } else { + WSContentSend_PD(HTTP_SNS_LITERS, name, volume); + + if (hasFlow) { + WSContentSend_PD(HTTP_SNS_LPM, name, rate); + } +#endif + } + } + + static const char id[] PROGMEM; + +private: + float totalVolume; + float flowRate; +}; + +const char EZOFLO::id[] PROGMEM = "FLO"; + +#endif // USE_EZOFLO +#endif // USE_I2C diff --git a/tasmota/xsns_78_xezo.ino b/tasmota/xsns_78_xezo.ino index 2a5ed4155..95019cb50 100644 --- a/tasmota/xsns_78_xezo.ino +++ b/tasmota/xsns_78_xezo.ino @@ -74,7 +74,11 @@ const char *const EZOSupport[EZO_ADDR_n] PROGMEM = { EZOStruct::id, #endif EZOStruct::id, // "PMP" - EZOStruct::id, // "FLO" +#ifdef USE_EZOFLO + EZOFLO::id, +#else + EZOStruct::id, +#endif #ifdef USE_EZOCO2 EZOCO2::id, #else @@ -242,6 +246,9 @@ private: #ifdef USE_EZORTD CREATE_EZO_CLASS(RTD) #endif +#ifdef USE_EZOFLO + CREATE_EZO_CLASS(FLO) +#endif #ifdef USE_EZOCO2 CREATE_EZO_CLASS(CO2) #endif