[SOLVED] Australian Bureau of Meteorology Weather Forecast Binding

OK, notice a few problems with 3.0.3 version:

  • mixing up daily and precis sections.
  • Maximum Precipitation is showing up as a date (unix time beginning)

Old output:

Current output:

Any idea what’s happening @tomitan ?

Could you pass me your configuration? I can’t see any issue for my location.

Sure Thomas (@tomitan). Where does the binding save the downloaded xml files, or does it do all the parsing in memory ?


Bridge bom:weather:default "BOM" @ "Mackay" [ftpPath="ftp://ftp.bom.gov.au/anon/gen/fwo", observationProductId="IDQ60920", weatherStationId="94367", precisForecastProductId="IDQ11295", areaId="QLD_PT016", cityTownForecastProductId="IDQ10914", observationRefreshInterval=15, forecastRefreshInterval=30]


Group           wForecast       "Mackay Weather Forecast"       <vacation>      (Home)

String BOM_Day1_WeatherStation          "BOM Weather Station"                           <vacation>      (wForecast)     {channel="bom:weather:default:day1#weatherStation"}
DateTime BOM_Day1_ObservDateTime        "Observation Date and Time [%1$tA, %1$td-%1$tm-%1$tY %1$tI:%1$tM %1$Tp]"        <clock_on>      (wForecast) {channel="bom:weather:default:day1#observationDateTime"}
Number BOM_Day1_AirTemperature          "Air Temperature [%.1f°C]"                      <temperature>   (wForecast)     ["CurrentTemperature"]  {channel="bom:weather:default:day1#airTemperature"}
Number BOM_Day1_ApparentTemperature     "Apparent Temperature [%.1f°C]"                 <temperature>   (wForecast)     ["CurrentTemperature"]  {channel="bom:weather:default:day1#apparentTemperature"}
Number BOM_Day1_RelHumidPercent         "Relative Humidity (percentage) [%.0f%%]"       <humidity>      (wForecast)     ["CurrentHumidity"]     {channel="bom:weather:default:day1#relativeHumidity"}
Number BOM_Day1_AtmosPressureHPa        "Atmospheric Pressure [%.1fhPa]"                <pressure>      (wForecast)     {channel="bom:weather:default:day1#pressure"}
Number BOM_Day1_DewPoint                "Dew Point [%.1f°C]"                            <temperature>   (wForecast)     {channel="bom:weather:default:day1#dewPoint"}
String BOM_Day1_WindDirection           "Wind Direction"                                <wind>          (wForecast)     {channel="bom:weather:default:day1#windDirection"}
Number BOM_Day1_WindDirectionDeg        "Wind Direction [%.1f°]"                        <wind>          (wForecast)     {channel="bom:weather:default:day1#windDirectionDegrees"}
Number BOM_Day1_WindSpeedKnots          "Wind Speed [%.1fknots]"                        <wind>          (wForecast)     {channel="bom:weather:default:day1#windSpeedKnots"}
Number BOM_Day1_WindSpeedKmH            "Wind Speed (km/h) [%.0f]"                      <wind>          (wForecast)     {channel="bom:weather:default:day1#windSpeedKmh"}

DateTime BOM_Day1_ForecastDateTime      "Forecast Date [%1$tA, %1$td-%1$tm-%1$tY]"      <clock_on>      (wForecast)     {channel="bom:weather:default:day1#dateTime"}
String BOM_Day1_ForecastIcon            "Forecast [%s]"                                                 (wForecast)     {channel="bom:weather:default:day1#icon"}
String BOM_Day1_ForecastPrecis          "Forecast Precis [%s]"                          <info_blu_32>   (wForecast)     {channel="bom:weather:default:day1#precis"}
String BOM_Day1_ForecastDescription      "Forecast Description [%s]"                    <info_blu_32>   (wForecast)     {channel="bom:weather:default:day1#forecast"}
Number BOM_Day1_MinimumTemperature      "Minimum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day1#minTemperature"}
Number BOM_Day1_MaximumTemperature      "Maximum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day1#maxTemperature"}
String BOM_Day1_ProbOfPrecipitation     "Probably of Precipitation"                     <rain>          (wForecast)     {channel="bom:weather:default:day1#precipitation"}
Number BOM_Day1_CurrentRainfallMm       "Current Rainfall [%.1fmm]"                     <rain>          (wForecast)     {channel="bom:weather:default:day1#rainfall"}
Number BOM_Day1_Rainfall24HourMm        "24 Hour Rainfall [%.1fmm]"                     <rain>          (wForecast)     {channel="bom:weather:default:day1#rainfall24Hour"}
String BOM_Day1_MinimumPrecipitation    "Minimum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day1#minPrecipitation"}
String BOM_Day1_MaximumPrecipitation    "Maximum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day1#maxPrecipitation"}
String BOM_Day1_UVAlert                 "UV Alert"                                      <sun>           (wForecast)     {channel="bom:weather:default:day1#uvAlert"}

DateTime BOM_Day2_ForecastDateTime      "Forecast Date [%1$tA, %1$td-%1$tm-%1$tY]"      <clock_on>      (wForecast)     {channel="bom:weather:default:day2#dateTime"}
String BOM_Day2_ForecastIcon            "Forecast Icon [%s]"                                            (wForecast)     {channel="bom:weather:default:day2#icon"}
String BOM_Day2_ForecastPrecis          "Forecast Precis [%s]"                          <info_blu_32>   (wForecast)     {channel="bom:weather:default:day2#precis"}
String BOM_Day2_ForecastDescription     "Forecast Description [%s]"                     <info_blu_32>   (wForecast)     {channel="bom:weather:default:day2#forecast"}
Number BOM_Day2_MinimumTemperature      "Minimum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day2#minTemperature"}
Number BOM_Day2_MaximumTemperature      "Maximum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day2#maxTemperature"}
String BOM_Day2_ProbOfPrecipitation     "Probably of Precipitation"                     <rain>          (wForecast)     {channel="bom:weather:default:day2#precipitation"}
String BOM_Day2_MinimumPrecipitation    "Minimum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day2#minPrecipitation"}
String BOM_Day2_MaximumPrecipitation    "Maximum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day2#maxPrecipitation"}
String BOM_Day2_UVAlert                 "UV Alert"                                      <sun>           (wForecast)     {channel="bom:weather:default:day2#uvAlert"}

DateTime BOM_Day3_ForecastDateTime      "Forecast Date [%1$tA, %1$td-%1$tm-%1$tY]"      <clock_on>      (wForecast)     {channel="bom:weather:default:day3#dateTime"}
String BOM_Day3_ForecastIcon            "Forecast Icon [%s]"                                            (wForecast)     {channel="bom:weather:default:day3#icon"}
String BOM_Day3_ForecastPrecis          "Forecast Precis [%s]"                          <info_blu_32>   (wForecast)     {channel="bom:weather:default:day3#precis"}
String BOM_Day3_ForecastDescription     "Forecast Description [%s]"                     <info_blu_32>   (wForecast)     {channel="bom:weather:default:day3#forecast"}
Number BOM_Day3_MinimumTemperature      "Minimum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day3#minTemperature"}
Number BOM_Day3_MaximumTemperature      "Maximum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day3#maxTemperature"}
String BOM_Day3_ProbOfPrecipitation     "Probably of Precipitation"                     <rain>          (wForecast)     {channel="bom:weather:default:day3#precipitation"}
String BOM_Day3_MinimumPrecipitation    "Minimum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day3#minPrecipitation"}
String BOM_Day3_MaximumPrecipitation    "Maximum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day3#maxPrecipitation"}
String BOM_Day3_UVAlert                 "UV Alert"                                      <sun>           (wForecast)     {channel="bom:weather:default:day3#uvAlert"}

DateTime BOM_Day4_ForecastDateTime      "Forecast Date [%1$tA, %1$td-%1$tm-%1$tY]"      <clock_on>      (wForecast)     {channel="bom:weather:default:day4#dateTime"}
String BOM_Day4_ForecastIcon            "Forecast Icon [%s]"                                            (wForecast)     {channel="bom:weather:default:day4#icon"}
String BOM_Day4_ForecastPrecis          "Forecast Precis [%s]"                          <info_blu_32>   (wForecast)     {channel="bom:weather:default:day4#precis"}
String BOM_Day4_ForecastDescription     "Forecast Description [%s]"                     <info_blu_32>   (wForecast)     {channel="bom:weather:default:day4#forecast"}
Number BOM_Day4_MinimumTemperature      "Minimum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day4#minTemperature"}
Number BOM_Day4_MaximumTemperature      "Maximum Temperature [%.1f°C]"                  <temperature>   (wForecast)     ["Temperature"] {channel="bom:weather:default:day4#maxTemperature"}
String BOM_Day4_ProbOfPrecipitation     "Probably of Precipitation"                     <rain>          (wForecast)     {channel="bom:weather:default:day4#precipitation"}
String BOM_Day4_MinimumPrecipitation    "Minimum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day4#minPrecipitation"}
String BOM_Day4_MaximumPrecipitation    "Maximum Precipitation"                         <rain>          (wForecast)     {channel="bom:weather:default:day4#maxPrecipitation"}
String BOM_Day4_UVAlert                 "UV Alert"                                      <sun>           (wForecast)     {channel="bom:weather:default:day4#uvAlert"}

Sitemap: (commented entries are either not available or I’m not interested in them)

                Group item=wForecast {
                        Frame label="Currently" {
                                Text    item=BOM_Day1_WeatherStation
                                Text    item=BOM_Day1_ObservDateTime
                                Text    item=BOM_Day1_AirTemperature
                                Text    item=BOM_Day1_ApparentTemperature
                                Text    item=BOM_Day1_RelHumidPercent
                                Text    item=BOM_Day1_AtmosPressureHPa
                                Text    item=BOM_Day1_DewPoint
                                Text    item=BOM_Day1_WindDirection
                                Text    item=BOM_Day1_WindDirectionDeg
//                              Text    item=BOM_Day1_WindSpeedKnots
                                Text    item=BOM_Day1_WindSpeedKmH
                        Frame {
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_sunny_32" visibility=[BOM_Day1_ForecastIcon=="sunny"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_clear_32" visibility=[BOM_Day1_ForecastIcon=="clear"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_mostly_sunny_32" visibility=[BOM_Day1_ForecastIcon=="mostly-sunny"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_cloudy_32" visibility=[BOM_Day1_ForecastIcon=="cloudy"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_hazy_32" visibility=[BOM_Day1_ForecastIcon=="hazy"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_light_rain_32" visibility=[BOM_Day1_ForecastIcon=="light-rain"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_windy_32" visibility=[BOM_Day1_ForecastIcon=="windy"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_fog_32" visibility=[BOM_Day1_ForecastIcon=="fog"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_shower_32" visibility=[BOM_Day1_ForecastIcon=="shower"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_rain_32" visibility=[BOM_Day1_ForecastIcon=="rain"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_dusty_32" visibility=[BOM_Day1_ForecastIcon=="dusty"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_frost_32" visibility=[BOM_Day1_ForecastIcon=="frost"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_snow_32" visibility=[BOM_Day1_ForecastIcon=="snow"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_storm_32" visibility=[BOM_Day1_ForecastIcon=="storm"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_light_shower_32" visibility=[BOM_Day1_ForecastIcon=="light-shower"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_heavy_shower_32" visibility=[BOM_Day1_ForecastIcon=="heavy-shower"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_cyclone_32" visibility=[BOM_Day1_ForecastIcon=="cyclone"]
                                Text    item=BOM_Day1_ForecastDateTime icon="weather_na_32" visibility=[BOM_Day1_ForecastIcon==""]
//                              Text    item=BOM_Day1_ForecastIcon
                                Text    item=BOM_Day1_ForecastPrecis
//                              Text    item=BOM_Day1_ForecastDescription
//                              Text    item=BOM_Day1_MinimumTemperature
                                Text    item=BOM_Day1_MaximumTemperature
                                Text    item=BOM_Day1_ProbOfPrecipitation
                                Text    item=BOM_Day1_CurrentRainfallMm
                                Text    item=BOM_Day1_Rainfall24HourMm
//                              Text    item=BOM_Day1_MinimumPrecipitation
//                              Text    item=BOM_Day1_MaximumPrecipitation
//                              Text    item=BOM_Day1_UVAlert
                        Frame {
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_sunny_32" visibility=[BOM_Day2_ForecastIcon=="sunny"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_clear_32" visibility=[BOM_Day2_ForecastIcon=="clear"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_mostly_sunny_32" visibility=[BOM_Day2_ForecastIcon=="mostly-sunny"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_cloudy_32" visibility=[BOM_Day2_ForecastIcon=="cloudy"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_hazy_32" visibility=[BOM_Day2_ForecastIcon=="hazy"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_light_rain_32" visibility=[BOM_Day2_ForecastIcon=="light-rain"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_windy_32" visibility=[BOM_Day2_ForecastIcon=="windy"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_fog_32" visibility=[BOM_Day2_ForecastIcon=="fog"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_shower_32" visibility=[BOM_Day2_ForecastIcon=="shower"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_rain_32" visibility=[BOM_Day2_ForecastIcon=="rain"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_dusty_32" visibility=[BOM_Day2_ForecastIcon=="dusty"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_frost_32" visibility=[BOM_Day2_ForecastIcon=="frost"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_snow_32" visibility=[BOM_Day2_ForecastIcon=="snow"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_storm_32" visibility=[BOM_Day2_ForecastIcon=="storm"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_light_shower_32" visibility=[BOM_Day2_ForecastIcon=="light-shower"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_heavy_shower_32" visibility=[BOM_Day2_ForecastIcon=="heavy-shower"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_cyclone_32" visibility=[BOM_Day2_ForecastIcon=="cyclone"]
                                Text    item=BOM_Day2_ForecastDateTime icon="weather_na_32" visibility=[BOM_Day2_ForecastIcon==""]
//                              Text    item=BOM_Day2_ForecastIcon
                                Text    item=BOM_Day2_ForecastPrecis
//                              Text    item=BOM_Day2_ForecastDescription
                                Text    item=BOM_Day2_MaximumTemperature
                                Text    item=BOM_Day2_MinimumTemperature
                                Text    item=BOM_Day2_ProbOfPrecipitation
//                              Text    item=BOM_Day2_MinimumPrecipitation
                                Text    item=BOM_Day2_MaximumPrecipitation
//                              Text    item=BOM_Day2_UVAlert

If you want the BOM data files I managed to download manually let me know, I can link them from DropBox or similar for you.

It’s all parsed and processed in memory.

I think the issues might stem from the icon names in the visibility attributes in your sitemap. Can you change dash to underscore and let me know? I changed the icon names in the recent build due to difficulty experienced by @ubeaut .

I’ll give it a go, funny never had this problem until OH3.0.3, and I’m currently using the old BOM version (3.0.0 20201218) hoping that would fix things. Anyway I’ll try renaming the icons and let you know.

It fixed it, thanks Thomas. The locally sourced icon names were ok, it was only the ones in the visibility attrs which point to the names the binding uses were the problem, glad that’s sorted, thanks again. OK, now I’ll try the 3.0.3 version of the binding again and confirm it’s working as expected.

Would it be a possibility to have an option in the binding thing config to save the latest version of the .xml files locally so they can be inspected, or is that a problem?

EDIT: the Maximum Pecipitation is still showing up as a date (onlly in 3.0.3 version, in 3.0.0 it just comes up blank).



Glad it is mostly working for you. I’ll investigate the max precipitation issue.

I’ll add the option to save the latest downloaded xml files.

1 Like

I have not figured out the problem yet. I don’t see the same problem as yours under the new openHAB 3 configuration UI.

In the mean time here is the updated version with the option to save downloaded XML files.



I don’t (and never will) use UI config on anything Thomas. Always by text files, I suppose I’m just old school, can’t stand the abstraction a UI imposes.

Thanks very much for the binding update, what is the option name so I can add it to my thing?

EDIT: found them inspecting the bindings internals, saveXml and saveXmlPath.

Getting “Permission denied” errors on saving:

2021-05-13 03:57:50.240 [ERROR] [nhab.binding.bom.internal.BomHandler] - Unable to write to /home/rob/downloadsIDQ11295.xml: java.io.FileNotFoundException: /home/rob/downloads/IDQ11295.xml
(Permission denied)
2021-05-13 03:57:51.167 [ERROR] [nhab.binding.bom.internal.BomHandler] - Unable to write to /home/rob/downloadsIDQ10914.xml: java.io.FileNotFoundException: /home/rob/downloads/IDQ10914.xml
(Permission denied)

I’ll try setting my dir permissions to 777 (not desireable) to see if that helps.

Yes, your openHAB is running as a different user. Try writing the files elsewhere like within openhab log directory. Else you will have to open up your home directory.

As for you other problem, max (and min) precipitation is a number. Can you try configuring it as a number?

String BOM_Day2_MaximumPrecipitation "Maximum Precipitation"


Number BOM_Day2_MaximumPrecipitation "Maximum Precipitation"

Also download and install the latest version as I have made a slight change to the output format for min and max a few minutes ago.

1 Like

I chose the download directory because I’m always monitoring it, using a two pane file manager (midnight commander or simply mc) and always have the left pane on “downloads” and the right on “home automation and coding (arduino, raspberry etc)”, basically simpler for me. BTW: changed permissions and all is good.

Using the latest binding version I changed to Number (tried floats and integers), then noticed in the downloaded xml files (I figured they’d come in handy, lol) one of the entries had a float (0.4), so went with that. Items now read as:

Number BOM_Day2_MinimumPrecipitation    "Minimum Precipitation [%.1fmm]"  .....
Number BOM_Day2_MaximumPrecipitation    "Maximum Precipitation [%.1fmm]"   .....

Also noticed in the xml files there are no “precipitation_range” data in the first 4 or 5 days, so much of the problems could stem from that. I’m sure they used to have that data, I might have to contact BOM and clarify.

Here’s a pic showing when the data becomes available:

Thanks again for all the work you’re doing Thomas and being so supportive.

1 Like

Personally I have never seen precipitation range for the today’s forecast. There are other fields sometimes unavailable as well.

Double pane file managers have always been my favourite. I use MC in terminals or Double Commander/Krusader on my Arch Linux desktop, or Total Commander in Windows. Couldn’t live without Norton Commander back in DOS days :slight_smile:

1 Like

Precipitation range not showing up here until day 5, that seems a long way off. BOM should have an idea what’s happening on days 2-4, knowing the values from 5 onwards is odd, you’d think they’d have a better idea closer to the current date, not further away.

I have mc permantly open in a yakuake terminal so it can simply be popped up with a key combo. +1 on the Norton Commander, used it exclusively back in the day. Gave up Window$ back in late 90’s, been Linux dude ever since.

BTW: Ditched Win when they went from text based .ini files to the gui based (and mostly non-sensical) registery, such is my dislike of gui configurators. A bias I hold to this day, I’m basically a stubborn wanker.

Hi Tom

I tried to use your binding, which I love by the way! on OH 3.1, but get this lang dependacy

Is an update possible?

08:36:25.146 [WARN ] [org.apache.felix.fileinstall         ] - Error while starting bundle: file:/usr/share/openhab/addons/org.openhab.binding.bom-3.0.3-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.bom [653]
  Unresolved requirement: Import-Package: org.apache.commons.lang; version="[2.6.0,3.0.0)"

        at org.eclipse.osgi.container.Module.start(Module.java:463) ~[org.eclipse.osgi-3.16.200.jar:?]
        at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:440) ~[org.eclipse.osgi-3.16.200.jar:?]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [bundleFile:3.6.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [bundleFile:3.6.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [bundleFile:3.6.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [bundleFile:3.6.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [bundleFile:3.6.8]

Then I found this:


Cheers Kris

Hi All
I am currently running OpenHAB 4 Build 3333 and i am have issues with the Bom Binding it wont load as a binding if loaded as a thing in thing file the following occurs

Is there a version 4 of this binding
Hope you can help Geoff

I’m having the same problems as Geoff on Openhab 4. Should this work on V4, or if not, is there a plan to release an Openhab 4 compatible version?

After much toil I believe I have been successful in building a 4.1.0-SNAPSHOT version - see link below.


Personally I am still on 3.4.4 due to a dependency on this binding, but early tests using a 4.1.0 instance on my Windows machine seem to be positive. I think it might also work for 4.0.1 :crossed_fingers:

NOTE: Fair warning, I am not a developer and its taken in the order of 3 months to work out how to do this, so I only hope this actually works for others.


@Lukie thanks just loaded this onto 4.0.3 and it seems to work. Thanks for your efforts.

FYI this is working very well for me in 4.1.2 on a container. Thanks very much for keeping this going!