PyCycle - workout file on Wahoo

Hello,
Together with my friend we create application for Wahoo - PyCycle. Application can download workouts from intervals.icu and convert to .FIT file extension. Wahoo can red this file as workout (This avoids the manual downloading of workouts from intervals.icu then uploading to TrainerDay and then to TrainingPeak). PyCycle downloads today’s training and all trainings scheduled for 2 weeks ahead. This project is beeing developed in free time.

FIT workout file supports cadence but… Wahoo doesn’t support cadence target on this type of file. We were able to add cadences to workouts but under the field “Target BPM”. Workouts can be 5-10s longer because FIT file dosen’t support two targets (e.g. power and cadence) and we must create 1s segments to display cadence (on Target BPM field):

What you need:

Instalation:

  1. Download the files indicated above
  2. Install Java version 8 update 301
  3. Install Python on version 3.9.7
  4. Run the python installer again and select Modify. On the Optional Features select “pip” and on Advanced Option select “Add Python to environment variables”

image

image

  1. Click Install
  2. Restart computer after instalator finishes!
  3. Run First Start.bat
    7a. If you have done everything correctly you should see this window:
  4. Open config.json in notepad
  5. Go to Intervals.icu and copy Athlete ID at the bottom of the page
    image
    9a. Paste Athlete ID in config.json
  6. From Intervals.icu copy API Key (if you don’t have one - generate it)
    10a. Paste API Key in config.json
  7. Enter your FTP
    11a . The correct file should look like this:
    image
  8. Save and close config.json
  9. Run Start.bat
  10. Training files should appear in the “plans” folder
  11. Copy workout files to your Wahoo
  12. Start synchronization on Wahoo

If you have any suggestions for further development of this project or problems with installation, please write in this post - I will try to help.

8 Likes

Wow tx for putting this together. I must get .fit file download for Intervals.icu workouts done!

1 Like

This certainly looks interesting.
Does it work with OpenJDK or only Oracle Java?

It work with OpenJDK - testing on version 8u262-b10 on Windows 11 x64

We are update PyCycle to version 1.2.0
Changelog:

Does Step 15 require that I plug my Wahoo USB to the computer running this agent?

Can this also generate Zwift Workout compatible files (unsure if conversion required) and publish them to some folder as well?

Does Step 15 require that I plug my Wahoo USB to the computer running this agent?

Yes, step 15 require plug my Wahoo to the computyer via USB.

Can this also generate Zwift Workout compatible files (unsure if conversion required) and publish them to some folder as well?

I will add it to my to do list

Update PyCycle to version 1.3.1
Changelog:

  • Better create ramp:
    Divides the segment into 1 minute segments with a ramp
  • Fixed ramp creation - now does not require cadence in training
  • Fixed download - downloads activities that are type = ride
  • Support for <IntervalsT> tag in ZWO files
  • updated to the latest version of the CsvToFit module

PyCycle 1.3.1

2 Likes

Thanks a lot, step 14. where is “plans” folder ?

Currently, this folder is named “output”