Consolidate messages

- Consolidate messages
- Fix sen5x
This commit is contained in:
Theo Arends 2023-03-22 13:25:55 +01:00
parent ab03654e02
commit 00c60450c6
32 changed files with 239 additions and 183 deletions

View File

@ -895,6 +895,10 @@ const char HTTP_SNS_F_TEMP[] PROGMEM = "{s}%s " D_TEMPERATURE "{
const char HTTP_SNS_F_VOLTAGE[] PROGMEM = "{s}%s " D_VOLTAGE "{m}%*_f " D_UNIT_VOLT "{e}"; const char HTTP_SNS_F_VOLTAGE[] PROGMEM = "{s}%s " D_VOLTAGE "{m}%*_f " D_UNIT_VOLT "{e}";
const char HTTP_SNS_F_CURRENT_MA[] PROGMEM = "{s}%s " D_CURRENT "{m}%*_f " D_UNIT_MILLIAMPERE "{e}"; const char HTTP_SNS_F_CURRENT_MA[] PROGMEM = "{s}%s " D_CURRENT "{m}%*_f " D_UNIT_MILLIAMPERE "{e}";
const char HTTP_SNS_F_DISTANCE_CM[] PROGMEM = "{s}%s " D_DISTANCE "{m}%1_f " D_UNIT_CENTIMETER "{e}"; const char HTTP_SNS_F_DISTANCE_CM[] PROGMEM = "{s}%s " D_DISTANCE "{m}%1_f " D_UNIT_CENTIMETER "{e}";
const char HTTP_SNS_F_NOX[] PROGMEM = "{s}%s " D_NOX "{m}%*_f " "{e}";
const char HTTP_SNS_F_VOC[] PROGMEM = "{s}%s " D_VOC "{m}%*_f " "{e}";
const char HTTP_SNS_F_ABS_HUM[] PROGMEM = "{s}%s " D_ABSOLUTE_HUMIDITY "{m}%*_f " D_UNIT_GRAM_PER_CUBIC_METER "{e}";
const char HTTP_SNS_HUM[] PROGMEM = "{s}%s " D_HUMIDITY "{m}%s " D_UNIT_PERCENT "{e}"; const char HTTP_SNS_HUM[] PROGMEM = "{s}%s " D_HUMIDITY "{m}%s " D_UNIT_PERCENT "{e}";
const char HTTP_SNS_DEW[] PROGMEM = "{s}%s " D_DEWPOINT "{m}%s " D_UNIT_DEGREE "%c{e}"; const char HTTP_SNS_DEW[] PROGMEM = "{s}%s " D_DEWPOINT "{m}%s " D_UNIT_DEGREE "%c{e}";
const char HTTP_SNS_PRESSURE[] PROGMEM = "{s}%s " D_PRESSURE "{m}%s " "%s{e}"; const char HTTP_SNS_PRESSURE[] PROGMEM = "{s}%s " D_PRESSURE "{m}%s " "%s{e}";
@ -925,7 +929,6 @@ const char HTTP_SNS_GAS[] PROGMEM = "{s}%s " D_GAS "{
const char HTTP_SNS_SOC[] PROGMEM = "{s}%s " D_SOC "{m}%d " D_UNIT_PERCENT "{e}"; const char HTTP_SNS_SOC[] PROGMEM = "{s}%s " D_SOC "{m}%d " D_UNIT_PERCENT "{e}";
const char HTTP_SNS_SOH[] PROGMEM = "{s}%s " D_SOH "{m}%d " D_UNIT_PERCENT "{e}"; const char HTTP_SNS_SOH[] PROGMEM = "{s}%s " D_SOH "{m}%d " D_UNIT_PERCENT "{e}";
const char HTTP_SNS_STANDARD_CONCENTRATION[] PROGMEM = "{s}%s " D_STANDARD_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; const char HTTP_SNS_STANDARD_CONCENTRATION[] PROGMEM = "{s}%s " D_STANDARD_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}";
const char HTTP_SNS_ENVIRONMENTAL_CONCENTRATION[] PROGMEM = "{s}%s " D_ENVIRONMENTAL_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; const char HTTP_SNS_ENVIRONMENTAL_CONCENTRATION[] PROGMEM = "{s}%s " D_ENVIRONMENTAL_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}";
const char HTTP_SNS_F_ENVIRONMENTAL_CONCENTRATION[] PROGMEM = "{s}%s " D_ENVIRONMENTAL_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%1_f " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; const char HTTP_SNS_F_ENVIRONMENTAL_CONCENTRATION[] PROGMEM = "{s}%s " D_ENVIRONMENTAL_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%1_f " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}";

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Luggehalte" #define D_AIR_QUALITY "Luggehalte"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-press" #define D_MULTI_PRESS "multi-press"
#define D_NOISE "Geraas" #define D_NOISE "Geraas"
#define D_NONE "Geen" #define D_NONE "Geen"
#define D_NOX "NOx"
#define D_O2 "Suurstof" #define D_O2 "Suurstof"
#define D_OFF "Uit" #define D_OFF "Uit"
#define D_OFFLINE "Vanlyn" #define D_OFFLINE "Vanlyn"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV Level" #define D_UV_LEVEL "UV Level"
#define D_UV_POWER "UV krag" #define D_UV_POWER "UV krag"
#define D_VERSION "Weergawe" #define D_VERSION "Weergawe"
#define D_VOC "VOC"
#define D_VOLTAGE "Spanning" #define D_VOLTAGE "Spanning"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Gewig" #define D_WEIGHT "Gewig"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Качество на въздуха" #define D_AIR_QUALITY "Качество на въздуха"
#define D_AP "Точка за достъп" // Access Point #define D_AP "Точка за достъп" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "неколкократно натискане" #define D_MULTI_PRESS "неколкократно натискане"
#define D_NOISE "Шум" #define D_NOISE "Шум"
#define D_NONE "Няма" #define D_NONE "Няма"
#define D_NOX "NOx"
#define D_O2 "Кислород" #define D_O2 "Кислород"
#define D_OFF "Изкл." #define D_OFF "Изкл."
#define D_OFFLINE "Извън мрежа" #define D_OFFLINE "Извън мрежа"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Ниво на UV" #define D_UV_LEVEL "Ниво на UV"
#define D_UV_POWER "Сила на UV" #define D_UV_POWER "Сила на UV"
#define D_VERSION "Издание" #define D_VERSION "Издание"
#define D_VOC "VOC"
#define D_VOLTAGE "Напрежение" #define D_VOLTAGE "Напрежение"
#define D_VOLUME "Обем" #define D_VOLUME "Обем"
#define D_WEIGHT "Тегло" #define D_WEIGHT "Тегло"
@ -938,6 +941,7 @@
#define D_UNIT_GALLONS "гал" #define D_UNIT_GALLONS "гал"
#define D_UNIT_GALLONS_PER_MIN "гал/мин" #define D_UNIT_GALLONS_PER_MIN "гал/мин"
#define D_UNIT_KILOGRAM "кг" #define D_UNIT_KILOGRAM "кг"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "инч" #define D_UNIT_INCREMENTS "инч"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Qualitat Aire" #define D_AIR_QUALITY "Qualitat Aire"
#define D_AP "PA" // Access Point #define D_AP "PA" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-pressió" #define D_MULTI_PRESS "multi-pressió"
#define D_NOISE "Soroll" #define D_NOISE "Soroll"
#define D_NONE "Cap" #define D_NONE "Cap"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Apagat" #define D_OFF "Apagat"
#define D_OFFLINE "Desconnectat" #define D_OFFLINE "Desconnectat"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Nivell UV" #define D_UV_LEVEL "Nivell UV"
#define D_UV_POWER "Potència UV" #define D_UV_POWER "Potència UV"
#define D_VERSION "Versió" #define D_VERSION "Versió"
#define D_VOC "VOC"
#define D_VOLTAGE "Tensió" #define D_VOLTAGE "Tensió"
#define D_VOLUME "Volum" #define D_VOLUME "Volum"
#define D_WEIGHT "Pes" #define D_WEIGHT "Pes"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Kvalita vzduchu" #define D_AIR_QUALITY "Kvalita vzduchu"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "několikeré-stisknutí" #define D_MULTI_PRESS "několikeré-stisknutí"
#define D_NOISE "Hluk" #define D_NOISE "Hluk"
#define D_NONE "Žádný" #define D_NONE "Žádný"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Vyp." #define D_OFF "Vyp."
#define D_OFFLINE "Offline" // Don't translate, LWT message! Nepředkládat, LWT zpráva! #define D_OFFLINE "Offline" // Don't translate, LWT message! Nepředkládat, LWT zpráva!
@ -201,6 +203,7 @@
#define D_UV_LEVEL "úroveň UV" #define D_UV_LEVEL "úroveň UV"
#define D_UV_POWER "UV Power" #define D_UV_POWER "UV Power"
#define D_VERSION "Verze" #define D_VERSION "Verze"
#define D_VOC "VOC"
#define D_VOLTAGE "Napětí" #define D_VOLTAGE "Napětí"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Hmotnost" #define D_WEIGHT "Hmotnost"
@ -938,6 +941,7 @@
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_KILOGRAM "kg" #define D_UNIT_KILOGRAM "kg"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Luftqualität" #define D_AIR_QUALITY "Luftqualität"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "Mehrfachdruck" #define D_MULTI_PRESS "Mehrfachdruck"
#define D_NOISE "Lautstärke" #define D_NOISE "Lautstärke"
#define D_NONE "keine" #define D_NONE "keine"
#define D_NOX "NOx"
#define D_O2 "Sauerstoff" #define D_O2 "Sauerstoff"
#define D_OFF "aus" #define D_OFF "aus"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV-Level" #define D_UV_LEVEL "UV-Level"
#define D_UV_POWER "UV Intensität" #define D_UV_POWER "UV Intensität"
#define D_VERSION "Version" #define D_VERSION "Version"
#define D_VOC "VOC"
#define D_VOLTAGE "Spannung" #define D_VOLTAGE "Spannung"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Gewicht" #define D_WEIGHT "Gewicht"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Διαχειριστής" #define D_ADMIN "Διαχειριστής"
#define D_AIR_QUALITY "Ποιότητα αέρα" #define D_AIR_QUALITY "Ποιότητα αέρα"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "ανίχνευση για πολλαπλά πατήματα" #define D_MULTI_PRESS "ανίχνευση για πολλαπλά πατήματα"
#define D_NOISE "Θόρυβος" #define D_NOISE "Θόρυβος"
#define D_NONE "Κανένα" #define D_NONE "Κανένα"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Off" #define D_OFF "Off"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Επίπεδο UV" #define D_UV_LEVEL "Επίπεδο UV"
#define D_UV_POWER "Ένταση UV" #define D_UV_POWER "Ένταση UV"
#define D_VERSION "Έκδοση" #define D_VERSION "Έκδοση"
#define D_VOC "VOC"
#define D_VOLTAGE "Τάση" #define D_VOLTAGE "Τάση"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Βάρος" #define D_WEIGHT "Βάρος"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Air quality" #define D_AIR_QUALITY "Air quality"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-press" #define D_MULTI_PRESS "multi-press"
#define D_NOISE "Noise" #define D_NOISE "Noise"
#define D_NONE "None" #define D_NONE "None"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Off" #define D_OFF "Off"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV Level" #define D_UV_LEVEL "UV Level"
#define D_UV_POWER "UV Power" #define D_UV_POWER "UV Power"
#define D_VERSION "Version" #define D_VERSION "Version"
#define D_VOC "VOC"
#define D_VOLTAGE "Voltage" #define D_VOLTAGE "Voltage"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Weight" #define D_WEIGHT "Weight"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Calidad del Aire" #define D_AIR_QUALITY "Calidad del Aire"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-press" #define D_MULTI_PRESS "multi-press"
#define D_NOISE "Ruido" #define D_NOISE "Ruido"
#define D_NONE "Ninguno" #define D_NONE "Ninguno"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Apagado" #define D_OFF "Apagado"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Nivel UV" #define D_UV_LEVEL "Nivel UV"
#define D_UV_POWER "UV Power" #define D_UV_POWER "UV Power"
#define D_VERSION "Versión" #define D_VERSION "Versión"
#define D_VOC "VOC"
#define D_VOLTAGE "Tensión" #define D_VOLTAGE "Tensión"
#define D_VOLUME "Volumen" #define D_VOLUME "Volumen"
#define D_WEIGHT "Peso" #define D_WEIGHT "Peso"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Qualité de l'Air" #define D_AIR_QUALITY "Qualité de l'Air"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-pression" #define D_MULTI_PRESS "multi-pression"
#define D_NOISE "Bruit" #define D_NOISE "Bruit"
#define D_NONE "Aucun" #define D_NONE "Aucun"
#define D_NOX "NOx"
#define D_O2 "Oxygène" #define D_O2 "Oxygène"
#define D_OFF "Arrêt" #define D_OFF "Arrêt"
#define D_OFFLINE "Déconnecté" #define D_OFFLINE "Déconnecté"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Niveau UV" #define D_UV_LEVEL "Niveau UV"
#define D_UV_POWER "Puissance UV" #define D_UV_POWER "Puissance UV"
#define D_VERSION "Version" #define D_VERSION "Version"
#define D_VOC "VOC"
#define D_VOLTAGE "Tension" #define D_VOLTAGE "Tension"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Poids" #define D_WEIGHT "Poids"
@ -938,6 +941,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "gal/min" #define D_UNIT_GALLONS_PER_MIN "gal/min"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Luchtkwaliteit" #define D_AIR_QUALITY "Luchtkwaliteit"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "meardere" #define D_MULTI_PRESS "meardere"
#define D_NOISE "Lûd" #define D_NOISE "Lûd"
#define D_NONE "Gjin" #define D_NONE "Gjin"
#define D_NOX "NOx"
#define D_O2 "Soerstof" #define D_O2 "Soerstof"
#define D_OFF "Ut" #define D_OFF "Ut"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV peil" #define D_UV_LEVEL "UV peil"
#define D_UV_POWER "UV yntinsiteit" #define D_UV_POWER "UV yntinsiteit"
#define D_VERSION "Ferzje" #define D_VERSION "Ferzje"
#define D_VOC "VOC"
#define D_VOLTAGE "Foltaazje" #define D_VOLTAGE "Foltaazje"
#define D_VOLUME "Folume" #define D_VOLUME "Folume"
#define D_WEIGHT "Gewicht" #define D_WEIGHT "Gewicht"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "מנהל" #define D_ADMIN "מנהל"
#define D_AIR_QUALITY "איכות אוויר" #define D_AIR_QUALITY "איכות אוויר"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "לחיצה מרובה" #define D_MULTI_PRESS "לחיצה מרובה"
#define D_NOISE "רעש" #define D_NOISE "רעש"
#define D_NONE "כלום" #define D_NONE "כלום"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "כבוי" #define D_OFF "כבוי"
#define D_OFFLINE "מנותק" #define D_OFFLINE "מנותק"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV רמת" #define D_UV_LEVEL "UV רמת"
#define D_UV_POWER "UV Power" #define D_UV_POWER "UV Power"
#define D_VERSION "גרסה" #define D_VERSION "גרסה"
#define D_VOC "VOC"
#define D_VOLTAGE "מתח" #define D_VOLTAGE "מתח"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "משקל" #define D_WEIGHT "משקל"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Levegőminőség" #define D_AIR_QUALITY "Levegőminőség"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "többes lenyomás" #define D_MULTI_PRESS "többes lenyomás"
#define D_NOISE "Zaj" #define D_NOISE "Zaj"
#define D_NONE "nincs" #define D_NONE "nincs"
#define D_NOX "NOx"
#define D_O2 "Oxygén" #define D_O2 "Oxygén"
#define D_OFF "Ki" #define D_OFF "Ki"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV szint" #define D_UV_LEVEL "UV szint"
#define D_UV_POWER "UV teljesítmény" #define D_UV_POWER "UV teljesítmény"
#define D_VERSION "Verzió" #define D_VERSION "Verzió"
#define D_VOC "VOC"
#define D_VOLTAGE "Feszültség" #define D_VOLTAGE "Feszültség"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Tömeg" #define D_WEIGHT "Tömeg"
@ -940,6 +943,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "növ." #define D_UNIT_INCREMENTS "növ."
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Umidità"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Qualità dell'aria" #define D_AIR_QUALITY "Qualità dell'aria"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-pressione" #define D_MULTI_PRESS "multi-pressione"
#define D_NOISE "Rumore" #define D_NOISE "Rumore"
#define D_NONE "Nessuno" #define D_NONE "Nessuno"
#define D_NOX "NOx"
#define D_O2 "Ossigeno" #define D_O2 "Ossigeno"
#define D_OFF "OFF" #define D_OFF "OFF"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Livello UV" #define D_UV_LEVEL "Livello UV"
#define D_UV_POWER "Intensità UV" #define D_UV_POWER "Intensità UV"
#define D_VERSION "Versione" #define D_VERSION "Versione"
#define D_VOC "VOC"
#define D_VOLTAGE "Tensione" #define D_VOLTAGE "Tensione"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Peso" #define D_WEIGHT "Peso"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "o" #define D_UNIT_HOUR "o"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "공기질" #define D_AIR_QUALITY "공기질"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-press" #define D_MULTI_PRESS "multi-press"
#define D_NOISE "소음" #define D_NOISE "소음"
#define D_NONE "없음" #define D_NONE "없음"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "꺼짐" #define D_OFF "꺼짐"
#define D_OFFLINE "오프라인" #define D_OFFLINE "오프라인"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV 레벨" #define D_UV_LEVEL "UV 레벨"
#define D_UV_POWER "UV 파워" #define D_UV_POWER "UV 파워"
#define D_VERSION "버전" #define D_VERSION "버전"
#define D_VOC "VOC"
#define D_VOLTAGE "전압" #define D_VOLTAGE "전압"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "무게" #define D_WEIGHT "무게"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "시" #define D_UNIT_HOUR "시"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Lucht kwaliteit" #define D_AIR_QUALITY "Lucht kwaliteit"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "meervoudig" #define D_MULTI_PRESS "meervoudig"
#define D_NOISE "Lawaai" #define D_NOISE "Lawaai"
#define D_NONE "Geen" #define D_NONE "Geen"
#define D_NOX "NOx"
#define D_O2 "Zuurstof" #define D_O2 "Zuurstof"
#define D_OFF "Uit" #define D_OFF "Uit"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV niveau" #define D_UV_LEVEL "UV niveau"
#define D_UV_POWER "UV intensiteit" #define D_UV_POWER "UV intensiteit"
#define D_VERSION "Versie" #define D_VERSION "Versie"
#define D_VOC "VOC"
#define D_VOLTAGE "Spanning" #define D_VOLTAGE "Spanning"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Gewicht" #define D_WEIGHT "Gewicht"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Jakość powietrza" #define D_AIR_QUALITY "Jakość powietrza"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "Wielokrotne naciśnięcie" #define D_MULTI_PRESS "Wielokrotne naciśnięcie"
#define D_NOISE "Szum" #define D_NOISE "Szum"
#define D_NONE "Brak" #define D_NONE "Brak"
#define D_NOX "NOx"
#define D_O2 "Tlen" #define D_O2 "Tlen"
#define D_OFF "Wyłączony" #define D_OFF "Wyłączony"
#define D_OFFLINE "Nieaktywny" #define D_OFFLINE "Nieaktywny"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Poziom UV" #define D_UV_LEVEL "Poziom UV"
#define D_UV_POWER "Moc UV" #define D_UV_POWER "Moc UV"
#define D_VERSION "Wersja" #define D_VERSION "Wersja"
#define D_VOC "VOC"
#define D_VOLTAGE "Napięcie" #define D_VOLTAGE "Napięcie"
#define D_VOLUME "Pojemność" #define D_VOLUME "Pojemność"
#define D_WEIGHT "Waga" #define D_WEIGHT "Waga"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "Godz" #define D_UNIT_HOUR "Godz"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Qualidade do ar" #define D_AIR_QUALITY "Qualidade do ar"
#define D_AP "Ponto de acesso" // Ponto de Acesso #define D_AP "Ponto de acesso" // Ponto de Acesso
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-pressão" #define D_MULTI_PRESS "multi-pressão"
#define D_NOISE "Ruído" #define D_NOISE "Ruído"
#define D_NONE "Nenhum" #define D_NONE "Nenhum"
#define D_NOX "NOx"
#define D_O2 "Oxigênio" #define D_O2 "Oxigênio"
#define D_OFF "Desligado" #define D_OFF "Desligado"
#define D_OFFLINE "Desconectado" #define D_OFFLINE "Desconectado"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Nível UV" #define D_UV_LEVEL "Nível UV"
#define D_UV_POWER "Potência UV" #define D_UV_POWER "Potência UV"
#define D_VERSION "Versão" #define D_VERSION "Versão"
#define D_VOC "VOC"
#define D_VOLTAGE "Voltagem" #define D_VOLTAGE "Voltagem"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Peso" #define D_WEIGHT "Peso"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "H" #define D_UNIT_HOUR "H"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Qualidade do Ar" #define D_AIR_QUALITY "Qualidade do Ar"
#define D_AP "AP" // Ponto de Acesso #define D_AP "AP" // Ponto de Acesso
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-pressão" #define D_MULTI_PRESS "multi-pressão"
#define D_NOISE "Ruído" #define D_NOISE "Ruído"
#define D_NONE "Nenhum" #define D_NONE "Nenhum"
#define D_NOX "NOx"
#define D_O2 "Oxigénio" #define D_O2 "Oxigénio"
#define D_OFF "Off" #define D_OFF "Off"
#define D_OFFLINE "Desconetado" #define D_OFFLINE "Desconetado"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Nível UV" #define D_UV_LEVEL "Nível UV"
#define D_UV_POWER "Poder UV" #define D_UV_POWER "Poder UV"
#define D_VERSION "Versão" #define D_VERSION "Versão"
#define D_VOC "VOC"
#define D_VOLTAGE "Voltagem" #define D_VOLTAGE "Voltagem"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Peso" #define D_WEIGHT "Peso"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Calitatea aerului" #define D_AIR_QUALITY "Calitatea aerului"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "selectare multiplă" #define D_MULTI_PRESS "selectare multiplă"
#define D_NOISE "Zgomot" #define D_NOISE "Zgomot"
#define D_NONE "Lipsă" #define D_NONE "Lipsă"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Închis" #define D_OFF "Închis"
#define D_OFFLINE "Offline" #define D_OFFLINE "Offline"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Nivel UV" #define D_UV_LEVEL "Nivel UV"
#define D_UV_POWER "Putere UV" #define D_UV_POWER "Putere UV"
#define D_VERSION "Versiune" #define D_VERSION "Versiune"
#define D_VOC "VOC"
#define D_VOLTAGE "Voltaj" #define D_VOLTAGE "Voltaj"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Greutate" #define D_WEIGHT "Greutate"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Качество воздуха" #define D_AIR_QUALITY "Качество воздуха"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "многократное нажатие" #define D_MULTI_PRESS "многократное нажатие"
#define D_NOISE "Шум" #define D_NOISE "Шум"
#define D_NONE "Нет" #define D_NONE "Нет"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Выкл" #define D_OFF "Выкл"
#define D_OFFLINE "Офф-лайн" #define D_OFFLINE "Офф-лайн"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "УФ уровень" #define D_UV_LEVEL "УФ уровень"
#define D_UV_POWER "UV Power" #define D_UV_POWER "UV Power"
#define D_VERSION "Версия" #define D_VERSION "Версия"
#define D_VOC "VOC"
#define D_VOLTAGE "Напряжение" #define D_VOLTAGE "Напряжение"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Weight" #define D_WEIGHT "Weight"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "Ч" #define D_UNIT_HOUR "Ч"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Kvalita vzduchu" #define D_AIR_QUALITY "Kvalita vzduchu"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-stlačenie" #define D_MULTI_PRESS "multi-stlačenie"
#define D_NOISE "Hluk" #define D_NOISE "Hluk"
#define D_NONE "Žiadny" #define D_NONE "Žiadny"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Vyp." #define D_OFF "Vyp."
#define D_OFFLINE "Neaktívny" #define D_OFFLINE "Neaktívny"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "úroveň UV" #define D_UV_LEVEL "úroveň UV"
#define D_UV_POWER "UV Power" #define D_UV_POWER "UV Power"
#define D_VERSION "Verzia" #define D_VERSION "Verzia"
#define D_VOC "VOC"
#define D_VOLTAGE "Napätie" #define D_VOLTAGE "Napätie"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Hmotnosť" #define D_WEIGHT "Hmotnosť"
@ -938,6 +941,7 @@
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_KILOGRAM "kg" #define D_UNIT_KILOGRAM "kg"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Luftkvalitet" #define D_AIR_QUALITY "Luftkvalitet"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "fler tryck" #define D_MULTI_PRESS "fler tryck"
#define D_NOISE "Oväsen" #define D_NOISE "Oväsen"
#define D_NONE "Ingen" #define D_NONE "Ingen"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Av" #define D_OFF "Av"
#define D_OFFLINE "Off-line" #define D_OFFLINE "Off-line"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV nivå" #define D_UV_LEVEL "UV nivå"
#define D_UV_POWER "UV kraft" #define D_UV_POWER "UV kraft"
#define D_VERSION "Version" #define D_VERSION "Version"
#define D_VOC "VOC"
#define D_VOLTAGE "Volttal" #define D_VOLTAGE "Volttal"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Vikt" #define D_WEIGHT "Vikt"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "Tim" #define D_UNIT_HOUR "Tim"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "ink" #define D_UNIT_INCREMENTS "ink"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "Hava Kalitesi" #define D_AIR_QUALITY "Hava Kalitesi"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "multi-press" #define D_MULTI_PRESS "multi-press"
#define D_NOISE "Noise" #define D_NOISE "Noise"
#define D_NONE "None" #define D_NONE "None"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Off" #define D_OFF "Off"
#define D_OFFLINE "Çevirimdışı" #define D_OFFLINE "Çevirimdışı"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "UV Seviyesi" #define D_UV_LEVEL "UV Seviyesi"
#define D_UV_POWER "UV Power" #define D_UV_POWER "UV Power"
#define D_VERSION "Versiyon" #define D_VERSION "Versiyon"
#define D_VOC "VOC"
#define D_VOLTAGE "Voltaj" #define D_VOLTAGE "Voltaj"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Weight" #define D_WEIGHT "Weight"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "," #define D_DECIMAL_SEPARATOR ","
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Адміністратор" #define D_ADMIN "Адміністратор"
#define D_AIR_QUALITY "Якість повітря" #define D_AIR_QUALITY "Якість повітря"
#define D_AP "Точка доступу" // Access Point #define D_AP "Точка доступу" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "Багаторазове натискання" #define D_MULTI_PRESS "Багаторазове натискання"
#define D_NOISE "Шум" #define D_NOISE "Шум"
#define D_NONE "Нічого" #define D_NONE "Нічого"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Вимкнено" #define D_OFF "Вимкнено"
#define D_OFFLINE "Неактивний" #define D_OFFLINE "Неактивний"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Рівень УФ" #define D_UV_LEVEL "Рівень УФ"
#define D_UV_POWER "Потужність УФ" #define D_UV_POWER "Потужність УФ"
#define D_VERSION "Версія" #define D_VERSION "Версія"
#define D_VOC "VOC"
#define D_VOLTAGE "Напруга" #define D_VOLTAGE "Напруга"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Вага" #define D_WEIGHT "Вага"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "г" #define D_UNIT_HOUR "г"
#define D_UNIT_GALLONS "гал" #define D_UNIT_GALLONS "гал"
#define D_UNIT_GALLONS_PER_MIN "гал/хв" #define D_UNIT_GALLONS_PER_MIN "гал/хв"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "інк" #define D_UNIT_INCREMENTS "інк"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Quản trị" #define D_ADMIN "Quản trị"
#define D_AIR_QUALITY "Chất lượng không khí" #define D_AIR_QUALITY "Chất lượng không khí"
#define D_AP "Mạng wifi" // Access Point #define D_AP "Mạng wifi" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "bấm nhiều lần" #define D_MULTI_PRESS "bấm nhiều lần"
#define D_NOISE "Nhiễu" #define D_NOISE "Nhiễu"
#define D_NONE "Không" #define D_NONE "Không"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "Tắt" #define D_OFF "Tắt"
#define D_OFFLINE "Ngoại tuyến" #define D_OFFLINE "Ngoại tuyến"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "Mức độ UV" #define D_UV_LEVEL "Mức độ UV"
#define D_UV_POWER "Công suất UV" #define D_UV_POWER "Công suất UV"
#define D_VERSION "Phiên bản" #define D_VERSION "Phiên bản"
#define D_VOC "VOC"
#define D_VOLTAGE "Điện áp" #define D_VOLTAGE "Điện áp"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "Cân nặng" #define D_WEIGHT "Cân nặng"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "h" #define D_UNIT_HOUR "h"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "空气质量" #define D_AIR_QUALITY "空气质量"
#define D_AP "AP" // Access Point #define D_AP "AP" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "多次按键" #define D_MULTI_PRESS "多次按键"
#define D_NOISE "嘈杂" #define D_NOISE "嘈杂"
#define D_NONE "无" #define D_NONE "无"
#define D_NOX "NOx"
#define D_O2 "氧" #define D_O2 "氧"
#define D_OFF "关" #define D_OFF "关"
#define D_OFFLINE "离线" #define D_OFFLINE "离线"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "紫外线水平" #define D_UV_LEVEL "紫外线水平"
#define D_UV_POWER "紫外线功率 " #define D_UV_POWER "紫外线功率 "
#define D_VERSION "版本" #define D_VERSION "版本"
#define D_VOC "VOC"
#define D_VOLTAGE "电压" #define D_VOLTAGE "电压"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "重量" #define D_WEIGHT "重量"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "小时" #define D_UNIT_HOUR "小时"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -51,6 +51,7 @@
#define D_DECIMAL_SEPARATOR "." #define D_DECIMAL_SEPARATOR "."
// Common // Common
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
#define D_ADMIN "Admin" #define D_ADMIN "Admin"
#define D_AIR_QUALITY "空氣品質" #define D_AIR_QUALITY "空氣品質"
#define D_AP "存取點" // Access Point #define D_AP "存取點" // Access Point
@ -133,6 +134,7 @@
#define D_MULTI_PRESS "多重點擊" #define D_MULTI_PRESS "多重點擊"
#define D_NOISE "雜訊" #define D_NOISE "雜訊"
#define D_NONE "無" #define D_NONE "無"
#define D_NOX "NOx"
#define D_O2 "Oxygen" #define D_O2 "Oxygen"
#define D_OFF "關閉" #define D_OFF "關閉"
#define D_OFFLINE "離線" #define D_OFFLINE "離線"
@ -201,6 +203,7 @@
#define D_UV_LEVEL "紫外線等級" #define D_UV_LEVEL "紫外線等級"
#define D_UV_POWER "紫外線能量" #define D_UV_POWER "紫外線能量"
#define D_VERSION "版本" #define D_VERSION "版本"
#define D_VOC "VOC"
#define D_VOLTAGE "電壓" #define D_VOLTAGE "電壓"
#define D_VOLUME "Volume" #define D_VOLUME "Volume"
#define D_WEIGHT "重量" #define D_WEIGHT "重量"
@ -937,6 +940,7 @@
#define D_UNIT_HOUR "時" #define D_UNIT_HOUR "時"
#define D_UNIT_GALLONS "gal" #define D_UNIT_GALLONS "gal"
#define D_UNIT_GALLONS_PER_MIN "g/m" #define D_UNIT_GALLONS_PER_MIN "g/m"
#define D_UNIT_GRAM_PER_CUBIC_METER "g/m³"
#define D_UNIT_INCH_MERCURY "inHg" #define D_UNIT_INCH_MERCURY "inHg"
#define D_UNIT_INCREMENTS "inc" #define D_UNIT_INCREMENTS "inc"
#define D_UNIT_KELVIN "K" #define D_UNIT_KELVIN "K"

View File

@ -789,35 +789,38 @@ char* GetPowerDevice(char* dest, uint32_t idx, size_t size)
return GetPowerDevice(dest, idx, size, 0); return GetPowerDevice(dest, idx, size, 0);
} }
float ConvertTempToFahrenheit(float c) { float ConvertTempToFahrenheit(float tc) {
float result = c; if (isnan(tc)) { return NAN; }
if (!isnan(c) && Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit float result = tc;
result = c * 1.8f + 32; // Fahrenheit if (Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
result = tc * 1.8f + 32; // Fahrenheit
} }
result = result + (0.1f * Settings->temp_comp); result = result + (0.1f * Settings->temp_comp);
return result; return result;
} }
float ConvertTempToCelsius(float c) { float ConvertTempToCelsius(float tf) {
float result = c; if (isnan(tf)) { return NAN; }
if (!isnan(c) && Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
result = (c - 32) / 1.8f; // Celsius float result = tf;
if (Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
result = (tf - 32) / 1.8f; // Celsius
} }
return result; return result;
} }
void UpdateGlobalTemperature(float c) { void UpdateGlobalTemperature(float t) {
if (!Settings->global_sensor_index[0] && !TasmotaGlobal.user_globals[0]) { if (!Settings->global_sensor_index[0] && !TasmotaGlobal.user_globals[0]) {
TasmotaGlobal.global_update = TasmotaGlobal.uptime; TasmotaGlobal.global_update = TasmotaGlobal.uptime;
TasmotaGlobal.temperature_celsius = c; TasmotaGlobal.temperature_celsius = t;
} }
} }
float ConvertTemp(float c) { float ConvertTemp(float t) {
UpdateGlobalTemperature(c); UpdateGlobalTemperature(t);
return ConvertTempToFahrenheit(c); return ConvertTempToFahrenheit(t);
} }
char TempUnit(void) { char TempUnit(void) {
@ -842,18 +845,38 @@ float CalcTempHumToDew(float t, float h) {
if (isnan(h) || isnan(t)) { return NAN; } if (isnan(h) || isnan(t)) { return NAN; }
if (Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit if (Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
t = (t - 32) / 1.8f; // Celsius t = (t - 32) / 1.8f; // Celsius
} }
float gamma = TaylorLog(h / 100) + 17.62f * t / (243.5f + t); float gamma = TaylorLog(h / 100) + 17.62f * t / (243.5f + t);
float result = (243.5f * gamma / (17.62f - gamma)); float result = (243.5f * gamma / (17.62f - gamma));
if (Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit if (Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
result = result * 1.8f + 32; // Fahrenheit result = result * 1.8f + 32; // Fahrenheit
} }
return result; return result;
} }
float CalcTempHumToAbsHum(float t, float h) {
if (isnan(t) || isnan(h)) { return NAN; }
// taken from https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/
// precision is about 0.1°C in range -30 to 35°C
// August-Roche-Magnus 6.1094 exp(17.625 x T)/(T + 243.04)
// Buck (1981) 6.1121 exp(17.502 x T)/(T + 240.97)
// reference https://www.eas.ualberta.ca/jdwilson/EAS372_13/Vomel_CIRES_satvpformulae.html
if (Settings->flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
t = (t - 32) / 1.8f; // Celsius
}
float temp = FastPrecisePow(2.718281828f, (17.67f * t) / (t + 243.5f));
const float mw = 18.01534f; // Molar mass of water g/mol
const float r = 8.31447215f; // Universal gas constant J/mol/K
// return (6.112 * temp * h * 2.1674) / (273.15 + t); // Simplified version
return (6.112f * temp * h * mw) / ((273.15f + t) * r); // Long version
}
float ConvertHgToHpa(float p) { float ConvertHgToHpa(float p) {
// Convert mmHg (or inHg) to hPa // Convert mmHg (or inHg) to hPa
float result = p; float result = p;

View File

@ -38,7 +38,6 @@
SensirionI2CSen5x *sen5x = nullptr; SensirionI2CSen5x *sen5x = nullptr;
struct SEN5XDATA_s { struct SEN5XDATA_s {
bool sen5x_ready;
float massConcentrationPm1p0; float massConcentrationPm1p0;
float massConcentrationPm2p5; float massConcentrationPm2p5;
float massConcentrationPm4p0; float massConcentrationPm4p0;
@ -48,43 +47,33 @@ struct SEN5XDATA_s {
float vocIndex; float vocIndex;
float noxIndex; float noxIndex;
} *SEN5XDATA = nullptr; } *SEN5XDATA = nullptr;
/********************************************************************************************/ /********************************************************************************************/
void sen5x_Init(void) void sen5x_Init(void) {
{
if(!TasmotaGlobal.i2c_enabled){
DEBUG_SENSOR_LOG(PSTR("I2C Not enabled, so not loading SEN5X driver."));
return;
}
int usingI2cBus = 0; int usingI2cBus = 0;
#ifdef ESP32 #ifdef ESP32
if (!I2cSetDevice(SEN5X_ADDRESS, 0)) if (!I2cSetDevice(SEN5X_ADDRESS, 0)) {
{
DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X not found, i2c bus 0")); DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X not found, i2c bus 0"));
if (TasmotaGlobal.i2c_enabled_2 ){ if (TasmotaGlobal.i2c_enabled_2 ) {
if(!I2cSetDevice(SEN5X_ADDRESS, 1)) {
if(!I2cSetDevice(SEN5X_ADDRESS, 1)){
DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X not found, i2c bus 1")); DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X not found, i2c bus 1"));
return; return;
} }
usingI2cBus = 1; usingI2cBus = 1;
} } else {
else {
return; return;
} }
} }
#else #else
if (!I2cSetDevice(SEN5X_ADDRESS)) if (!I2cSetDevice(SEN5X_ADDRESS)) {
{
DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X not found, i2c bus 0")); DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X not found, i2c bus 0"));
return; return;
} }
#endif #endif
if (SEN5XDATA == nullptr)
SEN5XDATA = (SEN5XDATA_s *)calloc(1, sizeof(struct SEN5XDATA_s)); sen5x = new SensirionI2CSen5x();
SEN5XDATA->sen5x_ready = false; if (1 == usingI2cBus) {
if(sen5x == nullptr) sen5x = new SensirionI2CSen5x();
if(usingI2cBus==1){
#ifdef ESP32 #ifdef ESP32
sen5x->begin(Wire1); sen5x->begin(Wire1);
#else #else
@ -95,53 +84,25 @@ void sen5x_Init(void)
sen5x->begin(Wire); sen5x->begin(Wire);
} }
int error_stop = sen5x->deviceReset(); int error_stop = sen5x->deviceReset();
if (error_stop != 0) if (error_stop != 0) {
{
DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X failed to reset device (I2C Bus %d)"), usingI2cBus); DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X failed to reset device (I2C Bus %d)"), usingI2cBus);
return; return;
} }
// Wait 1 second for sensors to start recording + 100ms for reset command // Wait 1 second for sensors to start recording + 100ms for reset command
delay(1100); delay(1100);
int error_start = sen5x->startMeasurement(); int error_start = sen5x->startMeasurement();
if (error_start != 0) if (error_start != 0) {
{
DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X failed to start measurement (I2C Bus %d)"), usingI2cBus); DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X failed to start measurement (I2C Bus %d)"), usingI2cBus);
return; return;
} }
SEN5XDATA->sen5x_ready = true;
SEN5XDATA = (SEN5XDATA_s *)calloc(1, sizeof(struct SEN5XDATA_s));
I2cSetActiveFound(SEN5X_ADDRESS, "SEN5X", usingI2cBus); I2cSetActiveFound(SEN5X_ADDRESS, "SEN5X", usingI2cBus);
DEBUG_SENSOR_LOG(PSTR("Sensirion SEN5X found, i2c bus %d"), usingI2cBus);
}
// #define POW_FUNC pow
#define POW_FUNC FastPrecisePow
float sen5x_AbsoluteHumidity(float temperature, float humidity)
{
// taken from https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/
// precision is about 0.1°C in range -30 to 35°C
// August-Roche-Magnus 6.1094 exp(17.625 x T)/(T + 243.04)
// Buck (1981) 6.1121 exp(17.502 x T)/(T + 240.97)
// reference https://www.eas.ualberta.ca/jdwilson/EAS372_13/Vomel_CIRES_satvpformulae.html
float temp = NAN;
const float mw = 18.01534f; // molar mass of water g/mol
const float r = 8.31447215f; // Universal gas constant J/mol/K
if (isnan(temperature) || isnan(humidity))
{
return NAN;
}
temp = POW_FUNC(2.718281828f, (17.67f * temperature) / (temperature + 243.5f));
// return (6.112 * temp * humidity * 2.1674) / (273.15 + temperature); //simplified version
return (6.112f * temp * humidity * mw) / ((273.15f + temperature) * r); // long version
} }
#define SAVE_PERIOD 30 #define SAVE_PERIOD 30
void SEN5XUpdate(void) // Perform every second to ensure proper operation of the baseline compensation algorithm void SEN5XUpdate(void) { // Perform every second to ensure proper operation of the baseline compensation algorithm
{
uint16_t error; uint16_t error;
char errorMessage[256]; char errorMessage[256];
DEBUG_SENSOR_LOG(PSTR("Running readMeasuredValues for SEN5X...")); DEBUG_SENSOR_LOG(PSTR("Running readMeasuredValues for SEN5X..."));
@ -151,118 +112,90 @@ void SEN5XUpdate(void) // Perform every second to ensure proper operation of the
SEN5XDATA->massConcentrationPm10p0, SEN5XDATA->ambientHumidity, SEN5XDATA->ambientTemperature, SEN5XDATA->vocIndex, SEN5XDATA->massConcentrationPm10p0, SEN5XDATA->ambientHumidity, SEN5XDATA->ambientTemperature, SEN5XDATA->vocIndex,
SEN5XDATA->noxIndex); SEN5XDATA->noxIndex);
if (error) if (error) {
{ AddLog(LOG_LEVEL_DEBUG, PSTR("S5X: Failed to retrieve readings"));
AddLog(LOG_LEVEL_DEBUG, PSTR("Failed to retrieve SEN5X readings.")); #ifdef DEBUG_TASMOTA_SENSOR
#ifdef DEBUG_TASMOTA_SENSOR DEBUG_SENSOR_LOG(PSTR("Error trying to execute readMeasuredValues():"));
DEBUG_SENSOR_LOG(PSTR("Error trying to execute readMeasuredValues(): \n"));
errorToString(error, errorMessage, 256); errorToString(error, errorMessage, 256);
DEBUG_SENSOR_LOG(errorMessage); DEBUG_SENSOR_LOG(errorMessage);
#endif } else {
}
else
{
#ifdef DEBUG_TASMOTA_SENSOR
DEBUG_SENSOR_LOG(PSTR("SEN5x readings:-")); DEBUG_SENSOR_LOG(PSTR("SEN5x readings:-"));
DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm1p0: %1_f\n"), &SEN5XDATA->massConcentrationPm1p0); DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm1p0: %1_f"), &SEN5XDATA->massConcentrationPm1p0);
DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm2p5: %1_f\n"), &SEN5XDATA->massConcentrationPm2p5); DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm2p5: %1_f"), &SEN5XDATA->massConcentrationPm2p5);
DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm4p0: %1_f\n"), &SEN5XDATA->massConcentrationPm4p0); DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm4p0: %1_f"), &SEN5XDATA->massConcentrationPm4p0);
DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm10p0: %1_f\n"), &SEN5XDATA->massConcentrationPm10p0); DEBUG_SENSOR_LOG(PSTR("MassConcentrationPm10p0: %1_f"), &SEN5XDATA->massConcentrationPm10p0);
if (isnan(SEN5XDATA->ambientHumidity)) if (isnan(SEN5XDATA->ambientHumidity)) {
{ DEBUG_SENSOR_LOG(PSTR("AmbientHumidity: n/a"));
DEBUG_SENSOR_LOG(PSTR("AmbientHumidity: n/a\n")); } else {
} DEBUG_SENSOR_LOG(PSTR("AmbientHumidity: %*_f"), 2, &SEN5XDATA->ambientHumidity);
else
{
DEBUG_SENSOR_LOG(PSTR("AmbientHumidity: %*_f\n"), 2, &SEN5XDATA->ambientHumidity);
} }
if (isnan(SEN5XDATA->ambientTemperature)) if (isnan(SEN5XDATA->ambientTemperature)) {
{ DEBUG_SENSOR_LOG(PSTR("AmbientTemperature: n/a"));
DEBUG_SENSOR_LOG(PSTR("AmbientTemperature: n/a\n")); } else {
} DEBUG_SENSOR_LOG(PSTR("AmbientTemperature: %*_f"), 2, &SEN5XDATA->ambientTemperature);
else
{
DEBUG_SENSOR_LOG(PSTR("AmbientTemperature: %*_f\n"), 2, &SEN5XDATA->ambientTemperature);
} }
if (isnan(SEN5XDATA->vocIndex)) if (isnan(SEN5XDATA->vocIndex)) {
{ DEBUG_SENSOR_LOG(PSTR("VocIndex: n/a"));
DEBUG_SENSOR_LOG(PSTR("VocIndex: n/a\n")); } else {
} DEBUG_SENSOR_LOG(PSTR("VocIndex: %*_f"), 0, &SEN5XDATA->vocIndex);
else
{
DEBUG_SENSOR_LOG(PSTR("VocIndex: %*_f\n"), 0, &SEN5XDATA->vocIndex);
} }
if (isnan(SEN5XDATA->noxIndex)) if (isnan(SEN5XDATA->noxIndex)) {
{ DEBUG_SENSOR_LOG(PSTR("NoxIndex: n/a"));
DEBUG_SENSOR_LOG(PSTR("NoxIndex: n/a\n")); } else {
} DEBUG_SENSOR_LOG(PSTR("NoxIndex: %*_f"), 0, &SEN5XDATA->noxIndex);
else
{
DEBUG_SENSOR_LOG(PSTR("NoxIndex: %*_f\n"), 0, &SEN5XDATA->noxIndex);
} }
#endif #endif
} }
} }
#ifdef USE_WEBSERVER void SEN5XShow(bool json) {
const char HTTP_SNS_SEN5X_UNITS[] PROGMEM = "{s}SEN5X %s{m}%*_f %s{e}"; char types[10];
const char HTTP_SNS_SEN5X_UNITLESS[] PROGMEM = "{s}SEN5X %s{m}%*_f{e}"; strcpy_P(types, PSTR("SEN5X"));
// {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
const char HTTP_SNS_AHUMSEN5X[] PROGMEM = "{s}SEN5X Abs Humidity{m}%s g/m³{e}";
#endif
#define D_JSON_AHUM "aHumidity" float temperature = 0;
float humidity = 0;
float abs_humidity = 0;
bool ahum_available = (!isnan(SEN5XDATA->ambientTemperature) && !isnan(SEN5XDATA->ambientHumidity) && (SEN5XDATA->ambientHumidity > 0));
if (ahum_available) {
temperature = ConvertTemp(SEN5XDATA->ambientTemperature);
humidity = ConvertHumidity(SEN5XDATA->ambientHumidity);
abs_humidity = CalcTempHumToAbsHum(SEN5XDATA->ambientTemperature, SEN5XDATA->ambientHumidity);
}
void SEN5XShow(bool json) if (json) {
{ ResponseAppend_P(PSTR(",\"%s\":{\"PM1\":%1_f,\"PM2.5\":%1_f,\"PM4\":%1_f,\"PM10\":%1_f,"),
float convertedTemp = 0; types,
float convertedHum = 0; &SEN5XDATA->massConcentrationPm1p0, &SEN5XDATA->massConcentrationPm2p5, &SEN5XDATA->massConcentrationPm4p0, &SEN5XDATA->massConcentrationPm10p0);
if (SEN5XDATA->sen5x_ready) if (!isnan(SEN5XDATA->noxIndex)) {
{ ResponseAppend_P(PSTR("\"NOx\":%0_f,"), &SEN5XDATA->noxIndex);
char sen5x_abs_hum[13];
bool ahum_available = !isnan(SEN5XDATA->ambientTemperature) &&
!isnan(SEN5XDATA->ambientHumidity) &&
SEN5XDATA->ambientHumidity > 0;
if (ahum_available)
{
convertedTemp = ConvertTempToFahrenheit(SEN5XDATA->ambientTemperature);
convertedHum = ConvertHumidity(SEN5XDATA->ambientHumidity);
dtostrfd(sen5x_AbsoluteHumidity(convertedTemp,convertedHum), 4, sen5x_abs_hum);
} }
if (json) if (!isnan(SEN5XDATA->vocIndex)) {
{ ResponseAppend_P(PSTR("\"VOC\":%0_f,"), &SEN5XDATA->vocIndex);
ResponseAppend_P(PSTR(",\"SEN5X\":{"));
ResponseAppend_P(PSTR("\"" D_ENVIRONMENTAL_CONCENTRATION "1\":%1_f,"), &SEN5XDATA->massConcentrationPm1p0);
ResponseAppend_P(PSTR("\"" D_ENVIRONMENTAL_CONCENTRATION "2.5\":%1_f,"), &SEN5XDATA->massConcentrationPm2p5);
ResponseAppend_P(PSTR("\"" D_ENVIRONMENTAL_CONCENTRATION "4\":%1_f,"), &SEN5XDATA->massConcentrationPm4p0);
ResponseAppend_P(PSTR("\"" D_ENVIRONMENTAL_CONCENTRATION "10\":%1_f,"), &SEN5XDATA->massConcentrationPm10p0);
if (!isnan(SEN5XDATA->noxIndex))
ResponseAppend_P(PSTR("\"NOx\":%0_f,"), &SEN5XDATA->noxIndex);
if (!isnan(SEN5XDATA->vocIndex))
ResponseAppend_P(PSTR("\"VOC\":%0_f,"), &SEN5XDATA->vocIndex);
if (ahum_available)
ResponseAppendTHD(convertedTemp, convertedHum);
ResponseAppend_P(PSTR(",\"" D_JSON_AHUM "\":%s"), sen5x_abs_hum);
ResponseJsonEnd();
} }
if (ahum_available) {
ResponseAppendTHD(temperature, humidity);
ResponseAppend_P(PSTR(",\"" D_JSON_AHUM "\":%4_f"), abs_humidity);
}
ResponseJsonEnd();
#ifdef USE_WEBSERVER #ifdef USE_WEBSERVER
} else {
WSContentSend_PD(HTTP_SNS_SEN5X_UNITS, PSTR(D_ENVIRONMENTAL_CONCENTRATION "1"), 1, &SEN5XDATA->massConcentrationPm1p0, D_UNIT_MICROGRAM_PER_CUBIC_METER); WSContentSend_PD(HTTP_SNS_F_ENVIRONMENTAL_CONCENTRATION, types, "1", &SEN5XDATA->massConcentrationPm1p0);
WSContentSend_PD(HTTP_SNS_SEN5X_UNITS, PSTR(D_ENVIRONMENTAL_CONCENTRATION "2.5"), 1, &SEN5XDATA->massConcentrationPm2p5, D_UNIT_MICROGRAM_PER_CUBIC_METER); WSContentSend_PD(HTTP_SNS_F_ENVIRONMENTAL_CONCENTRATION, types, "2.5", &SEN5XDATA->massConcentrationPm2p5);
WSContentSend_PD(HTTP_SNS_SEN5X_UNITS, PSTR(D_ENVIRONMENTAL_CONCENTRATION "4"), 1, &SEN5XDATA->massConcentrationPm4p0, D_UNIT_MICROGRAM_PER_CUBIC_METER); WSContentSend_PD(HTTP_SNS_F_ENVIRONMENTAL_CONCENTRATION, types, "4", &SEN5XDATA->massConcentrationPm4p0);
WSContentSend_PD(HTTP_SNS_SEN5X_UNITS, PSTR(D_ENVIRONMENTAL_CONCENTRATION "10"), 1, &SEN5XDATA->massConcentrationPm10p0, D_UNIT_MICROGRAM_PER_CUBIC_METER); WSContentSend_PD(HTTP_SNS_F_ENVIRONMENTAL_CONCENTRATION, types, "10", &SEN5XDATA->massConcentrationPm10p0);
if (!isnan(SEN5XDATA->noxIndex)) if (!isnan(SEN5XDATA->noxIndex)) {
WSContentSend_PD(HTTP_SNS_SEN5X_UNITLESS, "NOx", 0, &SEN5XDATA->noxIndex); WSContentSend_PD(HTTP_SNS_F_NOX, types, 0, &SEN5XDATA->noxIndex);
if (!isnan(SEN5XDATA->vocIndex)) }
WSContentSend_PD(HTTP_SNS_SEN5X_UNITLESS, "VOC", 0, &SEN5XDATA->vocIndex); if (!isnan(SEN5XDATA->vocIndex)) {
if (ahum_available) WSContentSend_PD(HTTP_SNS_F_VOC, types, 0, &SEN5XDATA->vocIndex);
WSContentSend_THD(PSTR("SEN5X"), convertedTemp, convertedHum); }
WSContentSend_PD(HTTP_SNS_AHUMSEN5X, sen5x_abs_hum); if (ahum_available) {
WSContentSend_THD(types, temperature, humidity);
WSContentSend_PD(HTTP_SNS_F_ABS_HUM, types, 4, abs_humidity);
}
#endif #endif
} }
} }
@ -271,23 +204,16 @@ void SEN5XShow(bool json)
* Interface * Interface
\*********************************************************************************************/ \*********************************************************************************************/
bool Xsns103(uint32_t function) bool Xsns103(uint32_t function) {
{ if (!I2cEnabled(XI2C_76)) { return false; }
if (!I2cEnabled(XI2C_76))
{
return false;
}
bool result = false; bool result = false;
if (FUNC_INIT == function) if (FUNC_INIT == function) {
{
sen5x_Init(); sen5x_Init();
} }
else if (SEN5XDATA != nullptr) else if (SEN5XDATA != nullptr) {
{ switch (function) {
switch (function)
{
case FUNC_EVERY_SECOND: case FUNC_EVERY_SECOND:
SEN5XUpdate(); SEN5XUpdate();
break; break;

View File

@ -108,8 +108,6 @@ const char HTTP_SNS_SGP30[] PROGMEM =
const char HTTP_SNS_AHUM[] PROGMEM = "{s}SGP30 Abs Humidity{m}%s g/m3{e}"; const char HTTP_SNS_AHUM[] PROGMEM = "{s}SGP30 Abs Humidity{m}%s g/m3{e}";
#endif #endif
#define D_JSON_AHUM "aHumidity"
void Sgp30Show(bool json) void Sgp30Show(bool json)
{ {
if (sgp30_ready) { if (sgp30_ready) {

View File

@ -104,8 +104,6 @@ const char HTTP_SNS_SGP40[] PROGMEM =
const char HTTP_SNS_AHUM40[] PROGMEM = "{s}SGP40 Abs Humidity{m}%s g/m3{e}"; const char HTTP_SNS_AHUM40[] PROGMEM = "{s}SGP40 Abs Humidity{m}%s g/m3{e}";
#endif #endif
#define D_JSON_AHUM "aHumidity"
void Sgp40Show(bool json) void Sgp40Show(bool json)
{ {
if (sgp40_ready) { if (sgp40_ready) {