OpenWeatherMap to NGSI

This custom node is a simple node that allows to transform current weather and forecast data of OpenWeatherMap to an NGSIv2 entity.

Properties

  • name: a name for a node instance

Example

input

A msg.data should contain current weather data or forecast data of OpenWeatherMap.

{
  "coord": {
    "lon": 139.6917,
    "lat": 35.6895
  },
  "weather": [
    {
      "id": 803,
      "main": "Clouds",
      "description": "broken clouds",
      "icon": "04n"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 278.23,
    "feels_like": 275.04,
    "temp_min": 275.4,
    "temp_max": 280.12,
    "pressure": 1022,
    "humidity": 55
  },
  "visibility": 10000,
  "wind": {
    "speed": 4.12,
    "deg": 320
  },
  "clouds": {
    "all": 75
  },
  "dt": 1677100198,
  "sys": {
    "type": 2,
    "id": 2001249,
    "country": "JP",
    "sunrise": 1677100803,
    "sunset": 1677140982
  },
  "timezone": 32400,
  "id": 1850144,
  "name": "Tokyo",
  "cod": 200
}

Output

A msg.payload contains a NGSIv2 entity.

{
  "coord": {
    "type": "StructuredValue",
    "value": {
      "lon": 139.6917,
      "lat": 35.6895
    }
  },
  "weather": {
    "type": "StructuredValue",
    "value": [
      {
        "id": 803,
        "main": "Clouds",
        "description": "broken clouds",
        "icon": "04n"
      }
    ]
  },
  "base": {
    "type": "Text",
    "value": "stations"
  },
  "main": {
    "type": "StructuredValue",
    "value": {
      "temp": 278.23,
      "feels_like": 275.04,
      "temp_min": 275.4,
      "temp_max": 280.12,
      "pressure": 1022,
      "humidity": 55
    }
  },
  "visibility": {
    "type": "Number",
    "value": 10000
  },
  "wind": {
    "type": "StructuredValue",
    "value": {
      "speed": 4.12,
      "deg": 320
    }
  },
  "clouds": {
    "type": "StructuredValue",
    "value": {
      "all": 75
    }
  },
  "dt": {
    "type": "Number",
    "value": 1677100198
  },
  "sys": {
    "type": "StructuredValue",
    "value": {
      "type": 2,
      "id": 2001249,
      "country": "JP",
      "sunrise": 1677100803,
      "sunset": 1677140982
    }
  },
  "timezone": {
    "type": "Number",
    "value": 32400
  },
  "id": "urn:ngsi-ld:OpenWeatherMapWeather:1850144",
  "name": {
    "type": "Text",
    "value": "Tokyo"
  },
  "cod": {
    "type": "Number",
    "value": 200
  },
  "location": {
    "type": "geo:json",
    "value": {
      "type": "Point",
      "coordinates": [
        139.6917,
        35.6895
      ]
    }
  },
  "type": "OpenWeatherMapWeather"
}

Flow