Issue
I/A Series G3 version 3.8 and N4 version 4.2 Weather Service not following redirects
Product Line
TAC IA Series
Environment
- I/A Series G3 3.8.x
- I/A Series N4 version 4.2 or older
Cause
The National Weather Service (NWS) started recently redirecting from an HTTPS to an HTTP connection. Current conditions are not updated in Weather Service. The following messages appear in station output:
TRACE [15:05:30 27-Feb-18 EST][weather] Redirect
to https://www.weather.gov/xml/current_obs/KBIV.xml WARNING [15:05:30 27-Feb-18 EST]
[weather] Updating current conditions failed for WeatherReport javax.baja.sys.BajaException:
Unable to get NWS Current Conditions feed at
com.tridium.weather.nws.NwsCurrentReader.getFeed(NwsCurrentReader.java:71) at
com.tridium.weather.nws.NwsCurrentReader.getFeed(NwsCurrentReader.java:59) at
com.tridium.weather.nws.NwsCurrentReader.getCurrent(NwsCurrentReader.java:84) at
com.tridium.weather.nws.BNwsWeatherProvider.updateReport(BNwsWeatherProvider.java:630) at
javax.baja.weather.BWeatherReport.doUpdateWeatherReport(BWeatherReport.java:275) at
auto.javax_baja_weather_BWeatherReport.invoke(AutoGenerated)
com.tridium.sys.schema.ComponentSlotMap.invoke(ComponentSlotMap.java:1602) at
com.tridium.sys.engine.EngineUtil.doInvoke(EngineUtil.java:49) at
javax.baja.sys.BComponent.doInvoke(BComponent.java:1135) at
javax.baja.util.Invocation.run(Invocation.java:46) at
javax.baja.util.Worker.process(Worker.java:166) at
javax.baja.util.Worker$Processor.run(Worker.java:139) at
java.lang.Thread.run(Thread.java:748) Caused by: java.io.IOException:
Redirect URL same as requested URL: www.weather.gov/xml/current_obs/KBIV.xml at
com.tridium.weather.nws.FeedReader.getFeed(FeedReader.java:60) at
com.tridium.weather.nws.NwsCurrentReader.getFeed(NwsCurrentReader.java:67) ... 12 more
java.io.IOException: Redirect URL same as requested URL: www.weather.gov/xml/current_obs/KBIV.xml at
com.tridium.weather.nws.FeedReader.getFeed(FeedReader.java:60) at
com.tridium.weather.nws.NwsCurrentReader.getFeed(NwsCurrentReader.java:67) at
com.tridium.weather.nws.NwsCurrentReader.getFeed(NwsCurrentReader.java:59) at
com.tridium.weather.nws.NwsCurrentReader.getCurrent(NwsCurrentReader.java:84) at
com.tridium.weather.nws.BNwsWeatherProvider.updateReport(BNwsWeatherProvider.java:630) at
javax.baja.weather.BWeatherReport.doUpdateWeatherReport(BWeatherReport.java:275) at
auto.javax_baja_weather_BWeatherReport.invoke(AutoGenerated) at
com.tridium.sys.schema.ComponentSlotMap.invoke(ComponentSlotMap.java:1602) at
com.tridium.sys.engine.EngineUtil.doInvoke(EngineUtil.java:49) at
javax.baja.sys.BComponent.doInvoke(BComponent.java:1135) at
javax.baja.util.Invocation.run(Invocation.java:46) at
javax.baja.util.Worker.process(Worker.java:166) at
javax.baja.util.Worker$Processor.run(Worker.java:139) at
java.lang.Thread.run(Thread.java:748)
Note: The issue does not occur in I/A Series N4 version 4.3 or higher.
Resolution
- For I/A Series G3 version 3.8 and newer, patched weather.jar modules resolve this issue. The weather module patches are available for download from the Schneider Electric Exchange as:
weather 3.8.311.1 - G3 Firmware
weather 3.8.213.3 - G3 Firmware
weather 3.8.112.1 - G3 Firmware
weather 3.8.41.3 - G3 Firmware
To resolve the issue in Niagara 4.2 and/or versions of G3 not covered by the patches,
- Clear the hidden flag on the conditionsServer slot of the weather provider and change the value to w1.weather.gov.
- After making this change, the current conditions will update. The conditionsServer slot for each weather report will need to be modified if more than one is being used.
The following is a screenshot of the provider slot sheet. The Conditions Server slot is highlighted. Select Config Flags.
Config Flags dialog. Uncheck the Hidden flag and save.
View the Property Sheet for the provider and modify the Conditions Server to be w1.weather.gov