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.
    • 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
                                        • S Offline
                                          SuuntoPartnerTeam @Unpaired8373
                                          last edited by

                                          Hi @Unpaired8373 ,

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

                                          Wasm is not available!

                                          Is it expected that even an example app crashes the watch with a Syntax Error ? … I then copied the Dynamic Icons example but still get the crash log below

                                          That is not expected behaviour 😃 I just now checked the Dynamic Icons example on both a Race 1 and a 9 Peak Pro. Neither crashed during an exercise. Best advice that comes to mind is to first make sure the watch is running the latest firmware.

                                          Running JS inside an HTML template can be a bit finicky and seems to have the highest potential for crashes at present.

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

                                            @ook

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

                                            We do not presently have a way to capture scrolling events, but as you found…

                                            i find out if ur ui is big enough it will able to scroll down,dont have to do anything.

                                            … the watch will automatically attempt to scroll elements with the crown 🙂

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

                                            Suunto Terms | Privacy Policy