While waiting for my new and shiny Pebble Time I've finally managed to spend some time and play with Pebble API. And of course one of the first questions was is it possible to make a link between Pebble and Qlikview/Qlik Sense.
Since I'm more familiar with Qlikview QMS API I've started with it.
- Display - since Pebble display is black and white showing charts is kinda obsolete (will check with the color Pebble Time display later). That's why I've decided to try and show only number based reports.
- API - Qlikview API is limited when you try and get data from qvw. The only method I've found was to get specific field content. But think that this is enough since I don't need complicated data. (Qlik Sense API on other side provide more options - building calculation on the fly, get data from objects etc.)
The overall idea/workflow that worked for me is:
- Qlikview app(s) holding the data - .net app (QV API only supports .net) which will take care of the communication with QV - web server that will link Pebble requests with the .net app - Pebble app that will display data
Qlikview app (qvw)
The only data that make sense to be used in this case is simple KPIs: Sales amount: £140, Revenue: £50 etc.
For this reason the QV app should contain one extra script part that will calculate this static data.
The values in the field should be separated by "_".
.net app (c#)
The app is console app that accept two arguments:
- Qlikview server - in format http://localhost:4799/QMS/Service
- Apps and fields - from which qvw files which fields data to be get. Format:
, ; , (for example C:\ProgramData\QlikTech\Documents\PebbleData.qvw,PebbleData;C:\ProgramData\QlikTech\Documents\PebbleData1.qvw,PebbleData1;)
More help is available if the app is started with --help argument.
The app will display the result based on the returned data and will generate the screen title and navigation on the fly.
If we have the following data in QV:
Sales_MTD_1426.90 Sales_Today_100.01 Sales_Yesterday_90.50 Margin_MTD_15.7 Margin_Today_10.42 Margin_Yesterday_9.15
The pebble app will create two main categories: Sales and Margin and each category, when selected, will show 3 rows (MTD, Today and Yesterday) and each row will show the corresponding value.
Pebble app configuration
The app uses configuration html file which is hosted in Google Drive. This file do not store any data. It contains 3 fields that need to be populated:
- Web server - url for node.js app
- Qlikview server - targeted QV server
- Qlikview files and fields - required QV files and fields
You need to enter all 3 values every time change is made (for now).
The code is available at https://github.com/countnazgul/QlikviewToPebble.
This project contains all files. Nodejs and Pebble app can be found in the main folder
Of course Qlik Sense will be the first try. Alexander Karlsson's QSocks (https://github.com/mindspank/qsocks) is very nice project which can be used to handle the communication between Node.js and Qlik Sense
Not only Pebble - most of the other smart watches have touch displays. Navigation is only one "+" when thinking of BI/reporting integration. I will play, in the near future, with Android Wear at least.
This is just proof of concept project. Some parts might not work from first time.
It's not bad idea to be tested first against dev/test Qlikview server.
Hope you like it!