#ZHR# Heart Rate Tag Not Working?

I have tried the #ZHR# tag on my Huawei Watch 2, and it simply reads zero all the time. (I assume the tag is theoretically operable as it works in preview on the creator). Is this something that’s still under development, or am I doing something wrong?

I’ve tried using “#ZHR# BPM” as a text entry and “(210+((#ZHR#/200)*300))” on a hand.

Tried again last night and the heart rate did update, after several minutes, and then stayed at 65bpm. It updated through the night (I don’t know how often of course), but while on charge for 50mins consistently read the same BPM. It has updated once in the last ½ hour.

How regular is the polling of the heart rate? I would have expected the minimum to be each time the screen wakes up. Every few minutes might, just, be acceptable. Once every half hour is effectively useless.

On Android Wear 2, Facer will try and acquire a heart rate multiple times an hour, which we think is sufficient in most cases. Polling it every few minutes would likely have a very drastic impact on the battery but we’ll run some tests and see if we can provide a solution.

Out of curiosity, what is the use-case that makes you feel the need for very frequent updates? That will help us design improvements.

Heart rate is a very dynamic thing, it changes constantly. A value that is five minutes old is pointless, let alone one that’s fifteen minutes old. When I look at my watch, whether I’m just out for a walk or exercising on the bike, I want to know what my heart rate is at that point in time not what it was at some unknown point in the past.

Native Android Wear watch faces seem to use no more battery to show up to date heart rate. But could it be that, rather than listening for the data all the time, or at predefined intervals, they only listen for the data when the watch face is “awake”? Could you design it so that heart rate was only refreshed as the face wakes up?

If immediate results is what you are looking for, some of the Wear 2.0 complications should work. It will give you an icon to click from the face to get an immediate reading. I think a new test on every wake would be excessive. My watch battery only last about 12-18 hours as it is.

1 Like

In that case how do the native faces manage it? I don’t want to have to click through to another app, I want to glance at my wrist and see the answer. Demanding maybe, but native faces do it without excessive battery drain so it’s possible. It’s also, with modern smart watches aiming more and more to cover fitness tracking, going to be more in demand as time goes on.

Thinking further on this:

If the heart rate is being polled regularly, regardless of whether the face is “awake”, would that not lead to unnecessary power drain? Would it not be possible to only poll the heart rate on the event of the screen awakening? That would surely lead to less power draw?

Currently I’m seeing 10% battery drain, or more, by Facer during a day. That compares to 2-3% by a native face with heart rate (“Dashboard”), on my Huawei Watch 2.

@taz without going into the details of the implementation, it already behaves very similarly to what you describe. The heart rate is acquired only when needed, when the watch becomes active, and its previous value is “expired”. Your report that Facer is using 10% battery per hour is definitely concerning - we haven’t seen that in our tests. Are you seeing this type of battery usage consistently?

1 Like

Yes I am. In fact yesterday, after sending my new design to my watch in early afternoon, I saw a total draw by Facer of 10% by bedtime, and 14% by 7am this morning. I had not been running Facer at all until I loaded my new face, so prior to 2pm Facer was not showing any draw at all in my battery usage. I don’t think there’s anything overly complex about my new face and it has a proper dim mode.

I have:
This face
Facer 4.5.11_87794 on my watch
Android Wear Ver.
Huawei Watch 2 0074 (LEO-BX9)

I just realised you said 10% per hour. I’m talking about 10% during short day time use (yesterday between around 2pm and 10pm). The native watch face I used was less than a third of that. I’ll run the native face (Dashboard) today to confirm that.