From d12613b91a377c0d6612d182f1f5ef1f6552a8df Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Wed, 10 Aug 2022 10:01:24 +0200 Subject: [PATCH] Trying to fix HA accumulated --- src/entsoe/PricesFromHubStream.cpp | 29 +++++++++++++++++++++++++++ src/entsoe/PricesFromHubStream.h | 19 ++++++++++++++++++ src/mqtt/HomeAssistantMqttHandler.cpp | 1 + 3 files changed, 49 insertions(+) create mode 100644 src/entsoe/PricesFromHubStream.cpp create mode 100644 src/entsoe/PricesFromHubStream.h diff --git a/src/entsoe/PricesFromHubStream.cpp b/src/entsoe/PricesFromHubStream.cpp new file mode 100644 index 00000000..f82f27c0 --- /dev/null +++ b/src/entsoe/PricesFromHubStream.cpp @@ -0,0 +1,29 @@ +#include "PricesFromHubStream.h" + +int PricesFromHubStream::available() { + return 0; +} + +int PricesFromHubStream::read() { + return 0; +} + +int PricesFromHubStream::peek() { + return 0; +} + +void PricesFromHubStream::flush() { + +} + +size_t PricesFromHubStream::write(const uint8_t *buffer, size_t size) { + for(int i = 0; i < size; i++) { + write(buffer[i]); + } + return size; +} + +size_t PricesFromHubStream::write(uint8_t b) { + buf[pos++] = b; + return 1; +} diff --git a/src/entsoe/PricesFromHubStream.h b/src/entsoe/PricesFromHubStream.h new file mode 100644 index 00000000..b672393d --- /dev/null +++ b/src/entsoe/PricesFromHubStream.h @@ -0,0 +1,19 @@ +#ifndef _PRICESFROMHUBSTREAM_H +#define _PRICESFROMHUBSTREAM_H + +#include "Stream.h" + +class PricesFromHubStream: public Stream { +public: + int available(); + int read(); + int peek(); + void flush(); + size_t write(const uint8_t *buffer, size_t size); + size_t write(uint8_t); + + int pos = 0; + uint8_t buf[512]; +}; + +#endif diff --git a/src/mqtt/HomeAssistantMqttHandler.cpp b/src/mqtt/HomeAssistantMqttHandler.cpp index 798dc8f9..85ad96d1 100644 --- a/src/mqtt/HomeAssistantMqttHandler.cpp +++ b/src/mqtt/HomeAssistantMqttHandler.cpp @@ -24,6 +24,7 @@ bool HomeAssistantMqttHandler::publish(AmsData* data, AmsData* previousState, En data->getMeterTimestamp() ); mqtt->publish(topic + "/energy", json); + mqtt->loop(); } String meterModel = data->getMeterModel(); meterModel.replace("\\", "\\\\");