Alerting on Screens to interrupt a playlist

Hi all, sorry if this has been answered but after searching I can’t seem to find what I’m after.

We have around 30 Xibo screens throughout our company and I have been tasked with creating an automated alert for incidents that will display a dashboard until it has been marked as finished.

I wanted to ask what the best approach would be.

  1. HTML page that is populated on my network with all the data and then sent to Xibo once a minute to update the time display on the dashboard. There is supposed to be a real time clock running on these alerts and I can’t get anything working so far. Ford some reason, the html that I send to Xibo via the API will not display, even though the values are hard coded into the file. Basically I need to display a name, a category of the issue, and the time that it started, as well as the current running time of the problem.

The API on my end has all this data, and the script knows when to generate the incident and send it to the Xibo API. On Xibo I can see the html file, but even if I try to create a path to it as it’s item id .html it will not display anything. If I navigate via web to that exact file on my browser, it downloads it, so I know it’s there.

What is the best way for me to accomplish some kind of real time, persistent alert that I can interrupt a playlist with, and then resume as per normal after the issue has resolved on my end?

You could use a Overlay Layout and push via XMR to the players?

1 Like

You will not be able to use Push via XMR because this way cannot ask to remove a layout.

I’ve already done something very similar.

But to do that, you first need a website that shows the information you want to display.

If this concerns incidents, I assume that you already have a solution in place stored in a database.
To make it easier to display and not have to rebuild everything, you can use Grafana, which will produce some nice graphics.
Anyway, the idea is to create a display group with which you want to display this informations.
And create a layout with this web page that you schedule as a layout overlaid on this display group (I like add a priority for that, as a safety).

This is where the coding comes in.

You need to create a script (in your favourite language, I like PHP) that will look in the database to check if there is an incident in progress.
In this case, we’ll use the Xibo API to add or remove the displays in the display group you have created for that.

This script should be scheduled (like linux cron task) to run as often as you think necessary, for example every 3 or 5 minutes.

Displays and group of displays must not change ID. I recommend giving restricted access rights to the elements that are necessary for proper operation (layout, displays, display group, planning, etc.).

Don’t hesitate to ask for more details, but the development with Xibo API is necessary to make something good and clean.

2 Likes

Thanks ProServ!

Currently I have a graphic/image that has been given to me that I need to display that information over, and I am able to get the data that I need from our internal API endpoint. Basically I want to display this incident so that it interrupts the current playlist that is running across all of the displays in the display group and have it stay up there until the incident is resolved.

I have written some Python scripts to extract this data and I am able to communicate with the Xibo API (I have uploaded media, html and I can get responses etc)

The displays are all running Tizen so I don’t think I can run any scripts locally. I was hoping to be able to gather the incident information, package it in a json payload and then send it to the Xibo API and have it display the overlay that I created and then populate the data in the notification place holders that I set up in that overlay.

I have attached a rough idea of what I want to display, is this possible with Xibo? I have been given until Wednesday to come up with something so I’m feeling the pressure. :confused:

There are several possible ways of doing the same thing.
I’ve given you the procedure to follow, which for me is the simplest and most progressive.

If you only know Python, you can indeed feed the Xibo DataSet (in json) and have the layout display the data from this DataSet.

You will still need to use the Xibo API to add/remove displays from the display group so that the layout is displayed or not.

1 Like

Hi ProServ, do you have an example of your API payload that you are sending when adding and removing displays to the display group? (I don’t mind if it is in PHP)

I’ve used Xibo API Swagger documentation : Swagger UI

It takes time.

I’m going to try and give you a few bits of code, but I can’t share all my code with you because it took me several days to develop it. And I sold it to a customer.

Let me know if you have any problems.

Not to worry, I have managed to query the schedule and add and remove a display group to make it work, thanks for helping me look at the API route.

1 Like

Great.

Could you mark your post as resolved ?