migrate from PubSubClientTools
This commit is contained in:
parent
d7b8af258a
commit
a6206cd881
|
@ -12,6 +12,7 @@
|
|||
platform = espressif32
|
||||
board = wt32-eth01
|
||||
framework = arduino
|
||||
board_build.f_cpu = 240000000L
|
||||
lib_deps = siwats/ESPMegaPROR3@^1.3.0
|
||||
knolleary/PubSubClient@^2.8
|
||||
ivanseidel/ArduinoThread@^2.1.1
|
||||
|
|
|
@ -159,6 +159,7 @@ void setup()
|
|||
lcd_send_command("boot_state.txt=\"IoT Core Initializing . . .\"");
|
||||
mqtt.setSocketTimeout(1000);
|
||||
eth.setTimeout(1);
|
||||
mqtt.setCallback(&mqtt_callback);
|
||||
mqtt_connect();
|
||||
lcd_send_command("boot_state.txt=\"Threads Initializing . . .\"");
|
||||
thread_initialization();
|
||||
|
@ -518,18 +519,29 @@ void mqtt_subscribe()
|
|||
mqtt.subscribe(STATE_REQUEST_TOPIC);
|
||||
}
|
||||
|
||||
void mqtt_callback(char* topic, char* payload, unsigned int length) {
|
||||
void mqtt_callback(char *topic, byte *payload, unsigned int length)
|
||||
{
|
||||
uint8_t topic_length = strlen(topic);
|
||||
char topic_trim[50];
|
||||
strncpy(topic_trim, topic+topic_length, topic_length);
|
||||
// PWM Callback
|
||||
if((!strncmp(topic_trim,"/pwm/",5)) && !strncmp(topic_trim+7,"/set/state",10)) {
|
||||
pwm_state_callback(topic_trim, topic_length,payload,length);
|
||||
char payload_nt[length + 1];
|
||||
memcpy(payload_nt, payload, length);
|
||||
payload_nt[length] = NULL;
|
||||
strncpy(topic_trim, topic + base_topic_length - 1, topic_length);
|
||||
if ((!strncmp(topic_trim, "/pwm/", 5)) && !strncmp(topic_trim + 7, "/set/state", 10))
|
||||
{
|
||||
pwm_state_callback(topic_trim, topic_length, payload_nt, length);
|
||||
}
|
||||
else if((!strncmp(topic_trim,"/pwm/",5)) && !strncmp(topic_trim+7,"/set/value",10)) {
|
||||
pwm_value_callback(topic_trim, topic_length,payload,length);
|
||||
else if ((!strncmp(topic_trim, "/pwm/", 5)) && !strncmp(topic_trim + 7, "/set/value", 10))
|
||||
{
|
||||
pwm_value_callback(topic_trim, topic_length, payload_nt, length);
|
||||
} else if(!strcmp(topic,STATE_REQUEST_TOPIC)) {
|
||||
state_request_callback();
|
||||
}
|
||||
user_mqtt_callback(topic_trim,topic_length, payload, length);
|
||||
else
|
||||
{
|
||||
ac_state_callback(topic, topic_length, payload_nt, length);
|
||||
}
|
||||
user_mqtt_callback(topic_trim, topic_length, payload_nt, length);
|
||||
}
|
||||
|
||||
void thread_initialization()
|
||||
|
@ -548,22 +560,22 @@ void thread_initialization()
|
|||
user_timer_tick.setInterval(15000);
|
||||
}
|
||||
|
||||
void pwm_state_callback(char* topic, uint8_t topic_length, char* payload, unsigned int payload_length)
|
||||
void pwm_state_callback(char *topic, uint8_t topic_length, char *payload, unsigned int payload_length)
|
||||
{
|
||||
int a = topic[5] - '0';
|
||||
int b = topic[6] - '0';
|
||||
int id = 10 * a + b;
|
||||
if (!strcmp(payload,"on"))
|
||||
if (!strcmp(payload, "on"))
|
||||
{
|
||||
pwm_set_state(id, true);
|
||||
}
|
||||
else if (!strcmp(payload,"off"))
|
||||
else if (!strcmp(payload, "off"))
|
||||
{
|
||||
pwm_set_state(id, false);
|
||||
}
|
||||
}
|
||||
|
||||
void pwm_value_callback(char* topic, uint8_t topic_length, char* payload, unsigned int payload_length)
|
||||
void pwm_value_callback(char *topic, uint8_t topic_length, char *payload, unsigned int payload_length)
|
||||
{
|
||||
int a = topic[5] - '0';
|
||||
int b = topic[6] - '0';
|
||||
|
@ -629,7 +641,7 @@ void publish_pwm_state(int id)
|
|||
mqtt.publish(PWM_STATE_TOPIC, "off");
|
||||
}
|
||||
char temp[6];
|
||||
itoa(value,temp,6);
|
||||
itoa(value, temp, DEC);
|
||||
mqtt.publish(PWM_VALUE_TOPIC, temp);
|
||||
}
|
||||
|
||||
|
@ -740,7 +752,7 @@ void publish_input_state(int id, int state)
|
|||
mqtt.publish(INPUTS_TOPIC, state ? "1" : "0");
|
||||
}
|
||||
|
||||
void state_request_callback(String topic, String message)
|
||||
void state_request_callback()
|
||||
{
|
||||
publish_input_states();
|
||||
publish_pwm_states();
|
||||
|
@ -777,7 +789,7 @@ void publish_ac_state()
|
|||
break;
|
||||
}
|
||||
char temp[5];
|
||||
itoa(ac_temperature,temp,DEC);
|
||||
itoa(ac_temperature, temp, DEC);
|
||||
mqtt.publish(AC_TEMPERATURE_TOPIC, temp);
|
||||
switch (ac_fan_speed)
|
||||
{
|
||||
|
@ -794,49 +806,48 @@ void publish_ac_state()
|
|||
mqtt.publish(AC_FAN_TOPIC, "low");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ac_state_callback(String topic, String message)
|
||||
void ac_state_callback(char *topic, uint8_t topic_length, char *payload, unsigned int payload_length)
|
||||
{
|
||||
if (topic.compareTo(String(AC_SET_TEMPERATURE_TOPIC)) == 0)
|
||||
if (!strcmp(topic, AC_SET_TEMPERATURE_TOPIC))
|
||||
{
|
||||
int new_temp = message.toInt();
|
||||
int new_temp = atoi(payload);
|
||||
if (new_temp >= AC_MIN_TEMPERATURE && new_temp <= AC_MAX_TEMPERATURE)
|
||||
{
|
||||
ac_set_state(ac_mode, new_temp, ac_fan_speed);
|
||||
}
|
||||
}
|
||||
else if (topic.compareTo(String(AC_SET_MODE_TOPIC)) == 0)
|
||||
else if (!strcmp(topic, AC_SET_MODE_TOPIC))
|
||||
{
|
||||
if (message.compareTo("off") == 0)
|
||||
if (!strcmp(payload, "off"))
|
||||
{
|
||||
ac_set_state(0, ac_temperature, ac_fan_speed);
|
||||
}
|
||||
else if (message.compareTo("cool") == 0)
|
||||
else if (!strcmp(payload, "cool"))
|
||||
{
|
||||
ac_set_state(1, ac_temperature, ac_fan_speed);
|
||||
}
|
||||
else if (message.compareTo("fan_only") == 0)
|
||||
else if (!strcmp(payload, "fan_only"))
|
||||
{
|
||||
ac_set_state(2, ac_temperature, ac_fan_speed);
|
||||
}
|
||||
}
|
||||
else if (topic.compareTo(String(AC_SET_FAN_TOPIC)) == 0)
|
||||
else if (!strcmp(topic, AC_SET_FAN_TOPIC))
|
||||
{
|
||||
if (message.compareTo("auto") == 0)
|
||||
if (!strcmp(payload, "auto"))
|
||||
{
|
||||
ac_set_state(ac_mode, ac_temperature, 0);
|
||||
}
|
||||
else if (message.compareTo("low") == 0)
|
||||
else if (!strcmp(payload, "low"))
|
||||
{
|
||||
ac_set_state(ac_mode, ac_temperature, 1);
|
||||
}
|
||||
else if (message.compareTo("med") == 0)
|
||||
else if (!strcmp(payload, "med"))
|
||||
{
|
||||
ac_set_state(ac_mode, ac_temperature, 2);
|
||||
}
|
||||
else if (message.compareTo("high") == 0)
|
||||
else if (!strcmp(payload, "high"))
|
||||
{
|
||||
ac_set_state(ac_mode, ac_temperature, 3);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ void mqtt_subscribe();
|
|||
void thread_initialization();
|
||||
void pwm_state_callback(char* topic, uint8_t topic_length, char* payload, unsigned int payload_length);
|
||||
void pwm_value_callback(char* topic, uint8_t topic_length, char* payload, unsigned int payload_length);
|
||||
void state_request_callback(String topic, String message);
|
||||
void state_request_callback();
|
||||
void io_begin();
|
||||
void ir_loop();
|
||||
|
||||
|
@ -66,7 +66,7 @@ void publish_env_state();
|
|||
uint8_t ac_get_temperature();
|
||||
uint8_t ac_get_mode();
|
||||
uint8_t ac_get_fan_speed();
|
||||
void ac_state_callback(String topic, String message);
|
||||
void ac_state_callback(char* topic, uint8_t topic_length, char* payload, unsigned int payload_length);
|
||||
void ac_set_state(int mode, int temperature, int fan_speed);
|
||||
|
||||
void publish_input_states();
|
||||
|
|
Loading…
Reference in New Issue