Skip to content

Implementing an info screen with Power Apps

There is a large screen in the open space of our office, which is used very rarely. Mostly during occasional Teams meetings and, of course, during the World Cup.

We have been wondering if the screen could be utilized in some way. For example, we could present some current information to those in the office. After a little thought, we decided that our future info screen will display the following information.

  • Current month’s events (shared Outlook calendar)
  • Selected financial data (Power BI report)
  • Daily office visitors for the next 10 days (Power Apps)

How would you go about implementing something like this?

Windows 11 and kiosk mode

The office monitor (and the computer connected to it) are in an open space. It would seem at least a bit too casual to leave a workstation open for everyone to use. Fortunately, Windows can be run in a so-called kiosk mode. Computers in public places (libraries, etc.) take advantage of this feature.

There are two types of kiosk modes.

In Single-app kiosk mode, the user can only use one application, which is pre-defined by the administrator. The application is forced to fullscreen.

In Multi-app kiosk mode, the user can use applications predefined by the administrator. They cannot do anything else on the machine.

In practice, a local user is created on the machine, to which the kiosk mode is assigned. When that user logs in to the machine, it automatically starts in kiosk mode.

In our example, the user is a Kiosk User and the kiosk opens an Edge browser at a specific address.

Great. Now it’s clear how to make this sufficiently safe.

Choosing the application to use

How would the desired information be most easily presented on this info display? The information displayed should change automatically, for example, every 10 minutes.

PowerPoint

The first thing that comes to mind is a PowerPoint presentation, where the slides change according to a timed sequence and then start over again after the last slide. A Power BI report can be embedded neatly into a PowerPoint presentation, but an Outlook calendar can no longer be easily embedded into the presentation.

I have to come up with something else.

Browser with multiple tabs

What if different parts of the displayed content are opened in their own tabs in the browser?

  • Power BI report
  • Shared calendar in month view
  • Future office attendees (app within Teams)

Then, using a browser plugin, such as Auto Tab Switcher, you could change the tab displayed in the browser every 10 minutes.

The solution works great. Until you try to use it in kiosk mode, where browser add-ons are not allowed.

Damn.

Power Apps

Well, let’s do it ourselves. That is one canvas Power Apps, on which the desired information is displayed. The screens change according to a schedule. In kiosk mode, this Power Apps is then open in the browser.

Power Apps info screen

Let’s start by creating our info display application from an event calendar. Matthew Devaney has written two excellent blog posts on implementing a calendar. Following his instructions, the event calendar was quickly created.

The only change needed is to retrieve the events from the Outlook calendar instead of the SharePoint list used in the article. For this, a collection (colEvents) is created, which is then updated at appropriate intervals.

ClearCollect(colEvents, Office365Outlook.CalendarGetItems(constFFEvetnCalendarID).value);

Let’s tweak the calendar so that the upcoming events for the current month are displayed as a list on the right side of the screen. This makes their titles easier to read on the screen.

The result looks like this. It’s okay for now.

Next up is a screen to introduce colleagues who will be arriving at the office in the coming days. We use Power Apps, which we made ourselves, to announce office days. The app already has a nearly identical screen, so it’s done with copy-paste and again with a little tweaking.

Let’s create a dedicated display for communication content. The content could be retrieved from a SharePoint list making it easy to update.

One screen is dedicated to the carefully selected Power BI report.

Switching between screens

How do we make the screen automatically change to another one? Naturally, with the help of timers.

First, let’s define a formula that tells how long the screen will stay on in milliseconds (constTimerDuration).

Each screen has a timer whose duration is set to the value of the formula we just defined. The timer starts automatically.

After the timer ends, you will navigate to the next screen.

Updating information

The application retrieves information from various data sources (office arrivals, calendar events, etc.). We don’t want to retrieve it every time we navigate to the screen.

Let’s add another timer to the home screen, which when triggered (OnTimerStart) will fetch the data needed for the collections. The duration of the timer can be used to control how often the data is fetched. For example, every hour is perfect for our purposes.

What licenses does this require?

We have built a smart info screen for the office using PowerApps.

But can the solution be utilized legally from a licensing perspective?

Microsoft does not offer a device-specific, universal license for the tools used in the example. In practice, everyone in the office who benefits from the display (= sees it) must have the necessary licenses to use it.

InfoscreenPower AppsPower BI

Leave a Reply

Your email address will not be published. Required fields are marked *