cagnulein / qdomyos-zwift

Zwift bridge for smart treadmills and bike/cyclette
https://www.qzfitness.com/
GNU General Public License v3.0
415 stars 115 forks source link

[BUG] Conversion gain setting and conversion offset setting do not work with Tacx Neo 2 and Peloton. + resistance crashes when adjusted manually #1707

Open AnneAstrid88 opened 1 year ago

AnneAstrid88 commented 1 year ago

See closed Issue #1418

Describe the bug The target resistance is always 1 below the peloton target resistance; no matter what I put in 'peloton gain' or 'peloton offset' I can't even adjust it manually. If I adjust the target resistance manually, the resistance crashes and goes to zero until Peloton pushes a new resistance to QZ.

I'm talking here about target resistance and target peloton resistance, because both resistance and peloton resistance are unusable for me. They change continuously and do not contain any comprehensible data, I think they change based on the cadence. (So that might be another bug)

To Reproduce Start Peloton app on Ipad and start video. Start QZ app on android phone. Connect to tacx neo 2. Start workout.

Target Resistance goes to zero when you click the + or - button.

Peleton gain and offset were changed but the number in 'target resistance' didn't change. Target resistance is always 1 below peloton target resistance. If for example, Peloton target Resistance was 20, then target resistance would be 19.

Expected behavior 1) The Target Resistance is automatically 5 higher when i set the offset with 5 and gain multiplies the resistance.

2) Resistance doesn't go to zero when I hit - or +

Screenshots WhatsApp Image 2023-10-15 at 15 52 12_447735a0

Smartphone (please complete the following information):

cagnulein commented 1 year ago

please attach a debug log with the issue. thanks

AnneAstrid88 commented 1 year ago

Here you go, let me know if you want me to test anything else. debug-Sun_Oct_15_18_33_39_2023.log

cagnulein commented 1 year ago

ok thanks, i didn't check the log yet (i will do in the next days).

anyway the peloton resistance and resistance are calculated based on watt and cadence because your bike doesn't send it.

when you are on a workout you're not supposed to use resistance buttons to change resistance, instead the gears tile

i will check the log about the -1 issue (i guess is a simple cast from double to integer)

cagnulein commented 1 year ago

@AnneAstrid88 i saw in the log that QZ also finds a WalkingPad. Set the tacx neo to the manual device setting in the advanced section in order to avoid to use also the walking pad (in the log, QZ is trying to connect to it)

cagnulein commented 1 year ago

@AnneAstrid88 could you send me a fresh debug log with the issue with the manual device set to the tacx neo? because one of the issue is that QZ is connected to both your treadmill and bike at the same time. Thanks

AnneAstrid88 commented 1 year ago

This is a debug log with my HRM Pro selected as 'Heart Belt Name' and my TacX Neo selected as manual device. It took me over 30 minutes to get the TacX Neo connected this way. I don't even know what I did that it eventually worked. Maybe it's interference? As I have the following devices at home

debug-Mon_Oct_16_11_22_16_2023.zip

AnneAstrid88 commented 1 year ago

@cagnulein Thanks for letting me know about the gear tile, I didn't know that. It works to adjust my resistance that way.

cagnulein commented 1 year ago

i didn't check the log yet but what did you see in the time where you can't sync with the tacx?did you see the tiles? if not did you see the tacx in the top label?

Il giorno lun 16 ott 2023 alle 13:41 AnneAstrid88 @.***> ha scritto:

@cagnulein https://github.com/cagnulein Thanks for letting me know about the gear tile, I didn't know that. It works to adjust my resistance that way.

— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/1707#issuecomment-1764288321, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWEPS74QY4CKXBQJ3XLX7UMP3AVCNFSM6AAAAAA6BA3LFGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRUGI4DQMZSGE . You are receiving this because you were mentioned.Message ID: @.***>

AnneAstrid88 commented 1 year ago

No I couldn't see the tiles. The tacx also wasn't visible on the top label. The top label switched between the HRM pro and the Runn (that last one was off, but it kept finding it somehow). I had to restart QZ 7 times or so to get it connected to the tacx. So I think it's somehow an issue of the app not finding the tacx. The tacx was not connected to any apps on my smartphone and also not connected to my watch.

cagnulein commented 1 year ago

yes it means that the tacx wasn't available on bluetooth. when it does like this you can also check with nrfconnect app to double check it if you can see it (refreshing it always otherwise you will see the cache from the last time)

i will check the log asap

Il giorno lun 16 ott 2023 alle 16:05 AnneAstrid88 @.***> ha scritto:

No I couldn't see the tiles. The tacx also wasn't visible on the top label. The top label switched between the HRM pro and the Runn (that last one was off, but it kept finding it somehow). I had to restart QZ 7 times or so to get it connected to the tacx. So I think it's somehow an issue of the app not finding the tacx. The tacx was not connected to any apps on my smartphone and also not connected to my watch.

— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/1707#issuecomment-1764557810, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWBEALOMU42IOEVWVFDX7U5KDAVCNFSM6AAAAAA6BA3LFGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRUGU2TOOBRGA . You are receiving this because you were mentioned.Message ID: @.***>

AnneAstrid88 commented 1 year ago

Thanks for the app recommendation. I went to check it with my TacX Neo2T. It's visible in NRFconnect and I can connect to it. However, I couldn't find my tacx in QZ, 1 second before or after connecting it in NRFconnect.

WhatsApp Image 2023-10-16 at 16 55 09_37ffa089 WhatsApp Image 2023-10-16 at 16 55 09_30e40bac

cagnulein commented 1 year ago

can you send me also a log from qz where you CAN'T connect to the tacx so i can check what happens? Thanks

Il giorno lun 16 ott 2023 alle 17:00 AnneAstrid88 @.***> ha scritto:

Thanks for the app recommendation. I went to check it with my TacX Neo2T. It's visible in NRFconnect and I can connect to it. However, I couldn't find my tacx in QZ, 1 second before or after connecting it in NRFconnect.

[image: WhatsApp Image 2023-10-16 at 16 55 09_37ffa089] https://user-images.githubusercontent.com/14952844/275559938-adc97ce1-d16a-421e-a017-2cf81fcd679e.jpg [image: WhatsApp Image 2023-10-16 at 16 55 09_30e40bac] https://user-images.githubusercontent.com/14952844/275559957-fdbd7cc4-b9c9-4f6f-94a7-7f275e632e72.jpg

— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/1707#issuecomment-1764677943, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWHNZKCVKZOQ2XO3W7TX7VD2LAVCNFSM6AAAAAA6BA3LFGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRUGY3TOOJUGM . You are receiving this because you were mentioned.Message ID: @.***>

cagnulein commented 1 year ago

This is a debug log with my HRM Pro selected as 'Heart Belt Name' and my TacX Neo selected as manual device. It took me over 30 minutes to get the TacX Neo connected this way. I don't even know what I did that it eventually worked. Maybe it's interference? As I have the following devices at home

  • Concept 2 (Turned off)
  • Domyos T900C (Turned off)
  • Runn sensor (Turned off but was still visible by QZ)
  • WalkingPad (Turned off)
  • Forerunner 955 (Not in activity mode)
  • HRM Pro (Used for Heart Rate) I don't have this problem when I use my concept 2 with QZ

debug-Mon_Oct_16_11_22_16_2023.zip

thanks @AnneAstrid88 I was checking the log and now without the walking pad I can see the target resistances.

I can also see that why the peloton gain and offset doesn't apply: you need to enable the "Peloton Configuration" under the "Tacx Neo Options".

I fixed the problem where the target resistance is always -1 to the peloton target resistance. It will be in the 2.16.17 that it will be out in the next days!

Let me know!

AnneAstrid88 commented 1 year ago

@cagnulein I'm sorry I didn't notice that I had the 'peloton configuration' off. It probably happened when I switched phones, my phone wouldn't let me import my profiles so I had to adjust it all manually. I must have missed this. I will test tonight if the gain and offset work now. Thank you for catching my mistake.

AnneAstrid88 commented 1 year ago

Here you find the debug logs for when QZ is unable to find my tacx. I think it mostly happens when my RUNN sensor is turned on or when my RUNN sensor is off but was on in the 10-15 min before that. The first one my RUNN sensor was on: debug-Tue_Oct_17_10_14_05_2023.log

The second one my RUNN sensor was off, but it still showed as found: debug-Tue_Oct_17_10_14_32_2023.log

cagnulein commented 1 year ago

I got the issue: the TACX it's visible but it doesn't stream its name so QZ is not recognizing it :O Never see such an issue before.

For reference:

Here is when it's working Mon Oct 16 11:22:27 2023 1697448147253 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) "Found new device: Tacx Neo 2 02768 (C1:14:D9:9C:FB:01) \u001F:\u0000"

Here is when it's NOT working Tue Oct 17 10:14:33 2023 1697530473589 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) "Found new device: (C1:14:D9:9C:FB:01) \u001F:\u0000"

See? Same MAC Address but no name at all. Did you try to reboot the TACX when it happens?

AnneAstrid88 commented 1 year ago

No I haven't tried to reboot the tacx when it happens. I will try that tonight. But what's weird to me is that 'NRFconnect' can see the name of the tacx at the same time that QZ can't see it. Shouldn't it act in the same way in both apps if it's a problem with my Tacx device?

cagnulein commented 1 year ago

it's possible that nrfconnect cached it before. QZ is using the same bluetooth API so it should return the same thing, I agree with you. Are you sure you refresh (pulling down the list, you will see it will blank everything) nrfconnect when QZ didn't fint it?

AnneAstrid88 commented 1 year ago

I just went back to check and yes I tried about 10 times to connect to QZ and couldn't. But everytime I refreshed the list in nrfconnect I could see the name of the Tacx.

So the problem happened when my runn sensor was on, but it continued after I put it off and out of range (according to nrfconnect). I tried rebooting my tacx but that didn't help either.

cagnulein commented 1 year ago

@AnneAstrid88 did this happen also with the old phone? I'm asking this because it seems something in the bluetooth stack of this phone. By the way, which model of phone is it?

AnneAstrid88 commented 1 year ago

@cagnulein I have a Pixel 7 Pro, just updated this week to Android 14, but it happened as well when it was running Android 13. Yes I think it happened as well with the old phone (Huawei P20 Pro), I never used QZ as much because I often had trouble connecting the tacx to QZ so that probably was the same problem. I don't have the old phone anymore to test it.

cagnulein commented 1 year ago

Ok I have the same phone, so the problem is for sure not on the phone itself, infact the concept 2 as you said is working. So you were saying that it's happening only when the Runpod is near by, maybe the Runpod is advertising so fast obscuring the tacx when it's nearby. The only thing that I can do is adding this specific mac address to the white list in the app (just did, it will be available in the 2.16.17). Let me know when you will receive the update!

AnneAstrid88 commented 1 year ago

Yes, I noticed it's happening when the RUNN is on and close by, but I also noticed that it was happening when I put my RUNN off and outside (out of Bluetooth range). So apparently it's not only when the RUNN is activated. So the activation of the RUNN does always give the problem, but other stuff also gives the problem (haven't figured all the stuff out as I have a lot of bluetooth devices).

Thank you for whitelisting it, when the 2.16.17 version is out I will send you an update if it works.

cagnulein commented 1 year ago

sorry it will be version 2.16.18, my fault

cagnulein commented 1 year ago

@AnneAstrid88 version online, did you check it?

AnneAstrid88 commented 1 year ago

@cagnulein The target resistance is correct now, but I still have issues with my tacx not wanting to connect.

cagnulein commented 1 year ago

great about the target resistance. actually i don't know what i can do if android doesn't send me the info about the trainer :( is it paired on the android bluetooth settings? if so could you try to unpair it?

we have to be sure that no other app is trying to connect to it in background. maybe can you try to uninstall the tacx app?

AnneAstrid88 commented 1 year ago

No, it isn't paired like my Bluetooth headphones, but visible similar to my other fitness devices. I always make sure that I have the tacx app closed, but I have just uninstalled it and will test it in the following days.

I also think that the gears resistance adjustment tile doesn't adjust the resistance correctly for my tacx device. If I lower it by 1 it feels way easier on my tacx than when Peloton automatically lowers it by 1. I checked the debug log and it might be a typo in the code:

For example what I found in the debug log: My resistance is 30 Then I lower gears with -1 My target resistance lowers to 29, but my resistance lowers to 19

When peloton lowers the resistance from 35 to 30. My target resistance goes from 35 to 30 and my resistance lowers from 35 to 30.

Here you have the debug log of the example I gave above: debug-Tue_Oct_24_14_43_45_2023[1].zip

cagnulein commented 1 year ago

@AnneAstrid88 log checked: it's happening this because your trainer doesn't have the concept of resistance but only of inclination. so actually, when you're changing the gears, you're increasing or decreasing a 1% of inclination. In order to have a smooth changing, you can use the "Gears Gain" setting (set it to 0.1 for example). Let me know!

AnneAstrid88 commented 1 year ago

@cagnulein So my inclination range of my tacx goes from 0% to 25%, so in order to change the peloton resistance (range from 0 to 100) with 1 by pressing + on gears, I should put the Gears Gain as 0.25, right? I will test this setting tomorrow morning on my bike ride.

cagnulein commented 1 year ago

mmm maybe i'm wrong, but if you left the peloton gain to 1 and peloton offset to 0, in order to have a 1 increment each time you should use 0.1 but I don't remember if the 25% is more than the 100 lvl of peloton. So give it a try, it's probably the faster way to discovery it

AnneAstrid88 commented 1 year ago

Ok thanks, I'll try both. And can I then see it in the debug log?

cagnulein commented 1 year ago

And can I then see it in the debug log?

which value do you want to see in the debug log? they are more or less logged, just search with, for example, "target_resistance" or "peloton_resistance"

AnneAstrid88 commented 1 year ago

I want to know which incline my tacx has at a given moment. I can calculate it if the numbers are available in the debug log.

I've found target_resistance and peloton_resistance in the debug log, but the problem is that it doesn't represent the incline. Like I said, when peloton lowers my target_resistance from 35 to 30, 30 feels way harder than when I manually lower the target_resistance from 35 to 30. The target_resistance is exactly the same in this case in the debug log, but there is definitely a difference in incline.

What does QZdomyos use to calculate my incline?

cagnulein commented 1 year ago

qz uses the current incline that it's receiving from the trainer + gears modifier

search in the log the keyword changeInclination

Il giorno mer 25 ott 2023 alle 12:12 AnneAstrid88 @.***> ha scritto:

I want to know which incline my tacx has at a given moment. I can calculate it if the numbers are available in the debug log.

I've found target_resistance and peloton_resistance in the debug log, but the problem is that it doesn't represent the incline. Like I said, when peloton lowers my target_resistance from 35 to 30, 30 feels way harder than when I manually lower the target_resistance from 35 to 30. The target_resistance is exactly the same in this case in the debug log, but there is definitely a difference in incline.

What does QZdomyos use to calculate my incline?

— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/1707#issuecomment-1778940598, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWAPUR6ZTVEJ7GLAXJLYBDQYNAVCNFSM6AAAAAA6BA3LFGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZYHE2DANJZHA . You are receiving this because you were mentioned.Message ID: @.***>

AnneAstrid88 commented 1 year ago

Okay thank you! I will update you on how it goes.

AnneAstrid88 commented 1 year ago

Am I correct to assume that if 'writing inclination' is 4.1 that my bike inclination will be set to 4.1%? See example below:

Mon Oct 30 07:03:43 2023 1698645823175 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) "writing resistance 41"
Mon Oct 30 07:03:43 2023 1698645823176 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) "writing inclination 4.1"
Mon Oct 30 07:03:43 2023 1698645823177 Debug:   Write characteristic with handle  43 "a4094e0533ffffffffba4fff94" (service: "{6e40fec1-b5a3-f393-e0a9-e50e24dcca9e}" , writeWithResponse: true , signed: false )
Mon Oct 30 07:03:43 2023 1698645823178 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> a4 09 4e 05 33 ff ff ff ff ba 4f ff 94 // changeInclination
cagnulein commented 1 year ago

yes @AnneAstrid88

AnneAstrid88 commented 1 year ago

Ok then you're probably right that I should adjust the gears gain setting with 0.1. I've now tried it with 0.25, but that isn't correct. According to my debug 100% peloton resistance is 10% incline.

In order to adjust my target resistance (ranging from 1-100) with 1, I should hit the gears tile 10 times. Is there a way to adjust the taget resistance with 1 by just clicking once? So instead of clicking 10 times to go from a 4.1% incline to 4.2% incline, click 1 time?

cagnulein commented 1 year ago

if you set the gear gain to 1 you will obtain the desired behavioir, am I missing something?

AnneAstrid88 commented 1 year ago

Yes you're right. I checked it with my previous debug log I sent, and you're right, when I have a gear gain of 1 and I click once it changes from a 4.1% incline to 4.2% incline.

The problem still is that a change automatically done by peloton from 41 to 42 (and thus from a 4.1% incline to 4.2% incline) feels way easier than when I manually change it from 4.1% incline to 4.2% incline with gears (with gears gain 1). Is it possible that the "writing inclination" is not the same value as the actual inclination it sends? I have no way to explain it, but it feels like a huge difference.

cagnulein commented 1 year ago

you can check the raw data

Mon Oct 30 07:03:43 2023 1698645823178 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> a4 09 4e 05 33 ff ff ff ff ba 4f ff 94 // changeInclination

they must be same if they are the same target incline.

AnneAstrid88 commented 1 year ago

No they are not the same, this is with my gears gain at 0.25:

Peleton adjusts resistance to 43: ">> a4 09 4e 05 33 ff ff ff ff ce 4f ff a8 // changeInclination"

I adjust resistance to 43 (from 42) with Gears = 1: " >> a4 09 4e 05 33 ff ff ff ff 32 50 ff 0d // changeInclination"

I just went through your code and I think the problem might be lying here (in tacxneo.cpp): image

The gears is in terms of inclination and not resistance. The debug log 'writing inclination' seems correct because the line is written in your code before the inclination is adjusted with gears, I think. I might be wrong, just trying to help.

cagnulein commented 1 year ago

probably I misexplained myself.

I was refering to your phrase

The problem still is that a change automatically done by peloton from 41 to 42 (and thus from a 4.1% incline to 4.2% incline) feels way easier than when I manually change it from 4.1% incline to 4.2% incline with gears (with gears gain 1).

so I was saying: compare the 2 logs where you're changing manually the incline from 4.1% to 4.2% with the one where peloton goes from 41 to 42.

My idea is that the changeInclination raw line must be same

I just went through your code and I think the problem might be lying here (in tacxneo.cpp):

nope that's right, i'm using inclination for the resistance, so if there is a difference, it's somewhere else i guess

AnneAstrid88 commented 1 year ago

It goes from a writing resistance 42 to writing resistance 43 (by doing it manually) " >> a4 09 4e 05 33 ff ff ff ff 32 50 ff 0d // changeInclination" → Line 172157 in debug log

It goes from a writing resistance 42 to writing resistance 43 (by peloton automatically) " >> a4 09 4e 05 33 ff ff ff ff ce 4f ff a8 // changeInclination" → Line 55826 in debug log

debug-Mon_Oct_30_06_45_13_2023[1].zip

The only thing that I can think that might be different between the 2 is that the steps the target resistance changes manually are steps of 0.25, but the writing resistance only changes after a few increments. If you need data within the same workout where the resistance is changed by peloton from 42 to 43 and by me from 42 to 43 in 1 step, I will have to change the gears gain to 1 to get that data.

cagnulein commented 1 year ago

the difference is because

here you have gears = 0, so qz is getting the request resistance/inclination from peloton and it's applying it " >> a4 09 4e 05 33 ff ff ff ff ce 4f ff a8 // changeInclination" → Line 55826 in debug log

here, instead, you have gears = 1, so qz is applying the current inclination/resistance PLUS 1 so you have a different inclination

" >> a4 09 4e 05 33 ff ff ff ff 32 50 ff 0d // changeInclination" → Line 172157 in debug log

so in this case you have a 5.3 instead (because 4.3 + 1 gears)

I hope it's clear Let me know if you have any other questions

AnneAstrid88 commented 1 year ago

Yes ok, that's a bit more clear. I thought you meant the gears was already calculated into the incline. What is still weird to me, is that my writing inclination (when gears is 1) is already 4.3, while peloton resistance is at 42. It should give 4.2 incline and 5.2 with gears. Writing inclination when gears is 0 with the same peloton resistance is 4.2 incline.

What I'm trying to get/explain is the following: I want to visually see which resistance I am on in peloton terms (range from 0-100). Normally I use my target resistance as the real peleton resistance I am on and the peloton target resistance as the one Peleton proposes. I am looking for a way to adjust my target resistance when the current peloton target resistance is too high/low.

But when my gears changes with 1, my target resistance changes with 1. While the target resistance should change with 10 (because resistance = inclination*10). So I have no clue which peloton resistance I am actually on.

cagnulein commented 1 year ago

isn't the resistance tile show already this? in my previous example

" >> a4 09 4e 05 33 ff ff ff ff ce 4f ff a8 // changeInclination" → Line 55826 in debug log

here it was 42

instead here

" >> a4 09 4e 05 33 ff ff ff ff 32 50 ff 0d // changeInclination" → Line 172157 in debug log

is 52

I saw in your log that now you have disable it, try to enable it and give me a feedback

AnneAstrid88 commented 1 year ago

I disabled the resistance tile a couple of weeks ago because it was giving me a continuously changing number. I will enable it again and test if it is correct now.

instead here

" >> a4 09 4e 05 33 ff ff ff ff 32 50 ff 0d // changeInclination" → Line 172157 in debug log

is 52

I read a resistance of 53 here: \"target_peloton_resistance\":42 \"gears\":1 \"peloton_resistance\":53

cagnulein commented 1 year ago

Mon Oct 30 07:04:18 2023 1698645858171 Debug: ../src/templateinfosender.cpp bool TemplateInfoSender::update(QJSEngine *) "eval res " "{\"msg\":\"workout\",\"content\":{\"BIKE_TYPE\":2,\"ELLIPTICAL_TYPE\":4,\"ROWING_TYPE\":3,\"TREADMILL_TYPE\":1,\"UNKNOWN_TYPE\":0,\"deviceId\":\"C1:14:D9:9C:FB:01\",\"deviceName\":\"Tacx Neo 2 02768\",\"deviceRSSI\":-58,\"deviceType\":2,\"deviceConnected\":true,\"devicePaused\":false,\"elapsed_s\":28,\"elapsed_m\":17,\"elapsed_h\":0,\"lapelapsed_s\":28,\"lapelapsed_m\":17,\"lapelapsed_h\":0,\"pace_s\":20,\"pace_m\":2,\"pace_h\":0,\"avgpace_s\":38,\"avgpace_m\":2,\"avgpace_h\":0,\"maxpace_s\":50,\"maxpace_m\":1,\"maxpace_h\":0,\"moving_s\":28,\"moving_m\":17,\"moving_h\":0,\"speed\":25.535516372795968,\"speed_avg\":22.650299266834953,\"speed_color\":\"\",\"speed_lapavg\":22.650299266834953,\"speed_lapmax\":32.67558420628526,\"calories\":150.01906100999992,\"distance\":6.577468888620519,\"heart\":151,\"heart_color\":\"\",\"heart_avg\":139.80282738095238,\"heart_lapavg\":139.80282738095238,\"heart_max\":162,\"heart_lapmax\":162,\"jouls\":126729.10200000028,\"elevation\":0,\"difficult\":1,\"watts\":170,\"watts_avg\":120.95158980234889,\"watts_color\":\"\",\"watts_lapavg\":120.95158980234889,\"watts_max\":313,\"watts_lapmax\":313,\"kgwatts\":2.4285714285714284,\"kgwatts_avg\":1.7275508254877967,\"kgwatts_max\":4.4714285714285715,\"workoutName\":\"30 min HIIT & Hills Ride\",\"workoutStartDate\":\"Mon Oct 30 06:46:50 2023\",\"instructorName\":\"Hannah Frankson\",\"latitude\":null,\"longitude\":null,\"altitude\":null,\"peloton_offset\":-3,\"peloton_ask_start\":false,\"autoresistance\":true,\"row_remaining_time_s\":13,\"row_remaining_time_m\":0,\"row_remaining_time_h\":0,\"nickName\":\"N/A\",\"gears\":1,\"target_resistance\":43,\"target_peloton_resistance\":42,\"target_cadence\":80,\"target_power\":0,\"power_zone\":3.6,\"power_zone_lapavg\":2.2855882598008566,\"power_zone_lapmax\":7,\"target_power_zone\":1,\"peloton_resistance\":49.5,\"peloton_resistance_avg\":37.06976744186046,\"peloton_resistance_color\":\"\",\"peloton_resistance_lapavg\":37.06976744186046,\"peloton_resistance_lapmax\":49.5,\"peloton_req_resistance\":42,\"cadence\":77.38035264483626,\"cadence_color\":\"\",\"cadence_avg\":68.63727050556042,\"cadence_lapavg\":68.63727050556042,\"cadence_lapmax\":99.01692183722804,\"resistance\":53,\"resistance_avg\":30.18421052631579,\"resistance_lapavg\":30.18421052631579,\"resistance_lapmax\":53,\"cranks\":20001,\"cranktime\":55562,\"req_power\":0,\"req_cadence\":80,\"req_resistance\":43}}"

yes sorry 53

I disabled the resistance tile a couple of weeks ago because it was giving me a continuously changing number.

yes because you had the tacx peloton setting disabled. Now enabling the resistance should stay stable. let me know