void ConnectMQTT() { static const char *password = MQTT_PASSWORD; static const char *user = MQTT_USER; while (!mqtt_client.connect("brewhouse", user, password)) { Serial.print("."); delay(1000); } char topic[30]; strcpy(topic,TOPIC_ROOT); strcat(topic,BOIL_SETPOINT_TOPIC); mqtt_client.subscribe(topic); } void MessageReceived(char* topic, byte* payload, unsigned int length) { char buf[30]; strcpy(buf,TOPIC_ROOT); strcat(buf,BOIL_SETPOINT_TOPIC); char msg[length+1]; for (int i=0;ivalueint; } } static void SendSensorData() { char *string = NULL; cJSON *entity = NULL; cJSON *setpoint = NULL; cJSON *units = NULL; cJSON *monitor = cJSON_CreateObject(); cJSON_AddStringToObject(monitor, "entity", "boil_kettle"); cJSON_AddNumberToObject(monitor, "setpoint", KettleDuty); cJSON_AddStringToObject(monitor, "units", "%"); char *msg = cJSON_Print(monitor); char topic[30]; strcpy(topic,TOPIC_ROOT); strcat(topic,BOIL_ACTUAL_TOPIC); mqtt_client.publish(topic, msg); }