mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-25 20:26:41 +00:00
Change dispatch_send_obj_attribute_str format
This commit is contained in:
parent
8907479b3c
commit
71c14c96c8
@ -245,9 +245,13 @@ void dispatch_output_idle_state(uint8_t state)
|
|||||||
|
|
||||||
void IRAM_ATTR dispatch_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const char * attribute, const char * data)
|
void IRAM_ATTR dispatch_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const char * attribute, const char * data)
|
||||||
{
|
{
|
||||||
char payload[44 + strlen(data) + strlen(attribute)];
|
char topic[12];
|
||||||
snprintf_P(payload, sizeof(payload), PSTR("{\"page\":%u,\"id\":%u,\"%s\":\"%s\"}"), pageid, btnid, attribute, data);
|
char payload[32 + strlen(data) + strlen(attribute)];
|
||||||
dispatch_state_msg(F("json"), payload);
|
// snprintf_P(payload, sizeof(payload), PSTR("{\"page\":%u,\"id\":%u,\"%s\":\"%s\"}"), pageid, btnid, attribute,
|
||||||
|
// data); dispatch_state_msg(F("json"), payload);
|
||||||
|
snprintf_P(topic, sizeof(payload), PSTR("p%ub%u"), pageid, btnid);
|
||||||
|
snprintf_P(payload, sizeof(payload), PSTR("{\"%s\":\"%s\"}"), attribute, data);
|
||||||
|
mqtt_send_state_str(topic, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HASP_USE_CONFIG > 0
|
#if HASP_USE_CONFIG > 0
|
||||||
|
@ -129,26 +129,20 @@ bool IRAM_ATTR mqttIsConnected()
|
|||||||
return mqttEnabled && mqttClient.connected();
|
return mqttEnabled && mqttClient.connected();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRAM_ATTR mqtt_send_state(const __FlashStringHelper * subtopic, const char * payload)
|
void IRAM_ATTR mqtt_send_state_str(char * subtopic, char * payload)
|
||||||
{
|
{
|
||||||
// page = 0
|
|
||||||
// p[0].b[0].attr = abc
|
|
||||||
// dim = 100
|
|
||||||
// idle = 0/1
|
|
||||||
// light = 0/1
|
|
||||||
// brightness = 100
|
|
||||||
|
|
||||||
// if(mqttIsConnected()) {
|
|
||||||
char tmp_topic[strlen(mqttNodeTopic) + 20];
|
char tmp_topic[strlen(mqttNodeTopic) + 20];
|
||||||
snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/%s"), mqttNodeTopic, subtopic);
|
snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/%s"), mqttNodeTopic, subtopic);
|
||||||
bool res = mqttPublish(tmp_topic, payload);
|
bool res = mqttPublish(tmp_topic, payload);
|
||||||
mqttResult(res, tmp_topic, payload);
|
mqttResult(res, tmp_topic, payload);
|
||||||
// } else {
|
}
|
||||||
// return mqtt_log_no_connection();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Log after char buffers are cleared
|
void IRAM_ATTR mqtt_send_state(const __FlashStringHelper * subtopic, const char * payload)
|
||||||
// Log.notice(TAG_MQTT_PUB, F("%sstate/%S = %s"), mqttNodeTopic, subtopic, payload);
|
{
|
||||||
|
char tmp_topic[strlen(mqttNodeTopic) + 20];
|
||||||
|
snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/%s"), mqttNodeTopic, subtopic);
|
||||||
|
bool res = mqttPublish(tmp_topic, payload);
|
||||||
|
mqttResult(res, tmp_topic, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRAM_ATTR mqtt_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const char * attribute, const char * data)
|
void IRAM_ATTR mqtt_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const char * attribute, const char * data)
|
||||||
@ -157,9 +151,11 @@ void IRAM_ATTR mqtt_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const
|
|||||||
char tmp_topic[strlen(mqttNodeTopic) + 12];
|
char tmp_topic[strlen(mqttNodeTopic) + 12];
|
||||||
char payload[25 + strlen(data) + strlen(attribute)];
|
char payload[25 + strlen(data) + strlen(attribute)];
|
||||||
|
|
||||||
snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/json"), mqttNodeTopic);
|
// snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/json"), mqttNodeTopic);
|
||||||
unsigned int len =
|
// unsigned int len =
|
||||||
snprintf_P(payload, sizeof(payload), PSTR("{\"p[%u].b[%u].%s\":\"%s\"}"), pageid, btnid, attribute, data);
|
// snprintf_P(payload, sizeof(payload), PSTR("{\"p[%u].b[%u].%s\":\"%s\"}"), pageid, btnid, attribute, data);
|
||||||
|
snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/p%ub%u"), mqttNodeTopic, pageid, btnid);
|
||||||
|
unsigned int len = snprintf_P(payload, sizeof(payload), PSTR("{\"%s\":\"%s\"}"), attribute, data);
|
||||||
|
|
||||||
bool res = mqttPublish(tmp_topic, payload, len); //, false);
|
bool res = mqttPublish(tmp_topic, payload, len); //, false);
|
||||||
mqttResult(res, tmp_topic, payload);
|
mqttResult(res, tmp_topic, payload);
|
||||||
@ -175,15 +171,13 @@ void IRAM_ATTR mqtt_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const
|
|||||||
}
|
}
|
||||||
|
|
||||||
void mqtt_ha_send_config()
|
void mqtt_ha_send_config()
|
||||||
{
|
{}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Receive incoming messages
|
// Receive incoming messages
|
||||||
static void mqtt_message_cb(char * topic, byte * payload, unsigned int length)
|
static void mqtt_message_cb(char * topic, byte * payload, unsigned int length)
|
||||||
{ // Handle incoming commands from MQTT
|
{ // Handle incoming commands from MQTT
|
||||||
if(length+1 >= mqttClient.getBufferSize()) {
|
if(length + 1 >= mqttClient.getBufferSize()) {
|
||||||
Log.error(TAG_MQTT_RCV, F("Payload too long (%d bytes)"), length);
|
Log.error(TAG_MQTT_RCV, F("Payload too long (%d bytes)"), length);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
@ -12,6 +12,7 @@ void mqttEvery5Seconds(bool wifiIsConnected);
|
|||||||
void mqttStart();
|
void mqttStart();
|
||||||
void mqttStop();
|
void mqttStop();
|
||||||
|
|
||||||
|
void IRAM_ATTR mqtt_send_state_str(char * subtopic, char * payload);
|
||||||
void IRAM_ATTR mqtt_send_state(const __FlashStringHelper * subtopic, const char * payload);
|
void IRAM_ATTR mqtt_send_state(const __FlashStringHelper * subtopic, const char * payload);
|
||||||
void IRAM_ATTR mqtt_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const char * attribute, const char * data);
|
void IRAM_ATTR mqtt_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, const char * attribute, const char * data);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user