Skip to content

Commit

Permalink
* use epoch instead of local time
Browse files Browse the repository at this point in the history
* added wrapper function for writing topics
  • Loading branch information
vaterlangen committed Oct 4, 2024
1 parent 50ee059 commit 646efd3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
1 change: 1 addition & 0 deletions include/ZendureBattery.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ class ZendureBattery : public BatteryProvider {

private:
void calculateEfficiency();
void publishProperty(const String& topic, const String& property, const String& value) const;

bool _verboseLogging = false;

Expand Down
20 changes: 12 additions & 8 deletions src/ZendureBattery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ uint16_t ZendureBattery::setOutputLimit(uint16_t limit) const

if (_stats->_output_limit != limit){
limit = calcOutputLimit(limit);
MqttSettings.publishGeneric(_topicWrite, "{\"properties\": {\"" ZENDURE_REPORT_OUTPUT_LIMIT "\": " + String(limit) + "} }", false, 0);
publishProperty(_topicWrite, ZENDURE_REPORT_OUTPUT_LIMIT, String(limit));
MessageOutput.printf("ZendureBattery: Adjusting outputlimit from %d W to %d W\r\n", _stats->_output_limit, limit);
}

Expand All @@ -287,7 +287,7 @@ uint16_t ZendureBattery::setInverterMax(uint16_t limit) const

if (_stats->_inverse_max != limit){
limit = calcOutputLimit(limit);
MqttSettings.publishGeneric(_topicWrite, "{\"properties\": {\"" ZENDURE_REPORT_INVERSE_MAX_POWER "\": " + String(limit) + "} }", false, 0);
publishProperty(_topicWrite, ZENDURE_REPORT_INVERSE_MAX_POWER, String(limit));
MessageOutput.printf("ZendureBattery: Adjusting inverter max output from %d W to %d W\r\n", _stats->_inverse_max, limit);
}

Expand All @@ -297,18 +297,22 @@ uint16_t ZendureBattery::setInverterMax(uint16_t limit) const
void ZendureBattery::shutdown() const
{
if (!_topicWrite.isEmpty()) {
MqttSettings.publishGeneric(_topicWrite, "{\"properties\": {\"" ZENDURE_REPORT_MASTER_SWITCH "\": 1} }", false, 0);
publishProperty(_topicWrite, ZENDURE_REPORT_MASTER_SWITCH, "1");
MessageOutput.printf("ZendureBattery: Shutting down HUB\r\n");
}
}

void ZendureBattery::publishProperty(const String& topic, const String& property, const String& value) const
{
MqttSettings.publishGeneric(topic, "{\"properties\": {\"" + property + "\": " + value + "} }", false, 0);
}

void ZendureBattery::timesync()
{
struct tm timeinfo;
if (!_baseTopic.isEmpty() && getLocalTime(&timeinfo, 5)) {
char timeStringBuff[50];
strftime(timeStringBuff, sizeof(timeStringBuff), "%s", &timeinfo);
MqttSettings.publishGeneric("iot" + _baseTopic + "time-sync/reply","{\"zoneOffset\": \"+00:00\", \"messageId\": " + String(++_messageCounter) + ", \"timestamp\": " + String(timeStringBuff) + "}", false, 0);
time_t now;
time(&now);
if (!_baseTopic.isEmpty() && now > 1577836800 /* epoch 2020-01-01T00:00:00 */) {
MqttSettings.publishGeneric("iot" + _baseTopic + "time-sync/reply", "{\"zoneOffset\": \"+00:00\", \"messageId\": " + String(++_messageCounter) + ", \"timestamp\": " + String(now) + "}", false, 0);
MessageOutput.printf("ZendureBattery: Timesync Reply\r\n");
}
}
Expand Down

0 comments on commit 646efd3

Please sign in to comment.