mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-23 18:56:38 +00:00
Add PZEM_AC device address in JSON and GUI (#23268)
This commit is contained in:
parent
3baa110f9d
commit
117e503aaa
@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file.
|
||||
- Berry expose `esp_http_server` for websockets (#23206)
|
||||
- AlpineJS 2.8.2 - optional for now (#23259)
|
||||
- Support for XMODEM over serial and telnet if enabled with `#define USE_XYZMODEM`
|
||||
- PZEM_AC device address in JSON and GUI (#23268)
|
||||
|
||||
### Breaking Changed
|
||||
- HASPmota added `y2_min` and `y2_max` to control the second series of `chart` (#23287)
|
||||
|
@ -121,6 +121,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
|
||||
- Support for HLK-LD2402 24GHz smart wave motion sensor [#23133](https://github.com/arendst/Tasmota/issues/23133)
|
||||
- Support for Telnet server using command `Telnet <0|1|port>[,<IP filter>]` if enabled with `#define USE_TELNET`
|
||||
- Support for XMODEM over serial and telnet if enabled with `#define USE_XYZMODEM`
|
||||
- PZEM_AC device address in JSON and GUI [#23268](https://github.com/arendst/Tasmota/issues/23268)
|
||||
- Allow acl in mqtt when client certificate is in use with `#define USE_MQTT_CLIENT_CERT` [#22998](https://github.com/arendst/Tasmota/issues/22998)
|
||||
- AlpineJS 2.8.2 - optional for now [#23259](https://github.com/arendst/Tasmota/issues/23259)
|
||||
- Berry experimental driver for AXP2101 for M5Core2v1.1 [#23039](https://github.com/arendst/Tasmota/issues/23039)
|
||||
|
@ -1040,6 +1040,8 @@ const char HTTP_SNS_IMPORT_REACTIVE[] PROGMEM = "{s}" D_IMPORT_REACTIVE
|
||||
const char HTTP_SNS_EXPORT_REACTIVE[] PROGMEM = "{s}" D_EXPORT_REACTIVE "{m}%s " D_UNIT_KWARH "{e}";
|
||||
const char HTTP_SNS_TOTAL_REACTIVE[] PROGMEM = "{s}" D_TOTAL_REACTIVE "{m}%s " D_UNIT_KWARH "{e}";
|
||||
const char HTTP_SNS_PHASE_ANGLE[] PROGMEM = "{s}" D_PHASE_ANGLE "{m}%s " D_UNIT_ANGLE "{e}";
|
||||
const char HTTP_SNS_ADDRESS[] PROGMEM = "{s}" D_ADDRESS "{m}%s" "{e}";
|
||||
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
#endif // _I18N_H_
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Luggehalte"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Качество на въздуха"
|
||||
#define D_AP "Точка за достъп" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Qualitat Aire"
|
||||
#define D_AP "PA" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Kvalita vzduchu"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs․ Feuchtigkeit"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Luftqualität"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Διαχειριστής"
|
||||
#define D_AIR_QUALITY "Ποιότητα αέρα"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Air quality"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Calidad del Aire"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Qualité de l'Air"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Luchtkwaliteit"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "מנהל"
|
||||
#define D_AIR_QUALITY "איכות אוויר"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Levegőminőség"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Umidità ass"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Qualità dell'aria"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "공기질"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Absoliuti drėgmė"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Administratoriaus"
|
||||
#define D_AIR_QUALITY "Oro kokybė"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Lucht kwaliteit"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Wilgotność"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Jakość powietrza"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Qualidade do ar"
|
||||
#define D_AP "Ponto de acesso" // Ponto de Acesso
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Qualidade do Ar"
|
||||
#define D_AP "AP" // Ponto de Acesso
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Calitatea aerului"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -53,6 +53,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Качество воздуха"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Kvalita vzduchu"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Luftkvalitet"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Hava Kalitesi"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Адміністратор"
|
||||
#define D_AIR_QUALITY "Якість повітря"
|
||||
#define D_AP "Точка доступу" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Quản trị"
|
||||
#define D_AIR_QUALITY "Chất lượng không khí"
|
||||
#define D_AP "Mạng wifi" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "空气质量"
|
||||
#define D_AP "AP" // Access Point
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
// Common
|
||||
#define D_ABSOLUTE_HUMIDITY "Abs Humidity"
|
||||
#define D_ADDRESS "Address"
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "空氣品質"
|
||||
#define D_AP "存取點" // Access Point
|
||||
|
@ -44,6 +44,7 @@ struct PZEMAC {
|
||||
uint8_t send_retry = 0;
|
||||
uint8_t phase = 0;
|
||||
uint8_t address = 0;
|
||||
uint8_t addr[ENERGY_MAX_PHASES];
|
||||
uint8_t address_step = ADDR_IDLE;
|
||||
} PzemAc;
|
||||
|
||||
@ -68,6 +69,7 @@ void PzemAcEverySecond(void)
|
||||
} else {
|
||||
Energy->data_valid[PzemAc.phase] = 0;
|
||||
if (10 == registers) {
|
||||
PzemAc.addr[PzemAc.phase] = PZEM_AC_DEVICE_ADDRESS + PzemAc.phase;
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 = ModBus register
|
||||
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 = Buffer index
|
||||
@ -147,6 +149,20 @@ bool PzemAcCommand(void)
|
||||
return serviced;
|
||||
}
|
||||
|
||||
void PzemAcShow(bool json) {
|
||||
float address[ENERGY_MAX_PHASES];
|
||||
for (uint32_t i = 0; i < ENERGY_MAX_PHASES; i++) {
|
||||
address[i] = PzemAc.addr[i];
|
||||
}
|
||||
if (json) {
|
||||
ResponseAppend_P(PSTR(",\"Address\":%s"), EnergyFmt(address, 0));
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
WSContentSend_PD(HTTP_SNS_ADDRESS, WebEnergyFmt(address, 0, 2));
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Interface
|
||||
\*********************************************************************************************/
|
||||
@ -159,6 +175,14 @@ bool Xnrg05(uint32_t function)
|
||||
case FUNC_ENERGY_EVERY_SECOND:
|
||||
if (TasmotaGlobal.uptime > 4) { PzemAcEverySecond(); } // Fix start up issue #5875
|
||||
break;
|
||||
case FUNC_JSON_APPEND:
|
||||
PzemAcShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_COL_SENSOR:
|
||||
PzemAcShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
case FUNC_COMMAND:
|
||||
result = PzemAcCommand();
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user