Widgets with Dynamic Content in Layouts not updating on clients

To be completed by the original poster:

CMS Version

2.3.2

Player Type

Windows

Player Version

Windows 2 R252.6-252

Issue

We have a Layout with a Weather and a Ticker widget. If I display this layout on a display, these items don’t get updated on the clients but their content is being updated on the CMS as I can see when I view the layout preview in the web interface.
The respective displays show either that they are up to date or that they haven’t asked the server for an update yet.

For example, one screen has now been stuck on displaying 2°C in the weather widget for the entire morning even though the layout preview shows that it should display 11°C.

The Layout has a duration of 5 minutes, the clients check for new layouts every 5 minutes and the Weather and Ticker widget caches are set to 30 and 15 minutes respectively.

How can I make the screens update their dynamic widgets?

Xibo only shows forecasted weather, and so the data source for that is updated once every 4 hours. You wouldn’t expect it to update more frequently than that with the default settings.

If you’re self hosting, and are willing to pay the charges for more frequent weather updates (by Darksky) then you can lower the cache setting on the Weather module to have it pull in new data more often than that.

Keep in mind too that if you’ve enabled the option for showing weather at the display location, if the display lat/long is set incorrectly in the Display settings, then it will be showing weather for somewhere else. The CMS will show the weather for the default lat/long of the CMS and so the two would not necessarily be the same in any case.

The problem isn’t that I’m not getting frequent enough updates from DarkSky, I can see it gets the weather data correctly if I view the layout preview on the Xibo Server. The clients just aren’t pulling the new weather data from the Xibo Server. The only consistent way I’ve found to get the clients to pull the new data is if I manually edit the layout and publish it again. But that shouldn’t be the final solution, right?

Since the clients are all roughly in the same location, I’ve set the lat/long directly in the weather widget. The lat/long fields in the display settings are all empty, because we don’t need them. This shouldn’t interfere with pushing the weather data to the clients?

I have also tried turning on the “Loop Region” option on the affected regions as suggested here, but this doesn’t seem to make a difference.

Editing and publishing the layout causes all the widgets to be regenerated and also causes the layout to restart, so something in your initial statement can’t be true.

Either the overall layout duration is longer than 5 minutes (ie the duration is very long and so the widgets are never refreshing) or the cache duration on the widgets themselves are longer than you’ve said. The cache is in minutes units not seconds.

Editing and publishing the layout causes all the widgets to be regenerated and also causes the layout to restart, so something in your initial statement can’t be true.

I’ve stated in my second post that re-publishing the layout is the only way I’ve found to regenerate the weather data, so yes, it does indeed regenerate and update the weather data.

Either the overall layout duration is longer than 5 minutes (ie the duration is very long and so the widgets are never refreshing) or the cache duration on the widgets themselves are longer than you’ve said. The cache is in minutes units not seconds

The layout has a duration of 300 seconds due to the ticker widget having this duration set in the widget options. The weather widget on the other hand has the default duration of 60 seconds with the “Set duration?” checkbox unchecked. The weather widget also has the refresh in the “Caching” tab set to 30, while the ticker widget is set to 15.

In normal operation, assuming you have one widget per region, the layout will restart once all the regions have played once, and at that point the Player will check the time it last downloaded the weather resources and if needs be download them again.

You’ve proven that it can download those resources as they update when you republish, so either the layout duration isn’t what you think it is, or the cache interval isn’t what you think it is, or it is updating, but the CMS is correctly caching the results from Darksky for 4 hours (as is expected by default). The preview may not be indicative of what result a Player would get as the result is cached per widget per display.

Yes, the weather and ticker widgets are the only widgets in their respective regions.

I’m not sure how I can prove this, but I’ve placed some screenshots below. All screenshots are taken from the read only view of the published layout. If you need something else, please reply with what you need.

Snag_536ef2

These are all regions and widgets in our layout. All regions only contain one widget.

Caching options of the weather widget.

Caching options of the ticker widget.

And what is the overall module cache for the weather set to? The Players can never receive more frequent updates than that value!

So I’ve checked the weather module options and this should be what you’re looking for


So it caches the weather information for 300 seconds (5 minutes), is that correct?

Yes that represents 5 minutes.

In that case, I think it’s worth putting the Player in to debug logging so you can see information about what the Player thinks the cache interval is.

I’ve enabled the debug log for the two players with the affected layout, but I’m unsure what to look for. After taking a short look at it I’ve found these messages:

10699 03b804e 2020-04-03 10:33 PLAYER POST DEBUG SARD0177 Region - SetNextMediaNode Media Expired:(1245,788,1133,19,forecastio,) . Reached the end of the sequence. Starting from the beginning.
10669 03b804e 2020-04-03 10:32 PLAYER POST DEBUG SARD0177 Region - CreateNextMediaNode Creating new media: forecastio, 267
10668 03b804e 2020-04-03 10:32 PLAYER POST DEBUG SARD0177 Region - SetNextMediaNode New media detected forecastio

Also this one for the Ticker, couldn’t find a similiar one for the Weather:

11009 23db96c 2020-04-03 10:38 XMDS POST DEBUG SARD0176 GetResource No need to regenerate, cached until 2020-04-03 11:06:02
11008 23db96c 2020-04-03 10:38 XMDS POST DEBUG SARD0176 GetResource Cache details - modifiedDt: 2020-04-02 17:36:13, cacheDt: 2020-04-03 10:36:02, cacheDuration: 900, cacheKey: 273, cacheFile: 273_3425_111
11007 23db96c 2020-04-03 10:38 XMDS POST DEBUG SARD0176 GetResource getResourceOrCache for displayId 1 and widgetId 273
11006 23db96c 2020-04-03 10:38 XMDS POST DEBUG SARD0176 GetResource Creating ticker out of possible [“Xibo\Widget\Ticker”]

Also why is the cache duration for the Ticker apparently set to 900 when in the layout it is set to 15?

Should I look for another debug message?

15 minutes is 900 seconds :slight_smile:

Ah, whoops, was probably getting a bit inattentive there :sweat_smile:

But I’ve noticed that the ticker widget is now displaying the same thing on the clients and the CMS.
As for the Weather widget… Well, sadly not. The clients are still displaying outdated information.
I can’t find any information in the log files about the weather widget updating or reporting a cache unlike the ticker. It seems to me that the player is treating it as a static thing?

Would like to get it to work in the next few days as my work setting up Xibo is getting graded soon.

So I’ve had the time to play around with this issue again but I’m really at my wit’s end now…

  1. I’ve tried to enable the “Loop” option for the respective region, didn’t work
  2. I’ve created a campaign, added the layout two times and planned it for the screens, hoping it would reload the layout and get new weather & ticker data, but nope.
  3. I’ve noticed today that the weather and ticker DO in fact update! But only about once per day, because one screen shows the weather from this Monday morning, while the other displays yesterdays weather (I know because the 4-day forecast still shows “Monday” as being tomorrow). So I reckon the screens do get the data about once a day. Why they are updated on different times despite being in the same display group with the same profile and the same settings is still a mystery to me

I’ve tried to investigate further: I took a look at the tasks Xibo runs every so often. But all tasks have been run today already so if it’s one of them that triggers the update, why is only one screen being updated? I’ve also activated and run the “Drop Player Cache” task, again hoping it would refresh the dynamic data, but my hopes were once again shattered…

I’d really appreciate further guidance on this one, it has been bugging me for days now…

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.