15 #define QUEUE_SIZE 256 102 char current_unix_time_string[64];
118 memset(message, 0,
sizeof(message));
142 memset(message, 0,
sizeof(message));
159 memset(message, 0,
sizeof(message));
165 message[message_l - 2] = 0;
176 memset(message, 0,
sizeof(message));
182 message[message_l - 2] = 0;
192 os_printf(
"tried to call en61107_meter_is_ready_cb() before it was set - should not happen\n");
196 if (current_unix_time) {
198 memset(topic, 0,
sizeof(topic));
199 tfp_snprintf(current_unix_time_string, 64,
"%u", (uint32_t)current_unix_time);
202 memset(message, 0,
sizeof(message));
206 strcat(message, key_value);
218 strcat(message, key_value);
223 strcat(message, key_value);
227 strcat(message, key_value);
232 strcat(message, key_value);
237 strcat(message, key_value);
241 strcat(message, key_value);
245 strcat(message, key_value);
249 strcat(message, key_value);
253 strcat(message, key_value);
257 strcat(message, key_value);
259 memset(cleartext, 0,
sizeof(cleartext));
260 os_strncpy(cleartext, message,
sizeof(message));
272 MQTT_Publish(mqtt_client, topic, message, message_l, 2, 0);
290 memset(&response, 0,
sizeof(response));
304 mqtt_client = client;
355 #ifndef DEBUG_NO_METER 374 unsigned char topic[128];
384 message_l =
os_sprintf(message,
"heap=20000&t1=25.00 C&t2=15.00 C&tdif=10.00 K&flow1=0 l/h&effect1=0.0 kW&hr=0 h&v1=0.00 m3&e1=0 kWh&");
385 memset(cleartext, 0,
sizeof(cleartext));
386 os_strncpy(cleartext, message,
sizeof(message));
394 MQTT_Publish(mqtt_client, topic, message, message_l, 2, 0);
en61107_response_register_t effect1
unsigned int frame_length
bool meter_is_ready_cb_called
en61107_response_register_t hr
en61107_response_register_t e1
ICACHE_FLASH_ATTR uint32_t get_unix_time(void)
void ICACHE_FLASH_ATTR uart_set_parity(uint8_t uart_no, UartParityMode Parity_mode)
ICACHE_FLASH_ATTR unsigned char en61107_fifo_get(unsigned char *c)
void ICACHE_FLASH_ATTR uart0_tx_buffer(uint8 *buf, uint16 len)
char frame[EN61107_FRAME_L]
ICACHE_FLASH_ATTR bool parse_mc66cde_standard_data_1_frame(en61107_response_t *response, char *frame, unsigned int frame_length)
ICACHE_FLASH_ATTR void en61107_uart_send_inst_values()
uint32 system_get_free_heap_size(void)
en61107_response_t response
ICACHE_FLASH_ATTR void en61107_uart_send_standard_data_2()
ICACHE_FLASH_ATTR bool parse_mc66cde_inst_values_frame(en61107_response_t *response, char *frame, unsigned int frame_length)
bool en61107_etx_received
ICACHE_FLASH_ATTR void en61107_request_send()
en61107_response_register_t flow1
#define ICACHE_FLASH_ATTR
char value[EN61107_VALUE_L]
ICACHE_FLASH_ATTR void en61107_uart_send_en61107_ident()
ICACHE_FLASH_ATTR void en61107_meter_wake_up_timer_func(void *arg)
volatile unsigned int fifo_head
ICACHE_FLASH_ATTR void en61107_receive_timeout_timer_func(void *arg)
ICACHE_FLASH_ATTR void en61107_set_mqtt_client(MQTT_Client *client)
static os_timer_t en61107_receive_timeout_timer
ICACHE_FLASH_ATTR void en61107_request_init()
bool system_os_task(os_task_t task, uint8 prio, os_event_t *queue, uint8 qlen)
volatile unsigned char fifo_buffer[QUEUE_SIZE]
ICACHE_FLASH_ATTR unsigned char en61107_fifo_snoop(unsigned char *c, unsigned int pos)
static ICACHE_FLASH_ATTR void en61107_received_task(os_event_t *events)
ICACHE_FLASH_ATTR uint32_t en61107_get_received_serial()
static os_timer_t en61107_meter_wake_up_timer
en61107_response_register_t t3
en61107_response_register_t t1
en61107_response_register_t v1
os_event_t en61107_received_task_queue[en61107_received_task_queue_length]
en61107_response_register_t t2
void(* meter_is_ready_cb)(void)
ICACHE_FLASH_ATTR bool parse_mc66cde_standard_data_2_frame(en61107_response_t *response, char *frame, unsigned int frame_length)
ICACHE_FLASH_ATTR unsigned int en61107_fifo_in_use()
char unit[EN61107_UNIT_L]
en61107_response_register_t tdif
ICACHE_FLASH_ATTR size_t encrypt_aes_hmac_combined(uint8_t *dst, uint8_t *topic, size_t topic_l, uint8_t *message, size_t message_l)
unsigned char en61107_fifo_put(unsigned char c)
ICACHE_FLASH_ATTR void led_blink(void)
int8_t en61107_request_num
void ICACHE_FLASH_ATTR uart_set_stop_bits(uint8_t uart_no, UartStopBitsNum bit_num)
ICACHE_FLASH_ATTR unsigned int en61107_get_received_energy_kwh()
void ICACHE_FLASH_ATTR uart_set_word_length(uint8_t uart_no, UartBitsNum4Char len)
ICACHE_FLASH_ATTR int tfp_snprintf(char *str, size_t size, const char *format,...)
en61107_meter_program_t meter_program
static MQTT_Client * mqtt_client
ICACHE_FLASH_ATTR void en61107_register_meter_is_ready_cb(meter_is_ready_cb cb)
void ICACHE_FLASH_ATTR uart_set_baudrate(uint8 uart_no, uint32_t baud_rate)
UartStopBitsNum stop_bits
ICACHE_FLASH_ATTR bool parse_en61107_frame(en61107_response_t *response, char *frame, unsigned int frame_length)
bool en61107_is_eod_char(uint8_t c)
BOOL ICACHE_FLASH_ATTR MQTT_Publish(MQTT_Client *client, const char *topic, const char *data, int data_length, int qos, int retain)
MQTT publish function.
#define os_timer_arm(a, b, c)
ICACHE_FLASH_ATTR void mw_to_w_str(char *mw, char *w)
ICACHE_FLASH_ATTR void en61107_delayed_uart_change_setting_timer_func(UartDevice *uart_settings)
ICACHE_FLASH_ATTR void en61107_uart_send_standard_data_1()
volatile uint8_t en61107_eod
ICACHE_FLASH_ATTR void en61107_uart_send_en61107()
static os_timer_t en61107_delayed_uart_change_setting_timer
volatile unsigned int fifo_tail
#define en61107_received_task_queue_length
char customer_no[EN61107_CUSTOMER_NO_L]
volatile en61107_uart_state_t en61107_uart_state
meter_is_ready_cb en61107_meter_is_ready_cb
uint32_t current_unix_time
#define en61107_received_task_prio