Change DlmsParser::data_to_string_ and obis_to_string_ signatures to return void and write into the provided caller buffer instead of returning std::string (avoids allocations and clarifies ownership).
Also add #include "esphome/core/application.h" in dlms_push.cpp for required declarations.