Suunto app Forum Suunto Community Forum
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    [Question] No stupid questions - ask anything here

    Scheduled Pinned Locked Moved Suunto Plus Development
    125 Posts 33 Posters 9.3k Views 31 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      harry08 Bronze Member @SuuntoPartnerTeam
      last edited by

      @SuuntoPartnerTeam
      Hi, one question regarding date calculations. I saw in the Suunto Reference that Date is not supported in the standard built in objects.
      So I need to do all date calculations based on seconds? Is this true?

      Thanks

      S 1 Reply Last reply Reply Quote 0
      • surfboomerangS Online
        surfboomerang
        last edited by

        @suuntopartnerteam I’m still a little bit confused about the setText() behavior.

        For example
        I create two template files, both with a <div id="testid" ....> section.
        In the main.js evaluate() function I set the text setText('#testid', 'testvalue');

        This put’s the text in th div-section. If the text is changed, the div-section updates accordingly.

        However, when I change the template to the second tempate (and call unload('_cm');) the div-section on the new template, which has the same id, isn’t updated at all.

        Do you have any advise on how to handle this?

        Suunto Vertical Titanium Solar
        OnePlus Nord 4

        S 1 Reply Last reply Reply Quote 0
        • S Offline
          SuuntoPartnerTeam @surfboomerang
          last edited by

          @surfboomerang

          1. As with web development, ids are meant to uniquely determine an element. You shouldn’t use the same id for different elements. This is true even when those elements are inside different HTML templates, if both templates may be active at some point during the runtime of the app

          2. You cannot change a template that is not active. The uiViewSet might be something worth looking at, depending on what you’re trying to achieve

          surfboomerangS 1 Reply Last reply Reply Quote 1
          • S Offline
            SuuntoPartnerTeam @hitriy
            last edited by

            Hey @hitriy .

            You can fetch data from any device which supports being in peripheral mode – even a laptop. In your case, you would need to write an application for your phone which communicates with the watch using Bluetooth Low Energy.

            H 1 Reply Last reply Reply Quote 0
            • S Offline
              SuuntoPartnerTeam @harry08
              last edited by

              Hi @harry08 .

              That is right, you can only get precise current time or the day of the week. The rest needs to be calculated manually

              1 Reply Last reply Reply Quote 0
              • I Offline
                Isotop7
                last edited by

                Is it possible to get the Suunto Plus Guide a user has selected for the current workout? The goal would to the show a graphic representation (for example bar chart) to show all intervals of the workout and vertical ruler showing the current point in the workout.

                1 Reply Last reply Reply Quote 2
                • surfboomerangS Online
                  surfboomerang @SuuntoPartnerTeam
                  last edited by

                  @SuuntoPartnerTeam said in [Question] No stupid questions - ask anything here:

                  The uiViewSet might be something worth looking at

                  Thanks for the hint! This worked for my case.

                  Suunto Vertical Titanium Solar
                  OnePlus Nord 4

                  1 Reply Last reply Reply Quote 1
                  • H Offline
                    hitriy @SuuntoPartnerTeam
                    last edited by

                    Awesome, works fine for me. Worth buying new watches then!

                    1 Reply Last reply Reply Quote 0
                    • Ecki D.E Offline
                      Ecki D. Bronze Member
                      last edited by

                      Connect watch to macbook - VSCode

                      Should this work?

                      I have a older (rather old 😉 macbook running monterey. I couldn’t connect the watch to deploy my app on it.
                      Maybe it failed cause the watch hasn’t been properly disconnected from the phone see my other thread over here:

                      https://forum.suunto.com/post/187290

                      https://www.strava.com/athletes/37982563
                      https://www.instagram.com/macdev

                      1 Reply Last reply Reply Quote 0
                      • U Offline
                        Unpaired8373
                        last edited by

                        Does the watches JS-runtime support WASM by any chance?

                        S 1 Reply Last reply Reply Quote 0
                        • Tomas5T Offline
                          Tomas5 Gold Members
                          last edited by Tomas5

                          Hello, can anyone help, I am trying to display Graph for HearthRate.

                          I am using this code for displaying graph, it is taken from one of examples just modified input path for current hearth rate:

                          <graph style="position:absolute;
                                        left:0px; top:0px; width:100%; height:100%;
                                        box-sizing: border-box;
                                        padding-right:90px; padding-top:60px; padding-bottom:60px;
                                        font-size:21px;"
                                 valueFormat="HeartRate_Fourdigits"
                                 type="line"
                                 grid="three lines"
                                 inputType="subscribe"
                                 input="/Activity/Move/-1/HeartRate/Current"
                                 min="0.6666666667"
                                 max="3"
                                 slack="0.1"
                          />
                          

                          and it works fine in simulator and I see this:

                          Snímka obrazovky 2026-03-20 210235.png

                          but when I upload app to watch (Suunto 5 or Race 2), than there is no graph line for Heart Rate:

                          1774037407881-img_2476.jpg

                          Suunto Ambit 2 > Suunto 5 > Suunto Race 2

                          Tomas5T 1 Reply Last reply Reply Quote 0
                          • ookO Offline
                            ook
                            last edited by

                            guys I need help, anyone know how to use the crown/middle button to scroll to the next ui?

                            Tomas5T 1 Reply Last reply Reply Quote 0
                            • Tomas5T Offline
                              Tomas5 Gold Members @ook
                              last edited by

                              @ook i would try “onEvent(input, output, eventId)” and display value of eventId on screen and than see if crown produce some events.

                              Suunto Ambit 2 > Suunto 5 > Suunto Race 2

                              ookO 1 Reply Last reply Reply Quote 0
                              • ookO Offline
                                ook @Tomas5
                                last edited by

                                @Tomas5 thanks Tomas I tried your method, it just return 0 to me, but i find out if ur ui is big enough it will able to scroll down,dont have to do anything.

                                S 1 Reply Last reply Reply Quote 1
                                • Thibault B.T Offline
                                  Thibault B. Bronze Member
                                  last edited by

                                  Hello,

                                  What I want to do is quite simple but I do lack experience with JS, and it has been a long time since I developed in HTML.

                                  I would appreciate your help :). I want to override down button press to make a lap type 24, but only if activity is ongoing. If it is paused I want the default behavior (stop activity).

                                  In my html:

                                  <userInput>
                                        <pushButton name="down" onClick="$.put('/Zapp/{zapp_index}/Event', 123, null, 'int32');" />
                                  </userInput>
                                  

                                  In my js:

                                  function onEvent(input, output, eventId) {
                                    if (eventId == 123) {
                                      // Down button was pressed
                                      $.put('Activity/Trigger', 24);
                                    }
                                  }
                                  

                                  I was thinking of conditioning the HTML onClick but do not really know how to access necessary variables, etc. I have tried a few things but I am lost.

                                  U 1 Reply Last reply Reply Quote 0
                                  • U Offline
                                    Unpaired8373 @Thibault B.
                                    last edited by

                                    @Thibault-B. There is an example in the examples collection. Essentially have a global variable that is set in the start-handler and unset in the stop-handler and then handle the condition in you event

                                    Thibault B.T 1 Reply Last reply Reply Quote 0
                                    • Thibault B.T Offline
                                      Thibault B. Bronze Member @Unpaired8373
                                      last edited by

                                      @Unpaired8373 Not sure to get what you mean.

                                      function onEvent(input, output, eventId) {
                                        if (eventId == 123 && output.isPaused == 0) {
                                          // Down button was pressed
                                          $.put('Activity/Trigger', 24);
                                        }
                                      }
                                      

                                      It is not triggering the lap but it is not doing anything else and I wanted to default to initial behavior (so I didn’t want an explicit call to stop, which seems anyway not available?).

                                      Thibault B.T 1 Reply Last reply Reply Quote 0
                                      • Thibault B.T Offline
                                        Thibault B. Bronze Member @Thibault B.
                                        last edited by

                                        I think the issue is that I override the onClick action, so I should keep it empty if in pause. But I do not know how to do it.

                                        S 1 Reply Last reply Reply Quote 0
                                        • surfboomerangS Online
                                          surfboomerang
                                          last edited by

                                          I’m working on an app for speedsurfers :

                                          f78a673a-e1d4-4991-9c48-b6f793e3c88e-image.png

                                          I struggle a little bit with the Alpha category.
                                          According to the gps-speedsurfing rules the Alpha category is the speed over 500m, including a gybe (180 degree turn), and the start and endpoint needs to be within 50m of eachother.

                                          To determine if there was a gybe, I thought about recording the direction for each second, but I noticed that isn’t available as parameter.
                                          So the only other option I see is derive the direction from the coordinates, but that includes some calculations.

                                          Any other ideas?

                                          Suunto Vertical Titanium Solar
                                          OnePlus Nord 4

                                          1 Reply Last reply Reply Quote 0
                                          • U Offline
                                            Unpaired8373
                                            last edited by

                                            Is it expected that even an example app crashes the watch with a Syntax Error ?

                                            After having my own app crash - and almost brick the watch or at least having it perform a fault recovery for a couple of minutes - I thought I reduce the app to a bare minimum and work from there but even that crashes the watch. I then copied the Dynamic Icons example but still get the crash log below:

                                            #2670816 22.03.2026 18:43:43 : ERR UI_FRAMEWORK : JS:0x8258be29:SyntaxError: 5
                                            #2670817 22.03.2026 18:43:43 : ERR APPLICATION : Thread state: name:ui
                                            #2670818 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:ui s:0 pc:0 lr:0
                                            #2670819 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:UI s:1 pc:78e9c lr:81ab1
                                            #2670820 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:ID s:1 pc:9b6d6 lr:84a15
                                            #2670821 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:BL s:2 pc:6c324 lr:6c15b
                                            #2670822 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:nV s:2 pc:6c324 lr:6c15b
                                            #2670823 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:Nt s:2 pc:6c324 lr:6c15b
                                            #2670824 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:WI s:2 pc:6c324 lr:6c15b
                                            #2670825 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:lo s:2 pc:84020 lr:84051
                                            #2670826 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:Po s:2 pc:6c324 lr:6c15b
                                            #2670827 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:WB s:2 pc:9b6d6 lr:84a5b
                                            #2670828 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:Ap s:2 pc:9b6d6 lr:84a5b
                                            #2670829 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:me s:2 pc:9b6d6 lr:84a5b
                                            #2670830 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:Tm s:2 pc:b6aca lr:84a15
                                            #2670831 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:Se s:2 pc:6c324 lr:6c15b
                                            #2670832 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:hc s:2 pc:6c324 lr:6c051
                                            #2670833 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:DS s:2 pc:6c324 lr:6c051
                                            #2670834 22.03.2026 18:43:43 : ERR APPLICATION : CtxDog n:us s:2 pc:6c320 lr:6c051
                                            #2670835 22.03.2026 18:43:43 : TRC UI_FRAMEWORK : wuiDump Assert peFunctionCombiner.cpp:302
                                            #2670836 22.03.2026 18:43:43 : EVT MAPS : Tile sz=29840, x17435, y11374, z15
                                            #2670837 22.03.2026 18:43:43 : TRC MAPS : Req[0] result: Code=OK
                                            #2670838 22.03.2026 18:43:43 : TRC MAPS : Req[0] handle: clientID=1, handle=1153598804039951724, r
                                            #2670839 22.03.2026 18:43:43 : EVT TRAININGLAB : TLab: Input source 0 timeout
                                            #2670840 22.03.2026 18:43:43 : EVT TRAININGLAB : TLab: Active input source 3
                                            #2670841 22.03.2026 18:43:45 : EVT EXT_FLASH : ExtFID 0xc2,0x25,0x39
                                            #2670842 22.03.2026 18:43:45 : ERR FAULT : A302:duktapeFunctionCombiner.cpp
                                            #2670843 22.03.2026 18:43:45 : EVT BOOTLOOP : Faultcom c:fa017c01 ts:1774201322 n:1774201425
                                            

                                            As a side-note: I really like the naming of the internal code files 🙂

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Suunto Terms | Privacy Policy