[IMPLEMENTED] Push workout to Wahoo

You need android file transfer installed to make android devices show correctly

2 Likes

Thank you so much Lukasz!

Hi all
Any updates here on pushing planned workouts to Wahoo Bolt?
I am able to manually put the workouts in the Elemnt ‘Plans’ folder and get them that way but auto push to Wahoo from .icu would be fantastic
I contacted Wahoo support to see if it’ll ever be possible

The Wahoo API does not currently support uploading planned workouts but this might change at some point. I am going to be adding Wahoo integration for downloading completed workouts soon.

4 Likes

Got a reply from Wahoo
image

Thanks for raising a request, as it says the more it is requested the higher up the priority list it goes.

Can we determine what we actually require to do this? (Not used my wahoo for structured training before so leaning on you guys/gals)
I don’t think they have the data architecture to do future workouts as AFAIK there is no calendar.
As such do we go down the ‘Workout of the day route’ or do we just want to be able to upload planned workouts and leave the scheduling of uploading/removing to our/intervals side?

Hope that is clear?

Email - WahooAPI@wahoofitness.com.
Request Ticket - https://support.wahoofitness.com/hc/en-us/requests/new

Skeleton

Hi there,

Could I please request the ability for the Cloud API to support planned workouts.
This feature is severely lacking and creates a much greater headache compared to Garmin to facilitate structured training.

A successful resolution includes:

  • Allowing POST requests to upload planned workouts

Thanks,
xxxx

Request I've raised thus far (hopefully find the best channel to send our requests other than the email)

Hi there,

I enjoy the custom alert feature on my Wahoo, however the placing of the Dismiss button being linked to the middle one is a little frustrating and I propose it be moved to the left button.

The reason being is I link the Wahoo to my 12sp Di2 hoods, this doesn’t control the middle button so if I’m descending I have to take my hands off the bars to press the physical wahoo button rather than simply using the hoods button.

Please let me know this request has been received and the likelihood of being implemented.

(Also, could you point me in the best direction to request Cloud API requests? I find it quite ridiculous that there is no automated solution to push planned structured workouts to the device. I know I’m not alone in this as there are many that love the device but considering a switch to Garmin for this feature)

Thanks,
Ben

2 Likes

This link is broken

I also bumped an earlier feature request:

I noticed a bunch of software improvements over the last months, but a possibility to push planned workouts to a Wahoo unit through an open API has still not been implemented (apart from the proprietary Training Peaks “workout of the day”). This is much easier with units from your competitors!

And got a reply:

Thanks for following up with your feedback. I can confirm that this feature is currently unavailable. However, I am happy to link this ticket to a feature request to demonstrate demand. Our developers see these feature requests when planning firmware updates for our products.

I really hope their developers listen - keep wishing!

2 Likes

I have communicated with Wahoo over this and in fact when the update made file (workout) transfers available again after having been removed I was pro-actively contacted by Wahoo.

Commercially as they own SYSTM I see why they’d want to ring-fence their eco-system so I was pleased.

I have had success having transfered files (workouts) from my PC to the Wahoo treating it as an external USB stick/HDD.

You do then have to select the workout you’d planned so not as sweet an integration as when I was on TrainerRoad.

Hope that helps if people haven’t transfered succesfully.

2 Likes

Any update on this issue/function?

2 Likes

I’ve just send a feature request to wahoo. The API still doesn’t support workout plans :frowning:
https://cloud-api.wahooligan.com/#plans

2 Likes

Hi,

I made a piece of software which eventually allows you to push structured workouts from Intervals to Wahoo.
You will need to have basic\free (paid also fine) TrainingPeaks account (it allows planning workouts for today and tomorrow) and authorized on your Wahoo unit.

To run the app, you need Java 21 and the application jar. How to install Java you can find on the Internet.

  • The application jar you can download from release page.
  • Execute the jar java -jar tp2intervals.jar
  • Open web page http://localhost:8080

Additional information, code, docker image, etc you can in repo

Contact me if you have any questions

edited

5 Likes

Thanks for this but could you please give a detailed guide of exactly how to this :pray::pray:

I have no idea what ‘start the docker container’ means or how to do this. How and where do I do this?

Thanks!! Will be awesome if handy to do.

1 Like

Hi,

I’ve updated readme and added another way to run the app. Also added how to configure the app in the first run.

tl;dr

  1. Install Java version 21
  2. Download jar from here
  3. Execute it java -jar tp2intervals.jar
  4. Open web page http://localhost:8080

Let me know if you have any success.

4 Likes

Hi,

I tried following the instructions but I’m getting this error message:

Is there something Im missing?

Thanks,

Highly probably your configuration for TrainingPeaks is wrong.

In configuration, you need to put all this (key with value) long string

I just released v0.0.3 where slightly updated error reporting

1 Like

Thank you so much. I was able to get it working. I was using the wrong key.

Almost 4 years gone since the original request (April 2020), Wahoo still making life difficult for all their users. Disgraceful…

5 Likes

Hi. Thank you for your effort! I tried your script yesterday because I needed to sync interval’s planned workouts to TP. It synced without error but for some reason only 2 days in calendar. After 2 days of training I opened tp2intervals again but I got “Internal Server Error” by clicking “Submit” and some logs in console:

2024-02-04T18:28:11.149+03:00 ERROR 759839 — [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet
[dispatcherServlet] in context with path threw exception [Request processing failed: java.lang.NullPointerException] with root cause

java.lang.NullPointerException: null
at org.freekode.tp2intervals.infrastructure.intervalsicu.workout.IntervalsWorkoutDocDTO$StepValueDTO.mapTargetUnit(IntervalsWorko
utDocDTO.kt:36) ~[!/:0.0.5]
at org.freekode.tp2intervals.infrastructure.intervalsicu.workout.IntervalsToWorkoutMapper.mapTarget(IntervalsToWorkoutMapper.kt:9
8) ~[!/:0.0.5]
at org.freekode.tp2intervals.infrastructure.intervalsicu.workout.IntervalsToWorkoutMapper.workoutStepTargets(IntervalsToWorkoutMa
pper.kt:84) ~[!/:0.0.5]
at org.freekode.tp2intervals.infrastructure.intervalsicu.workout.IntervalsToWorkoutMapper.mapSingleStep(IntervalsToWorkoutMapper.
kt:59) ~[!/:0.0.5]
at org.freekode.tp2intervals.infrastructure.intervalsicu.workout.IntervalsToWorkoutMapper.mapToWorkoutSteps(IntervalsToWorkoutMap
per.kt:45) ~[!/:0.0.5]
at org.freekode.tp2intervals.infrastructure.intervalsicu.workout.IntervalsToWorkoutMapper.mapToWorkout(IntervalsToWorkoutMapper.k
t:25) ~[!/:0.0.5]
at org.freekode.tp2intervals.infrastructure.intervalsicu.workout.IntervalsWorkoutRepository.getPlannedWorkouts(IntervalsWorkoutRe
pository.kt:52) ~[!/:0.0.5]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]

and so on .

This is only hapening with “Plan Workout” submitting. “Copy Plan” works without error (“Plan copied” green message). So I doubt there is something wrong with my cookies/keys settings. It looks like TP banned me after first two synced calendar days, but I’m not sure. Tried to clear cookies on TP and relogin with updating Production_tpAuth in script config, also tried deleting tp2intervals-db.mv.db and configure it from scratch. No success. V0.0.5

Hmm…workout probably has a step target which app can’t handle yet.
Can you send me steps of workout(s), so I can try to reproduce the error?