Connect to Enedis smart meter (Linky) and send data to MQTT
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

39 lines
1008 B

#include "libteleinfo.h"
#include "libteleinfo/src/LibTeleinfo.h"
static TInfo tinfo;
static libteleinfo_data_callback data_cb;
static libteleinfo_adps_callback adps_cb;
void _libteleinfo_data_callback(ValueList * valueslist, uint8_t flags) {
data_cb(valueslist->ts, flags, valueslist->name, valueslist->value);
}
void _libteleinfo_adps_callback(uint8_t phase) {
adps_cb(phase);
}
EXTERNC void libteleinfo_init(libteleinfo_data_callback dcb, libteleinfo_adps_callback acb) {
data_cb = dcb;
adps_cb = acb;
_Mode_e ltmode = TINFO_MODE_HISTORIQUE;
if (CONFIG_TIC_MODE) {
ltmode = TINFO_MODE_STANDARD;
}
// Initialize the LibTeleinfo
tinfo.init(ltmode);
if (dcb != NULL) {
tinfo.attachData(_libteleinfo_data_callback);
}
if (acb != NULL) {
tinfo.attachADPS(_libteleinfo_adps_callback);
}
}
EXTERNC void libteleinfo_process(uint8_t* buffer, int len) {
for (int i = 0; i < len; i++) {
tinfo.process(buffer[i]);
}
}