cagnulein / qdomyos-zwift

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

Disabling auto resistance does not work #1430

Closed lpecan closed 1 year ago

lpecan commented 1 year ago

0QZ-backup-Fri Apr 21 05_53_17 2023.txt Renamed file to .txt from fit to upload. Auto resistance appears to remain engaged essentially in ergmode doing pz class with qzai

lpecan commented 1 year ago

Uploaded the wrong file 0QZ-backup-Fri Apr 21 19_59_58 2023.txt [Uploading debug-Fri_Apr_21_19_59_57_2023.txt…]()

cagnulein commented 1 year ago

@lpecan you have to wait the finish of the upload before clicking on comment. the debug log is corrupted

Let me know

lpecan commented 1 year ago

debug-Fri_Apr_21_19_59_57_2023.txt Let's try again. Again I renamed to txt so the file extension will have to be changed

lpecan commented 1 year ago

And here I try again to upload as a log file debug-Fri_Apr_21_19_59_57_2023.log

cagnulein commented 1 year ago

i will check it asap, i'm out of town for 2 days

cagnulein commented 1 year ago

@lpecan unfortunately the log is still truncated. I can't see the part of the settings and where you're disengaging the auto resistance. Which bike do you have? Are you using with peloton?

lpecan commented 1 year ago

stages sb20. Connected to the FTMS advertisement. This is just peloton use. I don't use qz to do zwift (as it is directly compatible).

Had the same result with another PZ on saturday. Let me see if I can pull that up.

Of note, I tried with a non PZ class today, and it appeared that disabling auto-resistance works. So I wonder if the ability to disable auto resistance is driven only by power targets (rather than resistance targets).

I'll try to upload another file tonight.

cagnulein commented 1 year ago

got the issue! @lpecan send me an email to roberto.viola83 at gmail.com indicating this ticket and if you are on android or iOS and i will send you the new beta ASAP. Thanks

cagnulein commented 1 year ago

@lpecan side note: can I ask you why you would like to disable the auto resistance?

lpecan commented 1 year ago

@lpecan side note: can I ask you why you would like to disable the auto resistance?

So there are a few reasons.

First, it seems like a side effect of this issue for me is that the 'spinups autoresistance' toggle is ineffective as well. Trying to maintain a high cadence at zone 1.5 or so causes my trainer to spin out.

Second, sometimes something just happens. I slowed down to 50 cadence to speak to my daughter in a zone 5 interval. But that caused the resistance to spike heavily to compensate--to the point that I could not turn the pedals. In zwift erg mode if you divert too much from the target output erg mode autodisables. that may normally be the case with QZ. I can't remember. But either way it would be simple enough to just shortly disable it. But I couldn't seem to do that.

There is a universe where whatever zone the peloton api is throwing is just wrong. And so you'd want to manually maintain the target output. But if resistance is not possible to disable, this is impossible.

I'll note that it is unlikely that I would want to do it for very long. But it is a useful toggle.

lpecan commented 1 year ago

got the issue! @lpecan send me an email to roberto.viola83 at gmail.com indicating this ticket and if you are on android or iOS and i will send you the new beta ASAP. Thanks

Do I take this to mean you don't need a new log? If you still do, I'll do a ride in the morning and try to capture it.

cagnulein commented 1 year ago

@lpecan no just download the latest version of qz and the issue is fixed Let me know

lpecan commented 1 year ago

@lpecan no just download the latest version of qz and the issue is fixed Let me know

Seemed to have the same issue still after upgrading. Wonder what it could be debug-Tue_Apr_25_21_37_07_2023.log

cagnulein commented 1 year ago

@lpecan actually in the log the patch is working

Tue Apr 25 21:39:03 2023 1682473143311 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "changePower ignored because auto resistance is disabled"

how do you notice that it's not working?

lpecan commented 1 year ago

I noticed that when I looked through the log. But it's definitely happening. At that very second, my cadence was low (29, i think) and it was probably extremely high resistance to be putting out over 100w at that cadence. Few seconds later, i probably (i know because I did it 4-5 times after selecting and unselecting the toggle) sped my legs up and the resistance fell dramatically (close to 100) to keep me somewhere around the 147 target power.

I'll try to take a video or screen capture

On Wed, Apr 26, 2023, 2:03 AM Roberto Viola @.***> wrote:

@lpecan https://github.com/lpecan actually in the log the patch is working

Tue Apr 25 21:39:03 2023 1682473143311 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "changePower ignored because auto resistance is disabled"

how do you notice that it's not working?

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

cagnulein commented 1 year ago

@lpecan got the issue

you didn't disable the auto resistance from the start, so qz sent at first the 147W request. Then the bike is keeping this target. Can you test it pressing the auto resistance from the start up of qz?

Then we should think how to disable it while you're riding Let me know

Tue Apr 25 21:38:59 2023 1682473139285 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter  40 -40 10 10"
Tue Apr 25 21:38:59 2023 1682473139367 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147"
Tue Apr 25 21:39:00 2023 1682473140284 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter  40 -40 10 10"
Tue Apr 25 21:39:00 2023 1682473140370 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147"
Tue Apr 25 21:39:01 2023 1682473141281 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter  35 -35 10 10"
Tue Apr 25 21:39:01 2023 1682473141370 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147"
Tue Apr 25 21:39:02 2023 1682473142274 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter  35 -35 10 10"
Tue Apr 25 21:39:02 2023 1682473142408 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147"
Tue Apr 25 21:39:03 2023 1682473143311 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "changePower ignored because auto resistance is disabled"
lpecan commented 1 year ago

Would be hard because the bike pairs instantly with qz at startup. Is there a setting in the menu to toggle to default to off? I always say yes to the "follow peloton" splash screen because i think once i say no, there's no controllable resistance after that no matter what. Am I correct?

On Wed, Apr 26, 2023, 5:59 AM Roberto Viola @.***> wrote:

@lpecan https://github.com/lpecan got the issue

you didn't disable the auto resistance from the start, so qz sent at first the 147W request. Then the bike is keeping this target. Can you test it pressing the auto resistance from the start up of qz?

Then we should think how to disable it while you're riding Let me know

Tue Apr 25 21:38:59 2023 1682473139285 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 40 -40 10 10" Tue Apr 25 21:38:59 2023 1682473139367 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:00 2023 1682473140284 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 40 -40 10 10" Tue Apr 25 21:39:00 2023 1682473140370 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:01 2023 1682473141281 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 35 -35 10 10" Tue Apr 25 21:39:01 2023 1682473141370 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:02 2023 1682473142274 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 35 -35 10 10" Tue Apr 25 21:39:02 2023 1682473142408 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:03 2023 1682473143311 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "changePower ignored because auto resistance is disabled"

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

lpecan commented 1 year ago

Also, i take your point about the bike "remembering" the last target power. But there must be a way to get it to "forget." Certainly there is in zwift. I wonder if it's like a null power or something.

Because if you're right, then even if disabled at the beginning of the ride, for the rest of the ride the bike will always be in erg mode, just at the last value if you disable the auto toggle.

On Wed, Apr 26, 2023, 6:06 AM Larry Pecan @.***> wrote:

Would be hard because the bike pairs instantly with qz at startup. Is there a setting in the menu to toggle to default to off? I always say yes to the "follow peloton" splash screen because i think once i say no, there's no controllable resistance after that no matter what. Am I correct?

On Wed, Apr 26, 2023, 5:59 AM Roberto Viola @.***> wrote:

@lpecan https://github.com/lpecan got the issue

you didn't disable the auto resistance from the start, so qz sent at first the 147W request. Then the bike is keeping this target. Can you test it pressing the auto resistance from the start up of qz?

Then we should think how to disable it while you're riding Let me know

Tue Apr 25 21:38:59 2023 1682473139285 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 40 -40 10 10" Tue Apr 25 21:38:59 2023 1682473139367 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:00 2023 1682473140284 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 40 -40 10 10" Tue Apr 25 21:39:00 2023 1682473140370 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:01 2023 1682473141281 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 35 -35 10 10" Tue Apr 25 21:39:01 2023 1682473141370 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:02 2023 1682473142274 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "filter 35 -35 10 10" Tue Apr 25 21:39:02 2023 1682473142408 Debug: ../src/bluetooth.cpp void bluetooth::debug(const QString &) " >> 05 93 00 // forcePower 147" Tue Apr 25 21:39:03 2023 1682473143311 Debug: ../src/bike.cpp virtual void bike::changePower(int32_t) "changePower ignored because auto resistance is disabled"

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

cagnulein commented 1 year ago

Would be hard because the bike pairs instantly with qz at startup. Is there a setting in the menu to toggle to default to off? I always say yes to the "follow peloton" splash screen because i think once i say no, there's no controllable resistance after that no matter what. Am I correct?

you should simply click on the disable auto resistance before starting the peloton workout, that's enough :)

cagnulein commented 1 year ago

Also, i take your point about the bike "remembering" the last target power. But there must be a way to get it to "forget." Certainly there is in zwift. I wonder if it's like a null power or something. Because if you're right, then even if disabled at the beginning of the ride, for the rest of the ride the bike will always be in erg mode, just at the last value if you disable the auto toggle.

yes of course its only a workaround but i would like to check if it's working in this way and then we can understand how to null the erg mode (i guess i can simply send a target resistance command)

also you didn't ask me about a question: why do you want to disabled erg mode? just out of curiosity

cagnulein commented 1 year ago

@lpecan I did the new patch in the 2.13.37 I will upload it today

lpecan commented 1 year ago

First of all, thanks. It's fun to work through this stuff with you. But I know you're incredibly busy with family and real job, etc. I've been an appreciative buymeacoffee subscriber for a long time, but that certainly doesn't entitle me or anyone else to a personal developer. So thank you.

As to your question, i think I tried to answer before but it probably got buried in the back and forth. There's a few scenarios that have come up where I've wanted to disable.

  1. During early spin ups the gradual increase is somewhere around Z2.0. That's around 150w for me. It's very difficult to maintain a high cadence at low power, and my trainer (both the sb20 and the kickr direct drive---which i don't think I've used with qz) would probably spin out. It's also not really possible to change the target power in the qz tile because qz resets the offset every time it goes to send a new value--which is constantly changing. I suppose I could disable the gradual increase in target power for warmup toggle as a workaround. Haven't tried that.

  2. Looking through the log files, I'm guessing QZ pulls the target zone first from the peloton API, and if that fails from home fitness buddy. It's fantastic, but both those data sources are occasionally wrong. That's normally not a big deal, but because I can't temporarily disable, on my trainer I would be stuck at the wrong wattage whether I want to be or not, unless I end the workout.

  3. Sometimes my legs slow down. If my kid comes to ask me a question, and I accidentally slow down to 50 cadence in a zone 5 effort, it's almost impossible to get back up to power, because the resistance goes super high to the point you can't pedal out of it. Zwift actually automatically deals with this by disabling erg mode if you fall too far outside of the target wattage. Similar to above, I could work around by tapping the minus button on the target power tile repeatedly. But with qz in pop-up mode and the tiles at 50%, this is pretty hard to do especially with my sweaty hands. Plus I think you can only tap it about once a second for a 10-watt decrease. So the process to get it from 300 watts to 150 w back to 300 w would probably take close to an entire minute

  4. On a trainer with a free hub, it's pretty close to impossible to keep ERG mode on out of the saddle. If I was going to do a lot of out of saddle work, I'd probably use my flywheel ic5 anyway, instead of the trainer. But it's something worth thinking about.

Here is my log from this morning. It is 26 MB and I didn't know if GitHub would let me upload. I did try to disable the magnet tile at startup and before the ride, but it didn't seem to do anything. I did click yes on the peloton follow resistance pop up

https://drive.google.com/file/d/16UW4KpFog1YkZRf7otOAl_lg3DnwNES_/view?usp=drivesdk

On Wed, Apr 26, 2023, 7:32 AM Roberto Viola @.***> wrote:

Also, i take your point about the bike "remembering" the last target power. But there must be a way to get it to "forget." Certainly there is in zwift. I wonder if it's like a null power or something. Because if you're right, then even if disabled at the beginning of the ride, for the rest of the ride the bike will always be in erg mode, just at the last value if you disable the auto toggle. … <#m9202727201644427551>

yes of course its only a workaround but i would like to check if it's working in this way and then we can understand how to null the erg mode (i guess i can simply send a target resistance command)

also you didn't ask me about a question: why do you want to disabled erg mode? just out of curiosity

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

cagnulein commented 1 year ago

thanks! yes exactly, I was about to suggest you to try the new setting to disable the erg mode during the warmup :) ok for 2. and 3. and 4.!

I will check the log

cagnulein commented 1 year ago

Log checked: got the issue this time. You click on the disabled icone BEFORE connecting to the bike :) with the 2.13.36 you need to press it after the connection to the bike but before starting the peloton workout.

Anyway let's wait the 2.13.37 so you can do this in realtime :) (theoretically :D)

lpecan commented 1 year ago

Got it. So do I read it correctly that now when you click the magnet with an FTMS device connected it sends a FTMS_SET_TARGET_POWER of "-1."?

On Wed, Apr 26, 2023 at 8:49 AM Roberto Viola @.***> wrote:

Log checked: got the issue this time. You click on the disabled icone BEFORE connecting to the bike :) with the 2.13.36 you need to press it after the connection to the bike but before starting the peloton workout.

Anyway let's wait the 2.13.37 so you can do this in realtime :) (theoretically :D)

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

cagnulein commented 1 year ago

nope @lpecan when you are doing a power workout and you are pressing the magnet icon, now qz sends a resistance request of the actual resistance value. This should interrupt the erg management on the bike (hopefully!)

lpecan commented 1 year ago

OK. I'll check tonight or in the morning.

On Wed, Apr 26, 2023 at 9:40 AM Roberto Viola @.***> wrote:

nope @lpecan https://github.com/lpecan when you are doing a power workout and you are pressing the magnet icon, now qz sends a resistance request of the actual resistance value. This should interrupt the erg management on the bike (hopefully!)

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

lpecan commented 1 year ago

Looks like it works!

On Wed, Apr 26, 2023, 9:41 AM Larry Pecan @.***> wrote:

OK. I'll check tonight or in the morning.

On Wed, Apr 26, 2023 at 9:40 AM Roberto Viola @.***> wrote:

nope @lpecan https://github.com/lpecan when you are doing a power workout and you are pressing the magnet icon, now qz sends a resistance request of the actual resistance value. This should interrupt the erg management on the bike (hopefully!)

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

cagnulein commented 1 year ago

great! let me know if you encounter some issues!