Add miflora battery (#992)
This commit is contained in:
1 parent
2708858754
commit
90f42990df
4 files changed
+55
-7
No files matched your search
@@ -45,5 +45,14 @@ public:
|
||||
GENERIC_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
||||
};
|
||||
|
||||
class HHCCJCY01HHCC_connect : public zBLEConnect {
|
||||
std::vector<uint8_t> m_data;
|
||||
void notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t length, bool isNotify);
|
||||
|
||||
public:
|
||||
HHCCJCY01HHCC_connect(NimBLEAddress& addr) : zBLEConnect(addr) {}
|
||||
void publishData() override;
|
||||
};
|
||||
|
||||
#endif //ESP32
|
||||
#endif //zBLEConnect_h
|
||||
@@ -253,5 +253,38 @@ void DT24_connect::publishData() {
|
||||
}
|
||||
}
|
||||
|
||||
/*-----------------------HHCCJCY01HHCC HANDLING-----------------------*/
|
||||
void HHCCJCY01HHCC_connect::publishData() {
|
||||
NimBLEUUID serviceUUID("00001204-0000-1000-8000-00805f9b34fb");
|
||||
NimBLEUUID charUUID("00001a00-0000-1000-8000-00805f9b34fb");
|
||||
NimBLEUUID charUUID2("00001a02-0000-1000-8000-00805f9b34fb");
|
||||
NimBLERemoteCharacteristic* pChar = getCharacteristic(serviceUUID, charUUID);
|
||||
|
||||
if (pChar) {
|
||||
Log.trace(F("Read mode" CR));
|
||||
uint8_t buf[2] = {0xA0, 0x1F};
|
||||
pChar->writeValue(buf, 2, true);
|
||||
int batteryValue = -1;
|
||||
NimBLERemoteCharacteristic* pChar2 = getCharacteristic(serviceUUID, charUUID2);
|
||||
if (pChar2) {
|
||||
std::string value;
|
||||
value = pChar2->readValue();
|
||||
const char* val2 = value.c_str();
|
||||
batteryValue = val2[0];
|
||||
JsonObject& BLEdata = getBTJsonObject();
|
||||
String mac_address = m_pClient->getPeerAddress().toString().c_str();
|
||||
mac_address.toUpperCase();
|
||||
BLEdata.set("model", "HHCCJCY01HHCC");
|
||||
BLEdata.set("id", (char*)mac_address.c_str());
|
||||
BLEdata.set("batt", (int)batteryValue);
|
||||
pubBT(BLEdata);
|
||||
} else {
|
||||
Log.notice(F("Failed getting characteristic" CR));
|
||||
}
|
||||
} else {
|
||||
Log.notice(F("Failed getting characteristic" CR));
|
||||
}
|
||||
}
|
||||
|
||||
# endif //ZgatewayBT
|
||||
#endif //ESP32
|
||||
+7
-2
@@ -84,7 +84,7 @@ static bool oneWhite = false;
|
||||
int minRssi = abs(MinimumRSSI); //minimum rssi value
|
||||
|
||||
void pubBTMainCore(JsonObject& data, bool haPresenceEnabled = true) {
|
||||
if (abs((int)data["rssi"] | 0) < minRssi) {
|
||||
if (abs((int)data["rssi"] | 0) < minRssi && data.containsKey("id")) {
|
||||
String mac_address = data["id"].as<const char*>();
|
||||
mac_address.replace(":", "");
|
||||
String mactopic = subjectBTtoMQTT + String("/") + mac_address;
|
||||
@@ -750,6 +750,11 @@ void BLEconnect() {
|
||||
case GENERIC: {
|
||||
GENERIC_connect BLEclient(addr);
|
||||
BLEclient.processActions(BLEactions);
|
||||
}
|
||||
case HHCCJCY01HHCC: {
|
||||
HHCCJCY01HHCC_connect BLEclient(addr);
|
||||
BLEclient.processActions(BLEactions);
|
||||
BLEclient.publishData();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -1114,7 +1119,7 @@ JsonObject& process_bledata(JsonObject& BLEdata) {
|
||||
Log.trace(F("mi flora data reading" CR));
|
||||
BLEdata.set("model", "HHCCJCY01HHCC");
|
||||
if (device->sensorModel == -1)
|
||||
createOrUpdateDevice(mac, device_flags_init, HHCCJCY01HHCC);
|
||||
createOrUpdateDevice(mac, device_flags_connect, HHCCJCY01HHCC);
|
||||
return process_sensors(2, BLEdata);
|
||||
}
|
||||
Log.trace(F("Is it a vegtrug ?" CR));
|
||||
|
||||
Reference in new issue
Block a user