feat(pico-sensor): topic_send_measurement can be configured via serial commands and is saved in flash
This commit is contained in:
@@ -35,6 +35,7 @@
|
|||||||
#define NVMC_MININI_KEY_MQTT_PASS "pass" /* string, password */
|
#define NVMC_MININI_KEY_MQTT_PASS "pass" /* string, password */
|
||||||
#define NVMC_MININI_KEY_MQTT_PUBLISH "publish" /* bool, if publishing */
|
#define NVMC_MININI_KEY_MQTT_PUBLISH "publish" /* bool, if publishing */
|
||||||
#define NVMC_TOPIC_NAME_SENSORS_UPDATE "topic_sensor_update" /*<user>/<room>/<device>/update*/
|
#define NVMC_TOPIC_NAME_SENSORS_UPDATE "topic_sensor_update" /*<user>/<room>/<device>/update*/
|
||||||
|
#define NVMC_TOPIC_NAME_SEND_MEASUREMENT "topic_send_measurement" /*<user>/<room>/<device>/cmd/measure*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PL_CONFIG_USE_NTP_CLIENT
|
#if PL_CONFIG_USE_NTP_CLIENT
|
||||||
|
|||||||
@@ -45,7 +45,8 @@
|
|||||||
#define MQTT_DEFAULT_USER "user"
|
#define MQTT_DEFAULT_USER "user"
|
||||||
#define MQTT_DEFAULT_PASS "password"
|
#define MQTT_DEFAULT_PASS "password"
|
||||||
#define MQTT_DEFAULT_PUBLISH true
|
#define MQTT_DEFAULT_PUBLISH true
|
||||||
#define DEFAULT_TOPIC_NAME_SENSORS_UPDATE "user/room/device/update" /*<user>/<room>/<device>/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 {
|
typedef struct mqtt_t {
|
||||||
mqtt_client_t *mqtt_client; /* lwIP MQTT client handle */
|
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_user[32]; /* client user name used for connection */
|
||||||
unsigned char client_pass[96]; /* client user password */
|
unsigned char client_pass[96]; /* client user password */
|
||||||
unsigned char sensors_update_topic[64]; /* topic name for sensor updates */
|
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 */
|
topic_ID_e in_pub_ID; /* incoming published ID, set in the incoming_publish_cb and used in the incoming_data_cb */
|
||||||
/* configuration settings */
|
/* configuration settings */
|
||||||
bool doLogging; /* if it shall write log messages */
|
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
|
#elif MQTT_CLIENT_IS_SENSOR
|
||||||
err = mqtt_sub_unsub(client,
|
err = mqtt_sub_unsub(client,
|
||||||
"<user>/<room>/<device>/command/new_measure",
|
mqtt.send_measurement_topic, /* topic: send measurement command */
|
||||||
1, /* quality of service */
|
1, /* quality of service */
|
||||||
mqtt_request_cb, // Callback to call when subscribe/unsubscribe response is received
|
mqtt_request_cb, // Callback to call when subscribe/unsubscribe response is received
|
||||||
LWIP_CONST_CAST(void*, client_info),
|
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_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_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_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);
|
mqtt.doPublishing = McuMinINI_ini_getbool(NVMC_MININI_SECTION_MQTT, NVMC_MININI_KEY_MQTT_PASS, MQTT_DEFAULT_PUBLISH, NVMC_MININI_FILE_NAME);
|
||||||
#else
|
#else
|
||||||
McuUtility_strcpy(mqtt.broker, sizeof(mqtt.broker), MQTT_DEFAULT_BROKER);
|
McuUtility_strcpy(mqtt.broker, sizeof(mqtt.broker), MQTT_DEFAULT_BROKER);
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ typedef enum topic_ID_e {
|
|||||||
Topic_ID_Charging_Power, /* actual charging power */
|
Topic_ID_Charging_Power, /* actual charging power */
|
||||||
#elif MQTT_CLIENT_IS_SENSOR
|
#elif MQTT_CLIENT_IS_SENSOR
|
||||||
Topic_ID_Sensor_Update,
|
Topic_ID_Sensor_Update,
|
||||||
|
Topic_ID_Send_Measurement
|
||||||
#endif
|
#endif
|
||||||
} topic_ID_e;
|
} topic_ID_e;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user