diff --git a/include/PowerMeterHttpSml.h b/include/PowerMeterHttpSml.h index 423468eb..823a4b76 100644 --- a/include/PowerMeterHttpSml.h +++ b/include/PowerMeterHttpSml.h @@ -14,7 +14,8 @@ class PowerMeterHttpSml : public PowerMeterSml { public: explicit PowerMeterHttpSml(PowerMeterHttpSmlConfig const& cfg) - : _cfg(cfg) { } + : PowerMeterSml("PowerMeterHttpSml") + , _cfg(cfg) { } ~PowerMeterHttpSml(); diff --git a/include/PowerMeterSerialSml.h b/include/PowerMeterSerialSml.h index 58e01961..634f5994 100644 --- a/include/PowerMeterSerialSml.h +++ b/include/PowerMeterSerialSml.h @@ -6,6 +6,9 @@ class PowerMeterSerialSml : public PowerMeterSml { public: + PowerMeterSerialSml() + : PowerMeterSml("PowerMeterSerialSml") { } + ~PowerMeterSerialSml(); bool init() final; diff --git a/include/PowerMeterSml.h b/include/PowerMeterSml.h index 7a599972..2e180c57 100644 --- a/include/PowerMeterSml.h +++ b/include/PowerMeterSml.h @@ -16,9 +16,13 @@ public: void doMqttPublish() const final; protected: + explicit PowerMeterSml(char const* user) + : _user(user) { } + void processSmlByte(uint8_t byte); private: + std::string _user; mutable std::mutex _mutex; float _activePowerTotal = 0.0; diff --git a/src/PowerMeterSerialSml.cpp b/src/PowerMeterSerialSml.cpp index 5f5a64c1..e19b4067 100644 --- a/src/PowerMeterSerialSml.cpp +++ b/src/PowerMeterSerialSml.cpp @@ -39,5 +39,4 @@ void PowerMeterSerialSml::loop() processSmlByte(_upSmlSerial->read()); } - MessageOutput.printf("[PowerMeterSerialSml]: TotalPower: %5.2f\r\n", getPowerTotal()); } diff --git a/src/PowerMeterSml.cpp b/src/PowerMeterSml.cpp index 9f46fda2..105d20f9 100644 --- a/src/PowerMeterSml.cpp +++ b/src/PowerMeterSml.cpp @@ -37,11 +37,19 @@ void PowerMeterSml::processSmlByte(uint8_t byte) handler.decoder(*handler.target); if (_verboseLogging) { - MessageOutput.printf("[PowerMeterSml] decoded %s to %.2f\r\n", - handler.name, *handler.target); + MessageOutput.printf("[%s] decoded %s to %.2f\r\n", + _user.c_str(), handler.name, *handler.target); } } break; + case SML_FINAL: + MessageOutput.printf("[%s] TotalPower: %5.2f\r\n", + _user.c_str(), getPowerTotal()); + break; + case SML_CHECKSUM_ERROR: + MessageOutput.printf("[%s] checksum verification failed\r\n", + _user.c_str()); + break; default: break; }