MQTT-Weather-display/Weatherdisplay_Nokia_5110/mqtt_callback.ino

46 lines
1014 B
C++

void callback(String topic, byte* message, unsigned int length)
{
String messageTemp;
for (int i = 0; i < length; i++)
messageTemp += (char)message[i];
if (topic == "wetter_display/set")
{
JsonObject& json = jsonBuffer.parseObject(messageTemp);
if (!json.success()) {
error = 2;
return;
}
temp_2m = json["Temp_2m"].as<String>();
temp_0m = json["Temp_0m"].as<String>();
pressure = json["Pressure"].as<String>();
humidity = json["Humidity"].as<String>();
dewpoint = json["Dewpoint"].as<String>();
luminosity = json["Luminosity"].as<String>();
wind = json["Wind_kmh"].as<String>();
windr = json["Wind_r"].as<String>();
error = 1;
jsonBuffer.clear();
}
}
void reconnect()
{
while (!client.connected())
{
if (client.connect("WetterDisplay", mqtt_user, mqtt_pass))
{
client.subscribe("wetter_display/set");
updatedisplay();
}
else
{
display_error("MQTT Error");
delay(5000);
}
}
}