diff --git a/pico-sensor/src/MinIniKeys.h b/pico-sensor/src/MinIniKeys.h index 7f1ae88..27d5824 100644 --- a/pico-sensor/src/MinIniKeys.h +++ b/pico-sensor/src/MinIniKeys.h @@ -35,6 +35,7 @@ #define NVMC_MININI_KEY_MQTT_PASS "pass" /* string, password */ #define NVMC_MININI_KEY_MQTT_PUBLISH "publish" /* bool, if publishing */ #define NVMC_TOPIC_NAME_SENSORS_UPDATE "topic_sensor_update" /*///update*/ + #define NVMC_TOPIC_NAME_SEND_MEASUREMENT "topic_send_measurement" /*///cmd/measure*/ #endif #if PL_CONFIG_USE_NTP_CLIENT diff --git a/pico-sensor/src/mqtt_client.c b/pico-sensor/src/mqtt_client.c index c9856e4..caab7ef 100644 --- a/pico-sensor/src/mqtt_client.c +++ b/pico-sensor/src/mqtt_client.c @@ -45,7 +45,8 @@ #define MQTT_DEFAULT_USER "user" #define MQTT_DEFAULT_PASS "password" #define MQTT_DEFAULT_PUBLISH true -#define DEFAULT_TOPIC_NAME_SENSORS_UPDATE "user/room/device/update" /*///update*/ +#define DEFAULT_TOPIC_NAME_SENSORS_UPDATE "user/room/device/update" +#define DEFAULT_TOPIC_NAME_SEND_MEASUREMENT "user/room/device/command/new_measurement" typedef struct mqtt_t { mqtt_client_t *mqtt_client; /* lwIP MQTT client handle */ @@ -55,6 +56,7 @@ typedef struct mqtt_t { unsigned char client_user[32]; /* client user name used for connection */ unsigned char client_pass[96]; /* client user password */ unsigned char sensors_update_topic[64]; /* topic name for sensor updates */ + unsigned char send_measurement_topic[64]; /* topic name for sending measurement */ topic_ID_e in_pub_ID; /* incoming published ID, set in the incoming_publish_cb and used in the incoming_data_cb */ /* configuration settings */ bool doLogging; /* if it shall write log messages */ @@ -375,7 +377,7 @@ static void mqtt_connection_cb(mqtt_client_t *client, void *arg, mqtt_connection } #elif MQTT_CLIENT_IS_SENSOR err = mqtt_sub_unsub(client, - "///command/new_measure", + mqtt.send_measurement_topic, /* topic: send measurement command */ 1, /* quality of service */ mqtt_request_cb, // Callback to call when subscribe/unsubscribe response is received LWIP_CONST_CAST(void*, client_info), @@ -407,6 +409,7 @@ uint8_t MqttClient_Connect(void) { McuMinINI_ini_gets(NVMC_MININI_SECTION_MQTT, NVMC_MININI_KEY_MQTT_USER, MQTT_DEFAULT_USER, mqtt.client_user, sizeof(mqtt.client_user), NVMC_MININI_FILE_NAME); McuMinINI_ini_gets(NVMC_MININI_SECTION_MQTT, NVMC_MININI_KEY_MQTT_PASS, MQTT_DEFAULT_PASS, mqtt.client_pass, sizeof(mqtt.client_pass), NVMC_MININI_FILE_NAME); McuMinINI_ini_gets(NVMC_MININI_SECTION_MQTT, NVMC_TOPIC_NAME_SENSORS_UPDATE, DEFAULT_TOPIC_NAME_SENSORS_UPDATE, mqtt.sensors_update_topic, sizeof(mqtt.sensors_update_topic), NVMC_MININI_FILE_NAME); + McuMinINI_ini_gets(NVMC_MININI_SECTION_MQTT, NVMC_TOPIC_NAME_SEND_MEASUREMENT, DEFAULT_TOPIC_NAME_SEND_MEASUREMENT, mqtt.send_measurement_topic, sizeof(mqtt.send_measurement_topic), NVMC_MININI_FILE_NAME); mqtt.doPublishing = McuMinINI_ini_getbool(NVMC_MININI_SECTION_MQTT, NVMC_MININI_KEY_MQTT_PASS, MQTT_DEFAULT_PUBLISH, NVMC_MININI_FILE_NAME); #else McuUtility_strcpy(mqtt.broker, sizeof(mqtt.broker), MQTT_DEFAULT_BROKER); diff --git a/pico-sensor/src/mqtt_client.h b/pico-sensor/src/mqtt_client.h index b1bf130..9386b3f 100644 --- a/pico-sensor/src/mqtt_client.h +++ b/pico-sensor/src/mqtt_client.h @@ -81,6 +81,7 @@ typedef enum topic_ID_e { Topic_ID_Charging_Power, /* actual charging power */ #elif MQTT_CLIENT_IS_SENSOR Topic_ID_Sensor_Update, + Topic_ID_Send_Measurement #endif } topic_ID_e;