To create a message handler custom function,

headerMap = header.toMap();deviceId = headerMap.get("deviceid");topic = headerMap.get("topic");communication_status_flag = headerMap.get("data_internal");if(topic == "telemetry" && communication_status_flag == false){payload = message.toMap();if(payload.containsKey("data")){deviceMessage = payload.get("data");}else{deviceMessage = payload;}roomTemp = deviceMessage.get("temperature");if(roomTemp != null){/* Call external Weather API */weatherResponse = invokeurl[type : GET];info weatherResponse;weatherMap = weatherResponse.toMap();outdoorTemp = weatherMap.get("current_weather").get("temperature");/* Calculate temperature difference */tempDifference = roomTemp - outdoorTemp;/* Append new value to payload */deviceMessage.put("outdoor_temperature", outdoorTemp);deviceMessage.put("temperature_difference", tempDifference);}}else{deviceMessage = Map();deviceMessage.put("header", headerMap);}return deviceMessage;
