Temperature is not saved to the activity

Hi, I'm developing a watch application that records an activity, and one of the metrics that has to be recorded is the temperature. In my Forerunner 745 everything works fine and the temperature is recorded with ActivityRecording.createSession.

session = ActivityRecording.createSession({
    :name => "My activity name",
    :sport => ActivityRecording.SPORT_GENERIC,
    :subSport => ActivityRecording.SUB_SPORT_GENERIC
});

But when I run an app on my Fenix 7 Pro, the temperature is not saved to the activity, and when I open it in Garmin Connect I do see only the heart rate and some of the other default metrics.

I've tried to use both, adding :sensorLogger to the createSession with enabled all of the sensors, and tried to use Sensor.setEnabledSensors([Sensor.SENSOR_TEMPERATURE]), but none of those worked for me. However during the activity the temperature is available and received through SensorHistory.getTemperatureHistory({ :period => 1 });

Please advise, thanks

  • But that's the point of what FlowState wrote. Per activity. So even when you look at the built in activities, i.e run, walk, then you have to enable the temperature recording in each one of them, so if you would enable run, then record a run, then record a walk, the walk wouldn't have it.

    However all the above is for activities, and you're talking about an app, that is totally different, and every setting needs to be implemented by you. You could have a setting whether the user wants to include temerature, and only if yes then you enable the sensor, and "manually" (aka from the code) you should add a field for the temperature and call setData for it every second (or maybe in this case it would make more sense to call only when it changes)

    That's not what I meant tho. Obviously OP could write temperature data to a 3rd-party field himself (and optionally add an app setting), but clearly having the watch write temperature data to a native field is superior. (It saves memory, it doesn't count against the per-activity CIQ FIT field limit, and it's written as a true native field for any sites that care about that.)

    So there's really only 3 ways this could happen (in order from most likely to least likely):

    - Garmin takes the temperature recording setting from the last native activity that was opened (similar to what used to happen with GPS satellite settings - not sure if it still does, since the API was updated to set this stuff programmatically)

    - Garmin enables temperature recording unconditionally for CIQ apps

    - Garmin adds an "all CIQ apps" settings menu with all the activity-ish options that could conceivably apply to a CIQ app (such as enable/disable temperature recording, enable/disable touch, GPS settings, maybe even run power settings.)

    So my only practical suggestion was to file a feature request, so at least we can see what the Connect IQ team's stance on this is. 

    It's not a bad idea to write the data himself, but that doesn't change the fact that behavior has changed from 745 to current devices in a way that limits the functionality of CIQ apps (compared to the past), and OP is justified in asking whether that should be the case.

  • I don't think CIQ apps on watches ever recording the internal temperature. 

    Did you read the OP?

    . In my Forerunner 745 everything works fine and the temperature is recorded with ActivityRecording.createSession.

    Clearly what has happened is that Garmin watches used to record internal temperature by default and now they don't (as discussed earlier.)

  • Any other device?  I don't have a 745. but I've never seen it on any device I have, including current ones.

    With a Tempe, it will work on watches, with the possible exception of the fr45/55 where you I don't think you can get internal temp and can't pair a tempe..

    Have you ever used a Tempe?

  • Nope, don't have a Tempe to try it out

  • Any other device?  I don't have a 745. but I've never seen it on any device I have, including current ones.

    With a Tempe, it will work on watches, with the possible exception of the fr45/55 where you I don't think you can get internal temp and can't pair a tempe..

    Have you ever used a Tempe?

    You are missing the point. The OP explicitly said it works on 745 (it’s a big part of the post), so when you reply with “I don’t think CIQ apps on watches ever recording the internal temperature” that’s like saying to the OP “I didn’t read your post” or even worse, “I read your post and I don’t believe you”. It isn’t the first time - where you’ve failed to read the OP, ignored what the OP wrote, implied bc you haven’t seen something (or don’t remember seeing it) it can’t be true, or implied bc you don’t care about something it isn’t important.

    It’s like you’re sticking with what you know and refusing to entertain the idea that someone else could have a different experience or that your experience could be incomplete or wrong.

    You’re still doing it now, in suggesting that maybe this is a freak occurrence that only happens with 745.

    I just tried recording a couple of activities (walking and running) with a CIQ device app of mine on my old 935, and yep, there’s a Temperature field in the native data. Note that 935 is even older than 745, and it does not have the ability to disable recording temperature for native activities.

    You want me to go back and buy every watch from that era with a baro and try it? Will you continue to ignore or contradict whatever doesn’t fit your worldview, experience or memory? Or will you give other ppl the benefit of the doubt when they say stuff, instead of acting like they’re making it up.

    Imagine if I said “I don’t believe that pairing a Tempe causes temperature to be recorded In CIQ apps. That sounds wrong to me, I’m going to need proof.” That would be pretty annoying, huh?

    Have you ever used a Tempe?

    It’s irrelevant. I never said a Tempe wouldn’t work as you’ve described. Not only have I seen you talk about Tempe many times over the years (so I trust that you know what you’re talking about), even if it was the first time you brought it up I still would’ve believed you, especially since I have no experience with Tempe.

    Maybe the OP doesn’t want to buy a Tempe. If OP also intends others to use the app, they’re probably not all going to want to buy a Tempe. 

    Again, clearly the point of the post is that the behavior has changed from 745 to current watches.

  • If it's only the 745, I'd say that's a bug on the 745.  I've been looking at temperature in CIQ device apps for 9+ years.  And had a Tempe to compare the whole time.

    The Tempe's main purpose is to do what the OP want's  The temperature graph in an activity..

    Graphing internal temp is kind of meaningless, as it's generally not skin temp or ambient, can vary based on different devices, etc.  That's why on some devices, with native apps, it won't record temperature without a Tempe.  If the internal temp is 91F, what does that really mean?

  • If it's only the 745, I'd say that's a bug on the 745.  I've been looking at temperature in CIQ device apps for 9+ years.  And had a Tempe to compare the whole time.

    You didn't read, as usual. I said that 935 also records internal temperature for CIQ device apps.

    Like I said, I'm not gonna go out and buy a bunch of other devices just to prove my point.

    Graphing internal temp is kind of meaningless, as it's generally not skin temp or ambient, can vary based on different devices, etc.  That's why on some devices, with native apps, it won't record temperature without a Tempe.  If the internal temp is 91F, what does that really mean?

    I won't argue there. I already said above that Garmin disabled internal temperature recording by default for native activities on newer watches bc people complained that it was meaningless and confusing. But Garmin also added a setting to re-enable internal temperature recording, bc obviously they think some ppl want it, as meaningless as it is.

    I actually enable temperature recording for running, as it's kind of interesting to me, even if it's meaningless in absolute terms.

    The Tempe's main purpose is to do what the OP want's  The temperature graph in an activity..

    Nobody is going to buy a Tempe to use OP's app, not even OP. Clearly OP wants Fenix 7 Pro to work the same way as 745, without a Tempe.