Обновляем Pzem

This commit is contained in:
2022-10-07 14:03:05 +03:00
parent 2fc6b0b59a
commit 8af8f40335
2 changed files with 62 additions and 13 deletions

View File

@@ -150,6 +150,35 @@ class Pzem004hz : public IoTItem {
~Pzem004hz(){};
};
class Pzem004pf : public IoTItem {
private:
String addr;
PZEMSensor* pzem;
public:
Pzem004pf(String parameters) : IoTItem(parameters) {
addr = jsonReadStr(parameters, "addr");
if (myUART) {
pzem = new PZEMSensor(myUART, hexStringToUint8(addr));
}
}
void doByInterval() {
if (pzem) {
bool online = false;
value.valD = pzem->values(online)->pf;
if (online) {
regEvent(value.valD, "Pzem Pf");
} else {
regEvent(NAN, "Pzem Pf");
SerialPrint("E", "Pzem", "Pf error");
}
}
}
~Pzem004pf(){};
};
void* getAPI_Pzem004(String subtype, String param) {
if (subtype == F("Pzem004v")) {
return new Pzem004v(param);
@@ -161,6 +190,8 @@ void* getAPI_Pzem004(String subtype, String param) {
return new Pzem004wh(param);
} else if (subtype == F("Pzem004hz")) {
return new Pzem004hz(param);
} else if (subtype == F("Pzem004pf")) {
return new Pzem004pf(param);
} else {
return nullptr;
}

View File

@@ -7,10 +7,11 @@
"subtype": "Pzem004v",
"id": "v",
"widget": "anydataVlt",
"page": "Сенсоры",
"page": "PZEM",
"descr": "Напряжение",
"int": 15,
"addr": "0xF8"
"addr": "0xF8",
"round": 1
},
{
"name": "PZEM 004t Сила тока",
@@ -18,10 +19,11 @@
"subtype": "Pzem004a",
"id": "a",
"widget": "anydataAmp",
"page": "Сенсоры",
"page": "PZEM",
"descr": "Сила тока",
"int": 15,
"addr": "0xF8"
"addr": "0xF8",
"round": 1
},
{
"name": "PZEM 004t Мощность",
@@ -29,10 +31,11 @@
"subtype": "Pzem004w",
"id": "w",
"widget": "anydataWt",
"page": "Сенсоры",
"page": "PZEM",
"descr": "Мощность",
"int": 15,
"addr": "0xF8"
"addr": "0xF8",
"round": 1
},
{
"name": "PZEM 004t Энергия",
@@ -40,10 +43,11 @@
"subtype": "Pzem004wh",
"id": "wh",
"widget": "anydataWth",
"page": "Сенсоры",
"page": "PZEM",
"descr": "Энергия",
"int": 15,
"addr": "0xF8"
"addr": "0xF8",
"round": 1
},
{
"name": "PZEM 004t Частота",
@@ -51,10 +55,23 @@
"subtype": "Pzem004hz",
"id": "hz",
"widget": "anydataHtz",
"page": "Сенсоры",
"page": "PZEM",
"descr": "Частота",
"int": 15,
"addr": "0xF8"
"addr": "0xF8",
"round": 1
},
{
"name": "PZEM 004t Косинус",
"type": "Reading",
"subtype": "Pzem004pf",
"id": "pf",
"widget": "anydata",
"page": "PZEM",
"descr": "Косинус F",
"int": 15,
"addr": "0xF8",
"round": 1
}
],
"about": {
@@ -73,7 +90,8 @@
"Pzem004a",
"Pzem004w",
"Pzem004wh",
"Pzem004hz"
"Pzem004hz",
"Pzem004pf"
],
"title": "Счетчик электроэнергии PZEM 004 t версии 3.0 (с модбасом). Возможно подключение трех счетчиков к одной esp для трехфазных сетей. Для этого нужно настроить разные адреса modbus в платах pzem",
"moduleDesc": "Считает потраченную электроэнергию, измеряет напряжение, частоту, силу тока и прочие параметры",
@@ -85,10 +103,10 @@
"defActive": true,
"usedLibs": {
"esp32_4mb": [
"mandulaj/PZEM-004T-v30"
"https://github.com/mandulaj/PZEM-004T-v30"
],
"esp8266_4mb": [
"mandulaj/PZEM-004T-v30"
"https://github.com/mandulaj/PZEM-004T-v30"
]
}
}