Proč mám rád Fitbit i po měsíci

Dlouho jsem uvažoval, zda si něco takového jako activity monitor pořídit. Nakonec mi business case vyšel když jsem řekl, že mě to povede k většímu pití vody. A navíc jsem pracovně potřeboval nějaká skutečná data pro IBM Fitness IoT Cloud.

První dojmy

Nevyžaduje to IT specialistu pro zprovoznění a nastavení. Žádné párování telefonu nebo počítače s náramkem. Tedy s výjimkou prvního párování, ale to je spíše propojení náramku s účtem a je pak přes účet sdílené s ostatními zařízeními. Tedy po instalaci aplikace na telefon a přihlášení se k účtu už telefon náramek najde a provede synchronizaci bez nutnosti něco nastavovat a párovat na úrovni Bluetooth.

Je to pohodlné na nošení. Po počátečních problémech s citlivostí uživatelů na materiály při dlouhodobém nošení a po provedení materiálové změny, která již proběhla, jsem u své verze žádný problém po měsíci téměř neustálého nošení nezaznamenal. Pásek je dostatečně žužloidní a pohodlný jak při těsnějším nošení ve dne, tak i volnějším, které volím na noc.

Je to zábavné. A skutečně dost motivační. Zvláště po přidání pár lidí do kontaktů je pak snaha vyhrát a mít co nejvíce kroků za týden znát. Úplně zpočátku mě to dokonce vedlo k podvečerním vycházkám s mrňousem, abych ještě na poslední chvíli nějaké kroky urval.

Rozsáhlý ekosystém fitbitu. Pokud uživatel chce používat bezdrátovou váhu a nechce fitbitovou, pak klidně může použít Withings váhu, která umí i měřit CO2 v ložnici a účet si připojit. Zrovna tak pro evidenci přijatých kalorií lze propojit i jiné webové portály, třeba MyFitnessPal. Využití českých kalorických tabulek bohužel vyžaduje ruční přenos kalorií, ale i to lze. Aktivity lze automaticky importovat z Endomonda, což používám. Zajímavé může být i propojení přes ifttt s dalšími systémy a aplikacemi a třeba si vzbuzením rozsvítit žárovku, nebo do souboru na Gdrive uložit parametry spánku…

O čem je řeč

Teď zpět k samotnému náramku. Rozhodl jsem se pro Fitbit Charge HR. Chtěl jsem něco, co budu dost lehké na téměř neustálé nošení a tomu bohužel Fitbit Surge neodpovídá. A současně něco, co umí měřit nepřetržitě srdeční tep. A tomu neodpovídají nižší typy.

Původně jsem preferoval zařízení od Garminů, neboť s jejich sportovními hodinkami Fenix jsem fakt spokojený. Ale neměli jiný způsob měření tepu než hrudní pás. Až nyní mají i optické snímání na zápěstí. Ale jen jako samostatné zvláštní zařízení – tedy doplněk.

Teď už jsem rád, že jsem se rozhodl pro fitbit. Hlavně kvůli jejich webovému portálu, pěkné aplikaci pro iOS i Android, která pracuje i na Blackberry 10 a možnosti široké integrace dalších služeb.

A jedno foto, jak vypadá Charge HR po měsíci častého, nicméně zatím opatrného nošení. Slovy: lehké ošoupání hran, žádné viditelné šrámy.

Fitbit Charge HR
Fitbit Charge HR

Je to přesné?

Otázka, zda je měření Fitbitem přesné mě dost trápila. Měl jsem pocit, že když něco stojí víc než málo, pak by to mělo být hóóódně přesné. Recenze ale ukazovaly, že na 100% to přesné není. I moje současné pozorování odpovídá na tuto otázku „je to poměrně přesné, ale ne úplně a ne vždy“. Typicky je 100km jízda autem započítána jako pár desítek kroků. Vyběhnuté schodiště naopak není rozpoznáno jako schodiště vůbec. Srdeční tep v porovnání s hrudním pásem, což je věc, kterou jsme prováděl za běhu, celkem sedí, jen se trochu opožďuje – asi je to výsledkem průměrování měření za delší dobu, aby se vyloučily nahodilé chyby.

Vadí to, že to není úplně přesné? Mě už ne. Měření jsou porovnatelná mezi jednotlivými dny a s jinými uživateli. A spíš něž o přesnost jde o motivaci a zábavu. A v této oblasti to prostě funguje.

A závěrem pro porovnání stejný běh na kopeček a zpět podle Fitbitu a Endomonda na Blackberry (tedy krokoměr s HR vs GPS):

Fitbit vs Endomondo

Jeníkův „Social Day“

Včera jsem (já Jeník, 1 rok a kousek starý) dostal injekci. Hodně mikroorganismů. Sice mrtvých nebo slabých, ale pořád dost cizích na to, aby bylo nutné uspořádat seznamovací večírek a nejít spát. Dokonce došlo na horečku páteční noci. A když nejdu spát já, nejde nikdo.

Ráno jsem se rozhodl, že po noci, která nebyla, vzdám další pokusy o usnutí a půjdu se trochu obtisknout do sociálních sítí.

Začnu snídaní. Maminku jsem nechal spát a vyrazil s řidičem kočárku na afterparty do kavárny Cheecup. Abych po sobě nechal nějakou sociální stopu checknul jsem se na Foursquare (viz Foursquare):

Foursquare

Zbaštil jsem řidiči půl panini s tuňákem a čtvrt croasantu, pokusil se mu vylít kapučíno a nadrobil souvislou vrstvu do výše lýtek všech hostů.

Venku svítilo sluníčko a dávalo smysl se vydat na Vyšehrad. Pustil jsem Endomondo pro záznam trasy (viz Endomondo):

Endomondo

Vyrazili jsme na Vyšehrad (viz Wikipedia) a cestou na skoro pustém Vyšehradě vyfotili rotundu statého Martina (viz Instagram) a zaútočili na nepřátelský portál (viz Ingress):

Rotunda svatého Martina

Dobrá náladička z večírku trvala a tam jsem zamířil na Náplavku na trhy a nechal si natočit krátký šot z poslechu kapely od řidiče, což odpovídá nízké kvalitě práce s kamerou (viz. Youtube):

Uviděl jsem nůši a pro případ, že  by v budoucnosti mohli existovat lidé, kteří nevědí jak vypadá si ji vyfotil (viz Dropbox).

Nůše

Tak teď ještě trochu propagace na Facebooku (viz Facebook) a Twitteru (viz Twitter) a obtisk je hotový. Kam se hrabou rodiče, maximálně se mi snaží obtisknout modrou nohu na čtvrtku (viz Flickr).

Nožička
Váš Jeník na blogu (viz tento Blog)

Deploying a report to BIRT on Bluemix

Ok, I have BIRT up and running but there is only example report that’s nice but not so useful.

I haven’t found a simple way how to deploy a rptdesign report definition to the already installed Bluemix/BIRT site. Just the way described below. If you know how to do it easily, please let me know.

I created folder report in the same directory as is birt.war located (please see previous post) and copied my report (say Temperature.rptdesign) into this folder and then packed the report design file into birt.war file and updated the application on the bluemix:

jan@Cake : ~/Downloads/birt-runtime-4_4_0
 $ jar -uvf birt.war report/Temperature.rptdesign
 adding: report/Temperature.rptdesign(in = 68687) (out= 6158)(deflated 91%)
jan@Cake : ~/Downloads/birt-runtime-4_4_0
 $ cf push Birt -p birt.war
 Updating app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Uploading Birt...
 Uploading from: /Users/jan/Downloads/birt-runtime-4_4_0/toPush/birt.war
 1.6M, 185 files
 OK
 Stopping app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Starting app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 0 of 1 instances running, 1 starting
...
 1 of 1 instances running
 App started
 Showing health and status for app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 requested state: started
 instances: 1/1
 usage: 512M x 1 instances
 urls: Birt.stage1.mybluemix.net
 state since cpu memory disk
 #0 running 2014-09-24 02:08:49 PM 0.0% 211.9M of 512M 198.5M of 1G

It works:

BIRT Report

But it’s not elegant neither fast. Hopefully I will discover another way how to deploy report definitions to the BIRT engine…

Installing BIRT on Bluemix

Short summary: It cannot be easier to make the visualisation and reporting tool called BIRT working on Bluemix… More precisely to run engine and viewer on Bluemix. You will still need BIRT designer have installed on your PC.

Download BIRT Runtime.

Unpack:

jan@cake : ~/Downloads
 $ unzip birt-runtime-4_4_0-20140611.zip
Archive: birt-runtime-4_4_0-20140611.zip
 creating: birt-runtime-4_4_0/
...

Login into your Bluemix account using web interface and create Birt application using Java Liberty Runtime. But this step is not probably needed.

Login to Bluemix using CF:

$ cf login

and push from the directory where you have just unpacked the BIRT runtime:

jan@cake : ~/Downloads/birt-runtime-4_4_0
 $ cf push Birt -p birt.war
 Updating app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Uploading Birt...
 Uploading from: /Users/jan/Downloads/birt-runtime-4_4_0/birt.war
 2M, 185 files
 OK
 Stopping app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Starting app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 0 of 1 instances running, 1 starting
...
 1 of 1 instances running
 App started
 Showing health and status for app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK

Point your browser to just created application:

BIRT

Done…

IoT Cloud MQTT message to Speech

For demo purposes and to be able to check if the messages are coming from the IoT cloud without looking at the screen all the time I created super simple Node-RED flow that receives messages from IBM’s IoT cloud and log them in the debug tab of the Node-RED UI and in parallel it parses JSON format of the messages to obtain value of the „temp“ property which is then passed to OS X say command.

It can be easily modified to pick another property value just by modifying „JSON and parse“ node.

Screen Shot 2014-09-04 at 13.34.43

 

You can import the flow using „Import -> From Clipboard“ menu item of Node-RED and by pasting the following text and modify your broker details:

[{"id":"7649d216.89b62c","type":"mqtt-broker","broker":"kbrhh.messaging.internetofthings.ibmcloud.com","port":"1883","clientid":"a:kbrhh:viewer2"},{"id":"482fa4c4.b7d05c","type":"debug","name":"Show message","active":true,"console":"false","complete":"true","x":343,"y":62,"z":"948d5198.6b72b","wires":[]},{"id":"a07e3b0c.5f81c8","type":"mqtt in","name":"Receiver","topic":"iot-2/type/sensor-type/id/+/evt/event1/fmt/json","broker":"7649d216.89b62c","x":93,"y":129,"z":"948d5198.6b72b","wires":[["482fa4c4.b7d05c","e9a50fa3.165af"]]},{"id":"e9a50fa3.165af","type":"function","name":"JSONify and parse","func":"msg = JSON.parse(msg.payload)\ntemp = msg.d.temp\ntemp = Math.round(temp * 10)/10;\nreturn {\"payload\": \"Temerature is \" + temp + \" degrees of Celsius\" }","outputs":1,"x":344,"y":199,"z":"948d5198.6b72b","wires":[["4de9ed0c.b21614"]]},{"id":"4de9ed0c.b21614","type":"exec","command":"/usr/bin/say","append":"","useSpawn":"","name":"Say","x":578,"y":258,"z":"948d5198.6b72b","wires":[[],[],[]]}]

You can also change the voice by modifying say command from:

/usr/bin/say

to:

/usr/bin/say -v <voice name>

You can list available voices by entering command

/usr/bin/say -v ?

into terminal.

The flow requires Node-RED installed on a OS X machine.

Home automation as a weekend project using IBM’s Clouds – part 3

Today we will add a simple user interface to our Bluemix/Node-RED/MongoDB application. We could do it in a form of a Ruby in Rails app or use another platform. But let’s assume that we want to have something up and running really fast – just for PoC purposes and as a rough prototype. That’s why I am going to use RapidApps for this purpose. Pokračování textu Home automation as a weekend project using IBM’s Clouds – part 3

Home automation as a weekend project using IBM’s Clouds – part 2

Today we will connect the MQTT bus that is core part of IoT Cloud to the MongoDB using Node-RED flow.

The goal is to have the values – that are sent by our simulated device – stored in our database to be able to display them to an user.

We need to add MongoDB to our Bluemix application. Pokračování textu Home automation as a weekend project using IBM’s Clouds – part 2

Home automation as a weekend project using IBM’s clouds – part 1

I decided to make myself familiar with the IBM’s cloud services by creating a home automation system based on these services:

  • Internet of Things Cloud to interconnect sensors (temperature and motion detector) and actuators (light switches) with the application running in cloud.
  • Bluemix to process the events and act in an appropriate way
    • I plan to use Node-RED to feed a database with the events
    • and Business rules service to implement logic.

Before implementing such a system I started by testing components that I plan to use.

Pokračování textu Home automation as a weekend project using IBM’s clouds – part 1

Stažené titulky bez hledání

Právě jsem našel aplikaci Subtitles pro OS X  a je to přesně to, co jsem ani nevěděl, že hledám. Používal jsem kvůli automatickému stahování titulků XBMC, ale to je trochu kanon na vrabce. Subtitles lze spustit buď pomocí „Open with…“ u filmu nebo pohozením soboru filmu na okénko aplikace. Funguje pěkně.