KodiWork

Kodi as Office Dashboards part 2

In almost a year a lot has happened, and not much has happened at the same time. 

Annoyingly i've hit a hold-up in getting better screens on the wall, i've been given more budget to get it rolled out across all offices but our facilities team are swamped. It's meant i've been devising plans for a version 2 big bang relaunch at some indetermined time in the future.

Our main office loves the screens and uses them for everything you can think of – advertising internal & external events, promoting new web content, our in-house tuck shop promoting new vegan options or watching the Wimbledon Final through the "iPlayer WWW" Addon. The 1 regional office its made it to so far, don't seem to turn it on very often – but enjoyed watching the cricket through it…

Main things i'm working on – or rather, what's caused me grief and needs sorting.

First off – PhantomJS needs tweaking or replacing, it replaces fonts, its slow (some screenshots take 30 seconds to render) and genrally its a pain managing a .js file for every webpage i want to screenshot. Chrome 60 looks to have screenshot and headless chrome functionality so i'll be looking into that when it goes into production. Too busy to deal with beta releases at the moment. Also webpages that show our dashboard data change design over time, so it becomes necessary to amend the .js files. Doing this en masse is tedious to say the least!

LibreElec appear to have ironed out a bug in CEC use – so i'll be adding that functionality when all screens are CEC enabled as well. We currently have it one screen, but the others aren't CEC enabled – luckily they have shutdown timers. We turn them on manually each morning at the moment, but if a few of us are working from home they don't get switched on. 

We added video, instead of trying to synchronise I just send an API call to each Kodi instance instructing it to play a folder of videos and then stop. I trigger this every hour at 35minutes past and we ensure the source folder is updated weekly – it works well. We also screen capture some of our public web-content – we map a lot of stuff, so a video zooming into major cities and showing totals draws people in to real-time data as they make coffee.

One of our new developers has shown an interest in the project and is helping me put together a web app we're calling Kodi Kontroller. It's designed to manage multiple kodi instances around an office, add them to a profile such as Technical, Public etc and then feed them content to match. Jenkins works but its overkill and when it goes wrong – it goes wrong hard. We have code ready to interact with Slack so it can notify us of a host becoming unreachable or in-reverse we can demand content on screen from a slack channel with a specific command. The use case being the website team being able to announce a new feature from their private channel.

"/kodi announce website build" is not too far away.

A couple of side projects from other devs are starting to find the dashboards as end-points – CoffeeBot is now able to show a "Coffee's Ready in the {location} kitchen" notification in the form of an image file or a video – depending how much we're showing off. Utterly ridiculous but it brings a smile. 

So the theme of the next version is simplifying a lot of moving parts – bringing it into one interface – and making it self-sufficient for when we add or remove hosts. Once we hit this point i'll be open-sourcing Kodi Kontroller.  

I want to give a shout to Paxxi on Team-Kodi for giving this project a mention at Microsoft Build this year. A very unexpected surprise when watching the talk back! I hope to become more active with Team-Kodi in the future, i'm very new to writing my own code (i've been abusing other peoples for years) so hopefully this can act as a springboard into it for me.