This commit is contained in:
Dmitry Borisenko
2022-09-26 21:56:54 +02:00
parent c75d6dd66d
commit c091f1b4cc
10 changed files with 226 additions and 103 deletions

View File

@@ -3,91 +3,22 @@
#include "classes/IoTItem.h"
#include "PZEMSensor.h"
#include "SoftUART.h"
//#include "SoftUART.h"
#include <map>
PZEMSensor* pzem;
// std::map<String, Adafruit_Pzem004*> bmes;
//
// class Pzem004t : public IoTItem {
// private:
// Adafruit_Pzem004* _bme;
//
// public:
// Pzem004t(Adafruit_Pzem004* bme, String parameters) : IoTItem(parameters) {
// _bme = bme;
// }
//
// void doByInterval() {
// value.valD = _bme->readTemperature();
// if (value.valD < 145)
// regEvent(value.valD, "Pzem004t");
// else
// SerialPrint("E", "Sensor Pzem004t", "Error");
// }
//
// ~Pzem004t(){};
// };
//
// class Pzem004h : public IoTItem {
// private:
// Adafruit_Pzem004* _bme;
//
// public:
// Pzem004h(Adafruit_Pzem004* bme, String parameters) : IoTItem(parameters) {
// _bme = bme;
// }
//
// void doByInterval() {
// value.valD = _bme->readHumidity();
// if (value.valD < 100)
// regEvent(value.valD, "Pzem004h");
// else
// SerialPrint("E", "Sensor Pzem004h", "Error");
// }
//
// ~Pzem004h(){};
// };
//
// class Pzem004p : public IoTItem {
// private:
// Adafruit_Pzem004* _bme;
//
// public:
// Pzem004p(Adafruit_Pzem004* bme, String parameters) : IoTItem(parameters) {
// _bme = bme;
// }
//
// void doByInterval() {
// value.valD = _bme->readPressure();
// if (value.valD > 0) {
// value.valD = value.valD / 1.333224 / 100;
// regEvent(value.valD, "Pzem004p");
// } else
// SerialPrint("E", "Sensor Pzem004p", "Error");
// }
//
// ~Pzem004p(){};
// };
//
// void* getAPI_Pzem004(String subtype, String param) {
// if (subtype == F("Pzem004t") || subtype == F("Pzem004h") || subtype == F("Pzem004p")) {
// String addr;
// jsonRead(param, "addr", addr);
//
// if (bmes.find(addr) == bmes.end()) {
// bmes[addr] = new Adafruit_Pzem004();
// bmes[addr]->begin(hexStringToUint8(addr));
// }
//
// if (subtype == F("Pzem004t")) {
// return new Pzem004t(bmes[addr], param);
// } else if (subtype == F("Pzem004h")) {
// return new Pzem004h(bmes[addr], param);
// } else if (subtype == F("Pzem004p")) {
// return new Pzem004p(bmes[addr], param);
// }
// }
//
// return nullptr;
// }
class Pzem004v : public IoTItem {
private:
String addr;
public:
Pzem004v(String parameters) : IoTItem(parameters) {
addr = jsonReadStr(parameters, "addr");
// pzem = new PZEMSensor(myUART, hexStringToUint8(addr));
}
~Pzem004v(){};
};
void* getAPI_Pzem004(String subtype, String param) {
}

View File

@@ -4,11 +4,59 @@
{
"name": "PZEM 004t Напряжение",
"type": "Reading",
"subtype": "Bme280t",
"id": "tmp3",
"widget": "anydataTmp",
"subtype": "Pzem004v",
"id": "V",
"widget": "anydataVlt",
"page": "Сенсоры",
"descr": "Температура",
"descr": "Напряжение",
"int": 15,
"addr": "0x77",
"round": 1
},
{
"name": "PZEM 004t Сила тока",
"type": "Reading",
"subtype": "Pzem004a",
"id": "A",
"widget": "anydataAmp",
"page": "Сенсоры",
"descr": "Сила тока",
"int": 15,
"addr": "0x77",
"round": 1
},
{
"name": "PZEM 004t Мощность",
"type": "Reading",
"subtype": "Pzem004w",
"id": "A",
"widget": "anydataWt",
"page": "Сенсоры",
"descr": "Мощность",
"int": 15,
"addr": "0x77",
"round": 1
},
{
"name": "PZEM 004t Энергия",
"type": "Reading",
"subtype": "Pzem004wh",
"id": "Wh",
"widget": "anydataWth",
"page": "Сенсоры",
"descr": "Энергия",
"int": 15,
"addr": "0x77",
"round": 1
},
{
"name": "PZEM 004t Частота",
"type": "Reading",
"subtype": "Pzem004hz",
"id": "Hz",
"widget": "anydataHtz",
"page": "Сенсоры",
"descr": "Энергия",
"int": 15,
"addr": "0x77",
"round": 1
@@ -26,8 +74,8 @@
"Pzem004v",
"Pzem004a",
"Pzem004w",
"Pzem004hz",
"Pzem004wh"
"Pzem004wh",
"Pzem004hz"
],
"title": "Счетчик электроэнергии PZEM 004t версии 3.0 (с модбасом)",
"moduleDesc": "Считает потраченную электроэнергию, измеряет напряжение, частоту, силу тока и прочие параметры",