mirror of https://github.com/arendst/Tasmota.git
Add support for EZO DO
Add support for EZO Disolved Oxygen sensor
This commit is contained in:
parent
58461e5554
commit
2af5f61b03
|
@ -86,3 +86,4 @@ Index | Define | Driver | Device | Address(es) | Description
|
|||
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
|
||||
55 | USE_EZODO | xsns_78 | EZODO | 0x61 - 0x70 | Disolved Oxygen sensor
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
#define D_JSON_DARKNESS "Darkness"
|
||||
#define D_JSON_DATA "Data"
|
||||
#define D_JSON_DEWPOINT "DewPoint"
|
||||
#define D_JSON_DO "DisolvedOxygen"
|
||||
#define D_JSON_DISTANCE "Distance"
|
||||
#define D_JSON_DNSSERVER "DNSServer"
|
||||
#define D_JSON_DONE "Done"
|
||||
|
@ -785,6 +786,7 @@ const char HTTP_SNS_EC[] PROGMEM = "{s}%s " D_EC "{
|
|||
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 HTTP_SNS_DO[] PROGMEM = "{s}%s " D_DO "{m}%s " D_UNIT_PARTS_PER_MILLION "{e}";
|
||||
|
||||
const char S_MAIN_MENU[] PROGMEM = D_MAIN_MENU;
|
||||
const char S_CONFIGURATION[] PROGMEM = D_CONFIGURATION;
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Забранен"
|
||||
#define D_DISTANCE "Разстояние"
|
||||
#define D_DNS_SERVER "DNS Сървър"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Изпълнено"
|
||||
#define D_DST_TIME "Лятно време"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Zablokováno"
|
||||
#define D_DISTANCE "Distance"
|
||||
#define D_DNS_SERVER "Server DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Provedeno"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "deaktiviert"
|
||||
#define D_DISTANCE "Abstand"
|
||||
#define D_DNS_SERVER "DNS-Server"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "erledigt"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Ανενεργό"
|
||||
#define D_DISTANCE "Απόσταση"
|
||||
#define D_DNS_SERVER "Διακομιστής DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Ολοκληρώθηκε"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Disabled"
|
||||
#define D_DISTANCE "Distance"
|
||||
#define D_DNS_SERVER "DNS Server"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Done"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Deshabilitado"
|
||||
#define D_DISTANCE "Distancia"
|
||||
#define D_DNS_SERVER "Servidor DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Listo"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -80,6 +80,7 @@
|
|||
#define D_DISABLED "Désactivé"
|
||||
#define D_DISTANCE "Distance"
|
||||
#define D_DNS_SERVER "Serveur DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Terminé"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "מבוטל"
|
||||
#define D_DISTANCE "מרחק"
|
||||
#define D_DNS_SERVER "DNS שרת"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "סיים"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Letiltva"
|
||||
#define D_DISTANCE "Távolság"
|
||||
#define D_DNS_SERVER "DNS szerver"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Kész"
|
||||
#define D_DST_TIME "nyári idő"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Disabilitato/a"
|
||||
#define D_DISTANCE "Distanza"
|
||||
#define D_DNS_SERVER "Server DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Completato"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "사용안함"
|
||||
#define D_DISTANCE "거리"
|
||||
#define D_DNS_SERVER "DNS 서버"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "완료"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Uitgeschakeld"
|
||||
#define D_DISTANCE "Afstand"
|
||||
#define D_DNS_SERVER "DNS Server"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Klaar"
|
||||
#define D_DST_TIME "ZT"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Wyłączony"
|
||||
#define D_DISTANCE "Odległość"
|
||||
#define D_DNS_SERVER "Serwer DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Wykonane"
|
||||
#define D_DST_TIME "Czas DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Desabilitado"
|
||||
#define D_DISTANCE "Distância"
|
||||
#define D_DNS_SERVER "Servidor DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Concluído"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Disabilitado"
|
||||
#define D_DISTANCE "Distância"
|
||||
#define D_DNS_SERVER "Servidor DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Concluído"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Dezactivat"
|
||||
#define D_DISTANCE "Distanță"
|
||||
#define D_DNS_SERVER "Server DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Terminat"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Блокирован"
|
||||
#define D_DISTANCE "Distance"
|
||||
#define D_DNS_SERVER "DNS Сервер"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Выполнено"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -85,6 +85,7 @@
|
|||
#define D_DISABLED "Zablokované"
|
||||
#define D_DISTANCE "Vzdialenosť"
|
||||
#define D_DNS_SERVER "Server DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Hotovo"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Inaktiverad"
|
||||
#define D_DISTANCE "Distans"
|
||||
#define D_DNS_SERVER "DNS-server"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Gjort"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Etkin Değil"
|
||||
#define D_DISTANCE "Mesage"
|
||||
#define D_DNS_SERVER "DNS Sunucu"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Tamam"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Вимкнено"
|
||||
#define D_DISTANCE "Відстань"
|
||||
#define D_DNS_SERVER "Сервер DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Виконано"
|
||||
#define D_DST_TIME "Літній час"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "Vô hiệu hóa"
|
||||
#define D_DISTANCE "Khoảng cách"
|
||||
#define D_DNS_SERVER "Máy chủ DNS"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "Hoàn thành"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "禁用"
|
||||
#define D_DISTANCE "距离"
|
||||
#define D_DNS_SERVER "DNS服务器"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "完成"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define D_DISABLED "已停用"
|
||||
#define D_DISTANCE "距離"
|
||||
#define D_DNS_SERVER "DNS伺服器"
|
||||
#define D_DO "Disolved Oxygen"
|
||||
#define D_DONE "完成"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_EC "EC"
|
||||
|
|
|
@ -571,6 +571,7 @@
|
|||
// #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_EZODO // [I2cDriver55] Enable support for EZO's DO sensor (+0k3 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
|
||||
|
|
|
@ -136,6 +136,7 @@
|
|||
//#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_EZODO // [I2cDriver55] Enable support for EZO's DO sensor (+0k3 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)
|
||||
|
|
|
@ -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) || defined(USE_EZOFLO)
|
||||
#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) || defined(USE_EZODO)
|
||||
#define USE_EZO
|
||||
#endif
|
||||
#if defined(USE_EZO)
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
xsns_78_ezodo.ino - EZO DO I2C DO 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef USE_I2C
|
||||
#ifdef USE_EZODO
|
||||
|
||||
#define EZO_DO_READ_LATENCY 600
|
||||
|
||||
struct EZODO : public EZOStruct {
|
||||
EZODO(uint32_t addr) : EZOStruct(addr), DO(0) {}
|
||||
|
||||
virtual void ProcessMeasurement(void)
|
||||
{
|
||||
char data[D_EZO_MAX_BUF];
|
||||
|
||||
EZOStruct::ProcessMeasurement(data, sizeof(data), EZO_DO_READ_LATENCY);
|
||||
DO = CharToFloat(data);
|
||||
}
|
||||
|
||||
virtual void Show(bool json, const char *name)
|
||||
{
|
||||
char str[8];
|
||||
dtostrfd(DO, 2, str);
|
||||
|
||||
if (json) {
|
||||
ResponseAppend_P(PSTR(",\"%s\":{\"" D_JSON_DO "\":%d}" ), name, str);
|
||||
}
|
||||
#ifdef USE_WEBSERVER
|
||||
else {
|
||||
WSContentSend_PD(HTTP_SNS_DO, name, str);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
||||
static const char id[] PROGMEM;
|
||||
|
||||
private:
|
||||
float DO;
|
||||
};
|
||||
|
||||
const char EZODO::id[] PROGMEM = "D.O.";
|
||||
|
||||
#endif // USE_EZODO
|
||||
#endif // USE_I2C
|
|
@ -51,7 +51,11 @@ enum {
|
|||
|
||||
// The order of the EZO devices must map with the enum declared above
|
||||
const char *const EZOSupport[EZO_ADDR_n] PROGMEM = {
|
||||
EZOStruct::id, // "DO"
|
||||
#ifdef USE_EZODO
|
||||
EZODO::id,
|
||||
#else
|
||||
EZOStruct::id,
|
||||
#endif
|
||||
#ifdef USE_EZOORP
|
||||
EZOORP::id,
|
||||
#else
|
||||
|
@ -67,7 +71,7 @@ const char *const EZOSupport[EZO_ADDR_n] PROGMEM = {
|
|||
#else
|
||||
EZOStruct::id,
|
||||
#endif
|
||||
EZOStruct::id,
|
||||
EZOStruct::id, // <unnamed>
|
||||
#ifdef USE_EZORTD
|
||||
EZORTD::id,
|
||||
#else
|
||||
|
@ -89,14 +93,14 @@ const char *const EZOSupport[EZO_ADDR_n] PROGMEM = {
|
|||
#else
|
||||
EZOStruct::id,
|
||||
#endif
|
||||
EZOStruct::id,
|
||||
EZOStruct::id, // <unnamed>
|
||||
#ifdef USE_EZOO2
|
||||
EZOO2::id,
|
||||
#else
|
||||
EZOStruct::id,
|
||||
#endif
|
||||
EZOStruct::id,
|
||||
EZOStruct::id,
|
||||
EZOStruct::id, // <unnamed>
|
||||
EZOStruct::id, // <unnamed>
|
||||
#ifdef USE_EZOHUM
|
||||
EZOHUM::id,
|
||||
#else
|
||||
|
@ -234,6 +238,9 @@ private:
|
|||
|
||||
// We use switch intead of virtual function to save RAM
|
||||
switch (j + EZO_ADDR_0) {
|
||||
#ifdef USE_EZODO
|
||||
CREATE_EZO_CLASS(DO)
|
||||
#endif
|
||||
#ifdef USE_EZOORP
|
||||
CREATE_EZO_CLASS(ORP)
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue