openambitproject / openambit

openambit
277 stars 82 forks source link

synchronization with Ambit 3 Peak #262

Open adzweig opened 3 years ago

adzweig commented 3 years ago

Hi

I managed to get the application running. The log files are transmitted correctly. However the routes are not properly synchronized: Openambit prints the messages: Fetching sport modes, Writing orbital data, Synchronization complete. However the Routes are not synchronized and the movescount webpage indicates that the settings on the page and on the watch need to be synchronized.

I could not build the "extras". I obtain the errors: make[2]: [CMakeFiles/ws-ambit.dir/build.make:82: CMakeFiles/ws-ambit.dir/ambit-dissector.c.o] Error 1 make[1]: [CMakeFiles/Makefile2:76: CMakeFiles/ws-ambit.dir/all] Error 2 make: *** [Makefile:130: all] Error 2

What should I try to synchronize the routes? This is really the key problem that I would like to solve.

Thanks for any pointer to a solution.

Adrian

centic9 commented 3 years ago

What is the output before that as this is just the summary of the build failing, not the output about when it actually failed.

adzweig commented 3 years ago
running the script ./install.sh from the directory, where the openambit resides gives the following output:
----------------
adrian@127:/opt/openambit-0.5$ ./install.sh
------building libambit------
-- Found hidapi:  hidapi;/usr/include hidapi/hid-linux.c /lib/x86_64-linux-gnu/libudev.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/libambit-build
[100%] Built target ambit
------installing libambit------
[sudo] password for adrian: 
[100%] Built target ambit
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/libambit.so.0.4.0
-- Up-to-date: /usr/local/lib/libambit.so.0
-- Up-to-date: /usr/local/lib/libambit.so
-- Up-to-date: /usr/local/include/libambit.h
-- Up-to-date: /etc/udev/rules.d/libambit.rules
------building movescount------
-- Found libambit: /opt/openambit-0.5/src/libambit, /opt/openambit-0.5/libambit-build/libambit.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/movescount-build
[  7%] Automatic MOC for target movescount
[  7%] Built target movescount_autogen
[100%] Built target movescount
------installing movescount------
[  7%] Automatic MOC for target movescount
[  7%] Built target movescount_autogen
[100%] Built target movescount
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/libmovescount.so.0.3.0
-- Up-to-date: /usr/local/lib/libmovescount.so.0
-- Up-to-date: /usr/local/lib/libmovescount.so
-- Up-to-date: /usr/local/include/movescount/deviceinfo.h
-- Up-to-date: /usr/local/include/movescount/logentry.h
-- Up-to-date: /usr/local/include/movescount/logstore.h
-- Up-to-date: /usr/local/include/movescount/movescount.h
-- Up-to-date: /usr/local/include/movescount/movescountxml.h
------building openambit------
-- Found libambit: /opt/openambit-0.5/src/libambit, /opt/openambit-0.5/libambit-build/libambit.so
-- Found Movescount: /opt/openambit-0.5/src/movescount, /opt/openambit-0.5/movescount-build/libmovescount.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/openambit-build
[  3%] Automatic MOC for target openambit
[  3%] Built target openambit_autogen
[  6%] Generating qrc_ts.cpp
Scanning dependencies of target openambit
[ 10%] Building CXX object CMakeFiles/openambit.dir/qrc_ts.cpp.o
[ 13%] Linking CXX executable openambit
[100%] Built target openambit
------installing openambit------
[  3%] Automatic MOC for target openambit
[  3%] Built target openambit_autogen
[100%] Built target openambit
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/openambit
-- Set runtime path of "/usr/local/bin/openambit" to ""
-- Up-to-date: /usr/local/share/applications/openambit.desktop
-- Up-to-date: /usr/local/share/appdata/openambit.appdata.xml
-- Up-to-date: /usr/local/share/icons/hicolor/64x64/apps/openambit.png
------building example------
-- Found libambit: /opt/openambit-0.5/src/libambit, /opt/openambit-0.5/libambit-build/libambit.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/example-build
[100%] Built target ambitconsole
------building wireshark dissector------
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/dissector-build
[ 25%] Building C object CMakeFiles/ws-ambit.dir/ambit-dissector.c.o
In file included from /usr/include/wireshark/epan/packet.h:14:0,
                 from /usr/include/wireshark/epan/conversation.h:49,
                 from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:5:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_add_unknown’:
/usr/include/wireshark/epan/proto.h:844:33: warning: passing argument 3 of ‘expert_add_info_format’ makes pointer from integer without a cast [-Wint-conversion]
 #define PI_UNDECODED            0x05000000
                                 ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:534:49: note: in expansion of macro ‘PI_UNDECODED’
     expert_add_info_format(pinfo, unknown_item, PI_UNDECODED, PI_WARN, "Not dissected yet");
                                                 ^~~~~~~~~~~~
In file included from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:6:0:
/usr/include/wireshark/epan/expert.h:118:1: note: expected ‘expert_field * {aka struct expert_field *}’ but argument is of type ‘int’
 expert_add_info_format(packet_info *pinfo, proto_item *pi, expert_field *eiindex,
 ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/wireshark/epan/packet.h:14:0,
                 from /usr/include/wireshark/epan/conversation.h:49,
                 from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:5:
/usr/include/wireshark/epan/proto.h:828:33: warning: passing argument 4 of ‘expert_add_info_format’ makes pointer from integer without a cast [-Wint-conversion]
 #define PI_WARN                 0x00600000
                                 ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:534:63: note: in expansion of macro ‘PI_WARN’
     expert_add_info_format(pinfo, unknown_item, PI_UNDECODED, PI_WARN, "Not dissected yet");
                                                               ^~~~~~~
In file included from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:6:0:
/usr/include/wireshark/epan/expert.h:118:1: note: expected ‘const char *’ but argument is of type ‘int’
 expert_add_info_format(packet_info *pinfo, proto_item *pi, expert_field *eiindex,
 ^~~~~~~~~~~~~~~~~~~~~~
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_log_data_content’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1271:17: warning: implicit declaration of function ‘proto_tree_add_text’; did you mean ‘proto_tree_add_int’? [-Wimplicit-function-declaration]
     sample_ti = proto_tree_add_text(tree, tvb, 0, 0, "Samples");
                 ^~~~~~~~~~~~~~~~~~~
                 proto_tree_add_int
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1271:15: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     sample_ti = proto_tree_add_text(tree, tvb, 0, 0, "Samples");
               ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_log_data_sample’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1308:19: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Period sample specifier");
                   ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1317:19: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         sample_ti = proto_tree_add_text(sample_tree, tvb, offset, count*6, "Values");
                   ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1320:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(subtree, tvb, offset, 6, "Value %d", i+1);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1331:19: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Periodic sample)", (*sampleno)++);
                   ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1378:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Pause)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1390:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Restart)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1403:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (IBI)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1419:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (TTFF)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1433:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Distance source)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1450:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Time event)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1481:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Altitude source)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1502:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (gps-base)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1548:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(sample_tree, tvb, offset, sample_len-40, "Satellites");
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1551:27: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                 sample_ti = proto_tree_add_text(subtree, tvb, offset, 6, "Satellite");
                           ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1564:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (gps-small)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1593:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (gps-tiny)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1623:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Time)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1645:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Swimming turn)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1689:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Swimming stroke)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1703:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Activity)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1722:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Cadence source)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1739:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (lat-long)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1762:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Firmware info)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1791:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Unknown)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_data_write’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1858:13: warning: implicit declaration of function ‘g_printf’; did you mean ‘g_print’? [-Wimplicit-function-declaration]
             g_printf("%.2x", tvb_get_guint8(tvb,i));
             ^~~~~~~~
             g_print
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit3_log_headers_content’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2366:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     logs_ti = proto_tree_add_text(tree, tvb, 0, 0, "Logs");
             ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2371:16: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         log_ti = proto_tree_add_text(logs_tree, tvb, offset, header_len + 2, "Header #%u", log_cntr);
                ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2497:23: error: ‘frame_data {aka struct _frame_data}’ has no member named ‘flags’
         if (!pinfo->fd->flags.visited) {
                       ^~
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2717:29: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                     data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "%s", subdissector->name);
                             ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2720:29: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                     data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "Payload");
                             ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2730:25: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                 data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "Full log entry");
                         ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2736:25: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                 data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "Full log headers");
                         ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘proto_reg_handoff_ambit’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:3206:20: warning: implicit declaration of function ‘new_create_dissector_handle’; did you mean ‘create_dissector_handle’? [-Wimplicit-function-declaration]
     ambit_handle = new_create_dissector_handle(dissect_ambit, proto_ambit);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                    create_dissector_handle
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:3206:18: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     ambit_handle = new_create_dissector_handle(dissect_ambit, proto_ambit);
                  ^
make[2]: *** [CMakeFiles/ws-ambit.dir/build.make:82: CMakeFiles/ws-ambit.dir/ambit-dissector.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/ws-ambit.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
--------------------------------------------
centic9 commented 3 years ago

Ad "extras", I guess the version of wireshark-development files are not matching. If you don't need that part I'd suggest to exclude "extras" from the build-steps.

centic9 commented 3 years ago

On the missing synchronization I cannot help much as I don't own an Ambit 3, but only Ambit 2, which synchronizes routes and sport-modes properly.

adzweig commented 3 years ago

When I build with ./build.sh -DCMAKE_BUILD_TYPE=Debug I obtain the following output:

adrian@127:/opt/openambit-0.5$ Vendor: 1493, Product: 1b libambit_komposti: 2 4 59 0 Komposit version: 2 4 59 0 asyncGet: "https://uiservices.movescount.com/devices/Emu/69.2.17410?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e" libambit WARNING: libambit_navigation_read(): Driver does not support navigation_waypoint_read Start reading log... Finished reading logs... I think... Finished freeing data 1 Finished freeing data 2 End reading log... Start sport mode asyncGet: "https://uiservices.movescount.com/rules/private?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email=" asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email=" End reading sport mode Outer space debug message Start sync Orbit asyncGet: "https://uiservices.movescount.com/devices/gpsorbit/binary?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e" End Orbit sync asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email=" asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email="

The application uploads log data to Movescount.com, however it does not download sports modes or routes to the watch. Movescount.com also indicates that synchronization is still necessary. Could the "libambit warning".in the debug information be a pointer to what is going wrong?

another question: What is meant with "orbital data" ?

Gerold-R commented 3 years ago

Hi

"Orbital Data" = GPS Data

Gerold-R commented 3 years ago

BTW: maybe these errors depends on the hardware version of your ambit 3. what is your version?

adzweig commented 3 years ago

May be this is of help: from uiservices.movescount.com

DeviceName "Emu"
FirmwareUploadDate "2017-06-26T07:33:58ZZZ"
LatestFirmwareURI "Emu/69.2.17410/2.4.17"
LatestFirmwareVersion "2.4.17"
Version "69.2.17410"
adzweig commented 3 years ago

I tried to follow procedure described in #186, building the app from source. Upon running I obtain the following diagnostic output:

adrian@127:/opt/openambit-0.5/aaa/src/openambit$ ./openambit adrian@127:/opt/openambit-0.5/aaa/src/openambit$ Vendor: 1493, Product: 1b libambit_komposti: 2 4 59 0 Komposit version: 2 4 59 0 asyncGet: "https://uiservices.movescount.com/members/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" asyncGet: "https://uiservices.movescount.com/devices/Emu/69.2.17410?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e" asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" libambit WARNING: libambit_navigation_read(): Driver does not support navigation_waypoint_read Start reading log... asyncGet: "https://uiservices.movescount.com/moves/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch&startdate=2020-05-09&enddate=2020-11-07" asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 5 - 9 asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" …….

Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 15 asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" Finished reading logs... I think... Finished freeing data 1 Finished freeing data 2 End reading log... Start sport mode asyncGet: "https://uiservices.movescount.com/rules/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 18 asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 20 libambit WARNING: libambit_sport_mode_write(): Driver does not support sport_mode_write libambit WARNING: libambit_app_data_write(): Driver does not support app_data_write End reading sport mode Outer space debug message asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" Vendor: 1493, Product: 1b libambit_komposti: 2 4 59 0 Komposit version: 2 4 59 0 asyncGet: "https://uiservices.movescount.com/members/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" asyncGet: "https://uiservices.movescount.com/devices/Emu/69.2.17410?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e" asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch" Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 23 asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&email=abc@efg.ch"

centic9 commented 3 years ago

Yes, it looks like this is not supported (yet) for ambit3, see https://github.com/openambitproject/openambit/blob/8c45837331d36dc48500184a86e20cbbb30dc68c/src/libambit/device_driver_ambit3.c#L128

ruvido commented 1 year ago

Hi, being an old thread, I was wondering if ambit 3 peak is now able to sync properly. Any experience?

adzweig commented 1 year ago
  No, I haven't got it to work.... 

   -- 
  Sent from Canary 

   On Tuesday, Nov 22, 2022 at 3:32 PM, ruvido ***@***.***> wrote: 

  Hi, being an old thread, I was wondering if ambit 3 peak is now able to sync properly. Any experience? 
  —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: ***@***.***> 
  ***@***.***": ***@***.***": "EmailMessage","potentialAction": ***@***.***": "ViewAction","target": "https://github.com/openambitproject/openambit/issues/262#issuecomment-1323768618","url": "https://github.com/openambitproject/openambit/issues/262#issuecomment-1323768618","name": "View Issue"},"description": "View this Issue on GitHub","publisher": ***@***.***": "Organization","name": "GitHub","url": "https://github.com"}}]
ruvido commented 1 year ago

ok wow. So summarizing, what's possible to do with openambit and Ambit3 Peak? Thanks again

adzweig commented 1 year ago

Hi

I checked briefly. I have OpenAmbit v0.4, Qt 5.12.8. installed.

-synchronization of routes and settings therefore do not work, as openambit tries to link to Movescount. However, this also did not work previously.

I would be interested in a further development of openambit Since the decommissioning of Movescount I can no longer edit the functions that I developed for my watch on Movescount. I miss this feature.

Cheers

Adrian

On 22.11.22 18:01, ruvido wrote:

ok wow. So summarizing, what's possible to do with openambit and Ambit3 Peak? Thanks again

— Reply to this email directly, view it on GitHub https://github.com/openambitproject/openambit/issues/262#issuecomment-1323986682, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHUAOHXP64J7P2NBFI27OC3WJT377ANCNFSM4TOIO5SQ. You are receiving this because you authored the thread.Message ID: @.***>

jadahl commented 1 year ago

I have an Ambit3 Peak, and while I haven't synced in a while, it has worked in the past. I haven't ever uploaded anything to any cloud service so can't comment about that (I just keep the XML files for future inspection), but the the biggest issue has been the downloaded traces not including heart rate data. That includes the data coming through the wire, I haven't been able to see them using Wireshark either.

ruvido commented 1 year ago

Ok thanks for the replies! I still do not have the watch with me. I will start experimenting with it in late december i guess. As far as I understand Ambit 3 sync (post-movescout) works via mobile app only. I guess the strong point for openambit would be to have a full offline method to:

  1. Backup activity logs
  2. Load local gpx files for navigation
  3. Change watch settings via config files

Frankly speaking I do not like the idea of being forced to be online for the above simple routines. I am not a c++ programmer, but will definitely look into the code once I have the watch.

On Fri, Nov 25, 2022 at 10:04 AM Jonas Ådahl @.***> wrote:

I have an Ambit3 Peak, and while I haven't synced in a while, it has worked in the past. I haven't ever uploaded anything to any cloud service so can't comment about that (I just keep the XML files for future inspection), but the the biggest issue has been the downloaded traces not including heart rate data. That includes the data coming through the wire, I haven't been able to see them using Wireshark either.

— Reply to this email directly, view it on GitHub https://github.com/openambitproject/openambit/issues/262#issuecomment-1327182902, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFOR3FCBM4AQB4DHWGHG4DWKB6IPANCNFSM4TOIO5SQ . You are receiving this because you commented.Message ID: @.***>

centic9 commented 1 year ago

The latest version of Openambit has some more support for working without Movescount Online connection via the "openambit-cli" and "openambit-routes" commandline applications.

I used Ambit 2 until mid of this year and could at least do the following after Movescount was shut down for good:

Theoretically this should also work for Ambit 3 if it did work with Movescount before.

As I stopped using these type of watches and actually gave it away I won't be able to contribute much any more. But if there is interest I can try to describe some more how it can be done.

ruvido commented 1 year ago

Thanks Dominik, that'd be great!

On Fri, Nov 25, 2022 at 12:28 PM Dominik Stadler @.***> wrote:

The latest version of Openambit has some more support for working without Movescount Online connection via the "openambit-cli" and "openambit-routes" commandline applications.

I used Ambit 2 until mid of this year and could at least do the following after Movescount was shut down for good:

  • adjust settings
  • add/remove/edit sports modes (fun fact: I could even load more sport-modes than Movescount iteself allowed, I used 15 modes at the end!)
  • upload routes with some manual work

Theoretically this should also work for Ambit 3 if it did work with Movescount before.

As I stopped using these type of watches and actually gave it away I won't be able to contribute much any more. But if there is interest I can try to describe some more how it can be done.

— Reply to this email directly, view it on GitHub https://github.com/openambitproject/openambit/issues/262#issuecomment-1327360846, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFOR3CDJ7ZJ7QYEG5MVEDTWKCPGRANCNFSM4TOIO5SQ . You are receiving this because you commented.Message ID: @.***>

marguslt commented 1 year ago

As far as I understand Ambit 3 sync (post-movescout) works via mobile app only.

Suuntolink sync over USB works for all Ambit & Traverse models. And Suuntolink backend service is controlled over Websocket, so if you tickle it the right way, it's happy to provide activity files in JSON. This also works without ever signing up for Suunto app account. Would also work entirely offline, though without GPS almanac updates you'll likely see some really funky artefacts in your tracks. One Suuntolink WS implementation can be found in https://github.com/openambitproject/openambit/pull/268#issuecomment-777726890 , If you look around, people have had success running Suuntolink through Wine too.

ruvido commented 1 year ago

Awesome, thanks for the heads up!

On Fri, Nov 25, 2022 at 10:09 PM margusl @.***> wrote:

As far as I understand Ambit 3 sync (post-movescout) works via mobile app only.

Suuntolink sync over USB works for all Ambit & Traverse models. And Suuntolink backend service is controlled over Websocket, so if you tickle it the right way, it's happy to provide activity files in JSON. This also works without ever signing up for Suunto app account. Would also work entirely offline, though without GPS almanac updates you'll likely see some really funky artefacts in your tracks. One Suuntolink WS implementation can be found in #268 (comment) https://github.com/openambitproject/openambit/pull/268#issuecomment-777726890 , If you look around, people have had success running Suuntolink through Wine too.

— Reply to this email directly, view it on GitHub https://github.com/openambitproject/openambit/issues/262#issuecomment-1327886953, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFOR3FII7CDUSROI55VC3TWKETJFANCNFSM4TOIO5SQ . You are receiving this because you commented.Message ID: @.***>

adzweig commented 1 year ago

I just managed to get the Suuntolink App working with wine on Ubuntu 20.04. Awesome... My remaining challenge is to be able to edit Suunto Apps that I wrote earlier and currently reside on my watch. Any hints on how to access these data is much appreciated ...

marguslt commented 1 year ago

@adzweig , if you made those apps public, you'll find those bundled in Suunto link; if not, you must rely on your own backups. For editing and compiling check https://forum.suunto.com/topic/7592/ambit-apps-compilation & https://ambitapps.z6.web.core.windows.net/ . Just getting app binaries from the watch and loading those back later works fine.

Though there's also this issue of getting apps to log and getting logged data from the watch, AFAIK not possible with the (current) Suuntolink, so I'd still consider Openambit. Another alternative would be old Moveslink2 for extracting SML files (if you are able to provide it with a valid configuration, it still pulls data from the watch, even without being able to connect to movescount.com) and some older Suuntolink version, those were able to write apps from Movescount and enable app logging, but it either requires an ability to mock retired Movescount service or control Suuntolink backend through webscoket.

adzweig commented 1 year ago

@marguslt , thanks for these links. I am ready and eager to follow this road.

How can I down- and upload binaries of my apps to the watch? I guess there is no way to recuperate the source code to my private apps from a Suunto weblink.

marguslt commented 1 year ago

@adzweig , Suuntolink should create %APPDATA%/Suuntolink/suunto-apps.json when you change watch settings through Suuntolink, this includes apps downloaded from the watch. You should be able to choose apps from there when you customize screens for your sport modes and it uses the same structure as main app collection, %LOCALAPPDATA%\Suuntolink\app-4.1.6\resources\app\suunto-apps\index.json.

As of reverse engineering, I haven't encountered any project targeting Ambit apps. Though with enough motivation & resources it's probably manageable as it's still possible to generate binary samples from your own code through a service linked in the previous reply.

adzweig commented 1 year ago

cool! many thanks. I think this gets me going! Awesome! :-))

adzweig commented 1 year ago

Where can I find a list of the variables that my Ambit "understands", i.e. SUUNTO_DURATION, Suunto.pow a.s.o. ? Ideally a table with a description of these variables. This used to be available in Movescount or in some manual. thanks

vdca commented 1 year ago

The latest version of Openambit has some more support for working without Movescount Online connection via the "openambit-cli" and "openambit-routes" commandline applications.

I used Ambit 2 until mid of this year and could at least do the following after Movescount was shut down for good:

* adjust settings

* add/remove/edit sports modes (fun fact: I could even load more sport-modes than Movescount iteself allowed, I used 15 modes at the end!)

* upload routes with some manual work

Theoretically this should also work for Ambit 3 if it did work with Movescount before.

As I stopped using these type of watches and actually gave it away I won't be able to contribute much any more. But if there is interest I can try to describe some more how it can be done.

I'd be super-interested in knowing more about how you managed to "upload routes with some manual work" using the commandline application. For me that has been the critical issue, as I don't own a smartphone. Thanks!

marguslt commented 1 year ago

This used to be available in Movescount or in some manual

https://web.archive.org/web/20211022052823/https://dcjitw11p57ya.cloudfront.net/downloads/SuuntoAppZoneDeveloperManual.pdf (It's latest, checked against my own copy).

centic9 commented 1 year ago

I'd be super-interested in knowing more about how you managed to "upload routes with some manual work" using the commandline application. For me that has been the critical issue, as I don't own a smartphone. Thanks!

I have now prepared an initial wiki-page with all the steps and instructions that I could remember. Unfortunately I do not have such a watch any more, so cannot actually verify that the steps really work.

I will incorporate feedback if you find things that should be described differently.

The new documentation is at https://github.com/openambitproject/openambit/wiki/Adjusting-watch-settings-and-routes-without-Movescount

ruvido commented 1 year ago

Great thanks!

On Sat, 17 Dec 2022 at 17:22, Dominik Stadler @.***> wrote:

I'd be super-interested in knowing more about how you managed to "upload routes with some manual work" using the commandline application. For me that has been the critical issue, as I don't own a smartphone. Thanks!

I have now prepared an initial wiki-page with all the steps and instructions that I could remember. Unfortunately I do not have such a watch any more, so cannot actually verify that the steps really work.

I will incorporate feedback if you find things that should be described differently.

The new documentation is at https://github.com/openambitproject/openambit/wiki/Adjusting-watch-settings-and-routes-without-Movescount

— Reply to this email directly, view it on GitHub https://github.com/openambitproject/openambit/issues/262#issuecomment-1356323465, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFOR3D7THFXHM54564KMKLWNXSDLANCNFSM4TOIO5SQ . You are receiving this because you commented.Message ID: @.***>

szma commented 1 year ago

Normal synchronization via openambit works great for my ambit 3 peak (used it a long time). But reading the sport modes and settings gives me

~# ./openambit-cli --no-read-logs --no-sync-time --no-sync-orbit --no-sync-navigation --no-write-logs --write-config-json
Running openambit-cli
Vendor: 1493, Product: 1b
libambit_komposti: 2 4 59 0
Komposit version: 2 4 59 0
Device: Suunto Ambit3 Peak, serial: Bxxxxxxxxxxxxxx
F/W version: 2.4.1
Current charge: 99%
Personal settings: 
weight: 7101
birthyear: 0
max_hr: 59
rest_hr: 0
fitness_level: 0
is_male: 164
length: 0
Connecting to movescount
Connected
Having device: Suunto Ambit3 Peak/Emu/Bxxxxxxxxxxxx/2.4.1/69.2.17411/0/1
Not reading log for now...
Start sport mode
Reading apps from Movescount
ERROR: Could not read custom mode data
End reading/writing sport mode
Start sync watch apps to JSON
ERROR: Failed to sync watch apps to JSON
ERROR: Exiting

Should this already work with the Ambit3 Peak? (Firmware is not up to date)

EDIT: I got my hands on a windows laptop and updated the firmware. The issue with the ambit3 peak remains the same with firmware 2.4.17

vdca commented 3 months ago

@szma : same issue here, can read logs from Ambit3, but unable to read settings (and POIs). Same error: Could not read custom mode data.

Did you ever manage to get it working?