OpenDTU-old/include/HttpPowerMeter.h
helgeerbe 006f63ed02 feature: add digest auth on power meter
Power Meter -> HTTP(S) + Jason configuration allows now basic and digest authentication (all Shelly Gen2 devices)
2023-07-04 11:54:46 +02:00

22 lines
764 B
C++

// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <stdint.h>
class HttpPowerMeterClass {
public:
void init();
bool updateValues();
float getPower(int8_t phase);
bool httpRequest(const char* url, Auth authType, const char* username, const char* password, const char* httpHeader, const char* httpValue, uint32_t timeout,
char* response, size_t responseSize, char* error, size_t errorSize);
float getFloatValueByJsonPath(const char* jsonString, const char* jsonPath, float &value);
private:
float power[POWERMETER_MAX_PHASES];
void extractUrlComponents(const String& url, String& protocol, String& hostname, String& uri);
String sha256(const String& data);
};
extern HttpPowerMeterClass HttpPowerMeter;