23#ifndef DLMS_METER_SENSOR_LIST
24#define DLMS_METER_SENSOR_LIST(F, SEP)
27#ifndef DLMS_METER_TEXT_SENSOR_LIST
28#define DLMS_METER_TEXT_SENSOR_LIST(F, SEP)
65#define DLMS_METER_PUBLISH_SENSOR(s) \
66 if (this->s##_sensor_ != nullptr) \
67 s##_sensor_->publish_state(data.s);
70#define DLMS_METER_PUBLISH_TEXT_SENSOR(s) \
71 if (this->s##_text_sensor_ != nullptr) \
72 s##_text_sensor_->publish_state(data.s);
73 DLMS_METER_TEXT_SENSOR_LIST(DLMS_METER_PUBLISH_TEXT_SENSOR, )
77 DLMS_METER_TEXT_SENSOR_LIST(SUB_TEXT_SENSOR, )
80 bool parse_mbus_(std::vector<uint8_t> &mbus_payload);
81 bool parse_dlms_(const std::vector<uint8_t> &mbus_payload, uint16_t &message_length, uint8_t &systitle_length,
82 uint16_t &header_offset);
83 bool decrypt_(std::vector<uint8_t> &mbus_payload, uint16_t message_length, uint8_t systitle_length,
84 uint16_t header_offset);
85 void decode_obis_(uint8_t *plaintext, uint16_t message_length);
void set_provider(uint32_t provider)
bool parse_dlms_(const std::vector< uint8_t > &mbus_payload, uint16_t &message_length, uint8_t &systitle_length, uint16_t &header_offset)
bool decrypt_(std::vector< uint8_t > &mbus_payload, uint16_t message_length, uint8_t systitle_length, uint16_t header_offset)
void set_decryption_key(const std::array< uint8_t, 16 > &key)
std::vector< uint8_t > mbus_payload_
bool parse_mbus_(std::vector< uint8_t > &mbus_payload)
void dump_config() override
void decode_obis_(uint8_t *plaintext, uint16_t message_length)
DlmsMeterComponent()=default
void publish_sensors(MeterData &data)
std::vector< uint8_t > receive_buffer_
std::array< uint8_t, 16 > decryption_key_
DLMS_METER_SENSOR_LIST(SUB_SENSOR,) DLMS_METER_TEXT_SENSOR_LIST(SUB_TEXT_SENSOR
float reactive_energy_plus
float active_energy_minus
float reactive_energy_minus