About the device sending the wrong date, it is due to the Decoder function. Its not related to the device. I’ll look into it and correct it.
I think that replacing the timeStampParser function for the following one, will solve the problem:
var timeStamp = 0;
var years = bytes << 8 | bytes << 0;
var months = bytes - 1;
var days = bytes;
var hours = bytes;
var minutes = bytes;
var seconds = bytes;
timeStamp = (Date.UTC(years, months, days, hours, minutes, seconds));
Also, can you please confirm that you are using the Helium decoder function shown in the corresponding article section. #3. I just checked the device and it seems to be receiving a payload quite different than the one the decoder is expecting, so it might explain the data location not being correctly parsed.