You don't seem to be decoding the BCD in the code above... What about:
var seconds = ("0"+data[0].toString(16)).substr(-2);
var minutes = ("0"+data[1].toString(16)).substr(-2);
var hours = ("0"+data[2].toString(16)).substr(-2);
rtcTime = (hours+":"+minutes+":"+seconds);
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
You don't seem to be decoding the BCD in the code above... What about: