cagnulein / qdomyos-zwift

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

[BUG] Incline not working bor Wahoo Kickr Bike v1 #2224

Open mtluczek opened 3 months ago

mtluczek commented 3 months ago

Describe the bug Incline control doesn't control the bike which has incline control.

To Reproduce Steps to reproduce the behavior:

  1. Go to QZ Domyos App
  2. Try to +/- incline

Expected behavior Should change the current incline.

Smartphone (please complete the following information):

Append a debug log

Archive.zip

Additional context iFit also doesn't detect the incline capabilities (max/min in its device info settings after successful pairing)

cagnulein commented 3 months ago

hi, these are fit files. i need debug log, the one with the debug prefix

mtluczek commented 3 months ago

debug-czw__mar_14_15_44_34_2024.log Of course, sorry!

cagnulein commented 3 months ago

thanks! I will check this in the next days! Thanks

Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud

Il giorno gio 14 mar 2024 alle ore 16:02 mtluczek @.***> ha scritto:

debug-czw__mar_14_15_44_34_2024.log https://github.com/cagnulein/qdomyos-zwift/files/14604087/debug-czw__mar_14_15_44_34_2024.log Of course, sorry!

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

mtluczek commented 3 months ago

I really appreciate your help. Will be training resistance only :) and changing incline myself by then manually :)))

cagnulein commented 3 months ago

hi @mtluczek i was checking the log but i need it one from a real ifit session with qz. this is just a simple connection to your trainer. Thanks

mtluczek commented 3 months ago

I'll upload it in the morning tomorrow, I thought it's an issue originally caused by the QZ app, which is not able to control my incline/decline. Also iFIT detects the bike as machine with incline/decline max/min not specified in the machine info.

mtluczek commented 3 months ago

Please find attached the correct log from iFit workout. Hope it's enough, let me know. debug-pt__mar_15_08_47_04_2024.log

cagnulein commented 3 months ago

ok done. That's what I did:

send me an email to roberto.viola83 at gmail.com indicating this ticket and if you are on android or iOS. Thanks

mtluczek commented 3 months ago

It's kind of awkward to change inclination when you ride on a flat terrain with higher resistance, I'd say I prefer to change inclination myself rather than resigning from resistance - the only problem is that bike locks external control when you change incline. Besides, does inclination itself change the resistance or is it just some feeling you're getting? I mean you're not working against gravity as on real bike.

As far as I understand correctly, due to outdated iFit profile we can't have inclination data as input, right? If so, can I implement changes to this virtual ifit profile to update it with new profile? I'm a Sr level programmer. I guess it's more about changing all those hex values and having those messages read on some iFit device with inclination supported?

cagnulein commented 3 months ago

It's kind of awkward to change inclination when you ride on a flat terrain with higher resistance, I'd say I prefer to change inclination myself rather than resigning from resistance

are you saying so because ifit is doing so in their app?

Besides, does inclination itself change the resistance or is it just some feeling you're getting?

i don't know how it is on your bike. I guess your bike changes the inclination and the resistance at the same time

As far as I understand correctly, due to outdated iFit profile we can't have inclination data as input, right?

exactly

If so, can I implement changes to this virtual ifit profile to update it with new profile? I'm a Sr level programmer. I guess it's more about changing all those hex values and having those messages read on some iFit device with inclination supported?

it's one of the hardest ticket that I handled and implies a lot of reverse enginnering. So if you would like to have an idea, check the virtualbike module, on the ifit part and you will have an outlook of what I'm saying :)

mtluczek commented 3 months ago

It's kind of awkward to change inclination when you ride on a flat terrain with higher resistance, I'd say I prefer to change inclination myself rather than resigning from resistance

are you saying so because ifit is doing so in their app?

Yeah, they've got interval trainings when resistance is increased on the same terrain level for some time or other unreal situations.

Besides, does inclination itself change the resistance or is it just some feeling you're getting?

i don't know how it is on your bike. I guess your bike changes the inclination and the resistance at the same time

Seems like it doesn't when I tested it in locked mode, so it only tilts but I still pedal with the same resistance. I'll check on iFit to make sure, but it seems you might want to leave the resistance changed as well as it was previously done.

As far as I understand correctly, due to outdated iFit profile we can't have inclination data as input, right?

exactly

If so, can I implement changes to this virtual ifit profile to update it with new profile? I'm a Sr level programmer. I guess it's more about changing all those hex values and having those messages read on some iFit device with inclination supported?

it's one of the hardest ticket that I handled and implies a lot of reverse enginnering. So if you would like to have an idea, check the virtualbike module, on the ifit part and you will have an outlook of what I'm saying :)

Yeah, I've seen it - I undestand the code but there's no way to tell what the hex values represent and how did you get them and what they control :)

cagnulein commented 3 months ago

Yeah, they've got interval trainings when resistance is increased on the same terrain level for some time or other unreal situations.

awful :D

Seems like it doesn't when I tested it in locked mode, so it only tilts but I still pedal with the same resistance. I'll check on iFit to make sure, but it seems you might want to leave the resistance changed as well as it was previously done.

ok in case I will revert it. Let me know

Yeah, I've seen it - I undestand the code but there's no way to tell what the hex values represent and how did you get them and what they control :)

i sniffed them from a real device from an user. That's why it's so difficult!

mtluczek commented 3 months ago

I tested it and there's no incline change but it blocks my motor like I'm getting resistance and then getting it blocked more, then released, then blocked... like some interval signals that do something strange. Definitely no inclination changes visible. Would it be first possible to check if you app at all changes inclination via the UI without iFit? I'm quite scared to test it now, so I won't break the bike mechanism or something - that was scary. I even locked the bike and it remained doing that - I had to unplug it and then it only reset.

cagnulein commented 3 months ago

So uninstall this version. I will revert it

Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud

Il giorno ven 15 mar 2024 alle 12:43 mtluczek @.***> ha scritto:

I tested it and there's no incline change but it blocks my motor like I'm getting resistance and then getting it blocked more, then released, then blocked... like some interval signals that do something strange. Definitely no inclination changes visible. Would it be first possible to check if you app at all changes inclination via the UI without iFit? I'm quite scared to test it now, so I won't break the bike mechanism or something - that was scary. I even locked the bike and it remained doing that - I had to unplug it and then it only reset.

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

cagnulein commented 3 months ago

reverted let me know how you would like to proceed. if you want you can check with zwift if with qz in the middle, qz could control the inclination correctly

Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud

Il giorno ven 15 mar 2024 alle ore 12:52 cagnulein @.***> ha scritto:

So uninstall this version. I will revert it

Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud

Il giorno ven 15 mar 2024 alle 12:43 mtluczek @.***> ha scritto:

I tested it and there's no incline change but it blocks my motor like I'm getting resistance and then getting it blocked more, then released, then blocked... like some interval signals that do something strange. Definitely no inclination changes visible. Would it be first possible to check if you app at all changes inclination via the UI without iFit? I'm quite scared to test it now, so I won't break the bike mechanism or something - that was scary. I even locked the bike and it remained doing that - I had to unplug it and then it only reset.

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

mtluczek commented 3 months ago

First of all the question is if QZ app can control bike resistance via UI? (also with VirtualFit on)? As I went to iFit and didn't even feel any resistance change although it changed in the app. I experimented with various gains but it didn't change anything for iFit. I understand that QZ app itself can't control the incline although there's incline icon with + and - signs it doesn't work, is that right?

cagnulein commented 3 months ago

First of all the question is if QZ app can control bike resistance via UI? (also with VirtualFit on)?

without virtual ifit with the resistance tile plus and minus button with virtual ifit, with the gear tiles

I understand that QZ app itself can't control the incline although there's incline icon with + and - signs it doesn't work, is that right?

yes i didn't add this in the code but I can do it

mtluczek commented 3 months ago

First of all the question is if QZ app can control bike resistance via UI? (also with VirtualFit on)?

without virtual ifit with the resistance tile plus and minus button with virtual ifit, with the gear tiles

Ohh ok, I looked into wrong control, great!

I understand that QZ app itself can't control the incline although there's incline icon with + and - signs it doesn't work, is that right?

yes i didn't add this in the code but I can do it

That'd be the best to do first to find out if the bike indeed react correctly to incline/decline.

cagnulein commented 3 months ago

That'd be the best to do first to find out if the bike indeed react correctly to incline/decline.

sure. just a confirmation: if you increase the inclination from the bike directly, do you see the inclination value on the qz tile changing?

mtluczek commented 3 months ago

ok, so none of these work on my bike

mtluczek commented 3 months ago

That'd be the best to do first to find out if the bike indeed react correctly to incline/decline.

sure. just a confirmation: if you increase the inclination from the bike directly, do you see the inclination value on the qz tile changing?

no, also the bike immediately locks when I change inclination manually

cagnulein commented 3 months ago

so let me understand: without ifit, only qz. open it and try to change the inclination from the bike does it work? do you see the inclination on qz?

it's important to do this test with qz just open without pressing anything else on qz.

your bike have different modes, so if qz sends the resistance, the bike is going into resistance mode locking down the inclination thing i guess

mtluczek commented 3 months ago

here's the log debug-pt__mar_15_15_23_17_2024.log Changing resistance with Virtual Fit off in QZ app doesn't affect the bike resistance. Are you sure you modify the SIM mode? Because when I run the Wahoo app it only works when I go to SIM mode and increase the grade percentage ration - the only controllable there. Then it works really were, but nothing like that happens with QZ

cagnulein commented 3 months ago

nope, with ifit i'm using the resistance mode. that's why. let me check the log, it should be supported also on your bike, isn't it? on the wahoo app do you see the resistance mode?

mtluczek commented 3 months ago

so let me understand: without ifit, only qz. open it and try to change the inclination from the bike does it work? do you see the inclination on qz? Without IFIt, QZ, VirtualBike mode off, neither resistance nor inclination works.

Changing the inclination on the bike will never show in your app as Bike automatically locks the external control when I change incline manually.

it's important to do this test with qz just open without pressing anything else on qz. I didn't

your bike have different modes, so if qz sends the resistance, the bike is going into resistance mode locking down the inclination thing i guess

Wahoo Kickr Bike has NO RESISTANCE mode due to brake constructions, as they explain on their website. It has only SIM mode, the SIM mode in Wahoo app works perfectly and changes the resistance correctly. If you don't use SIM mode then it will never work :(

mtluczek commented 3 months ago

nope, with ifit i'm using the resistance mode. that's why. let me check the log, it should be supported also on your bike, isn't it? on the wahoo app do you see the resistance mode?

No, this is what I wrote in one of my first messages and sent the link to the Wahoo website - there is no resistance mode, it's not visible in Wahoo app. So only SIM mode - that probably explains - at least the resistance issue. But actually I'd at least be extremely happy if we get to steer the resistance in iFit the same way as it's controlled by Wahoo app in SIM mode by this grade change.

mtluczek commented 3 months ago

https://support.wahoofitness.com/hc/en-us/articles/204281764-Trainer-Control-Modes-for-KICKR-CORE-SNAP-or-BIKE-in-the-Wahoo-app

They say: Due to brake design, Resistance mode is not available for BIKE and BIKE shift models.

cagnulein commented 3 months ago

hah that's so strange so. OK so first of all do this

without ifit, only qz. open it and try to change the inclination from the bike does it work? do you see the inclination on qz?

it's important to do this test with qz just open without pressing anything else on qz.

mtluczek commented 3 months ago

hah that's so strange so. OK so first of all do this

It doesn't work - the bike immediately locks the device from external input - you need to unlock it to resume any other control. So it won't even pass the incline data back to QZ as it locks. But anyways - it locks input so it could theoretically send output - but evidently it doesn't as nothing changes in QZ.

mtluczek commented 3 months ago

I turned on VirtualBike as well and retried and also nothing - though for a second the speed went up to 168 km/h - that's all what happened.

cagnulein commented 3 months ago

It doesn't work - the bike immediately locks the device from external input - you need to unlock it to resume any other control. So it won't even pass the incline data back to QZ as it locks. But anyways - it locks input so it could theoretically send output - but evidently it doesn't as nothing changes in QZ.

this doesn't happen instead with the wahoo app?

cagnulein commented 3 months ago

@mtluczek from the nrfconnect app, can you please read the value of this characteristic on your bike

image

i guess power and resistance are not avaialable. if so i can use this information to disable the resistance mode for your bike

mtluczek commented 3 months ago

0340 0000 0860 0000

cagnulein commented 3 months ago

could you please make a screenshot about this?

mtluczek commented 3 months ago

It doesn't show these details which you provided as list of strings, just this value :( What exact is the app name an version that you're using? nrf Connect for Mobile?

cagnulein commented 3 months ago

yes nrfconnect on mobile, but on ios doesn't show the description. but they should be 32bits, your string is 128bits so that's why i would like to see a screenshot, also of the Target Setting characteristic

mtluczek commented 3 months ago

IMG_C9C3C1E3C7AA-1

cagnulein commented 3 months ago

Ok I will check it in the next days. On the weekend I'm trying to stay with my family. Thanks so far!

cagnulein commented 2 months ago

Hi @mtluczek done now. What I did in the version that I'm sending is using only the inclination. I didn't add to the virtual ifit yet. Let's try if it's working correctly with the inclination tile only. Let me know!

mtluczek commented 2 months ago

Hi @mtluczek done now. What I did in the version that I'm sending is using only the inclination. I didn't add to the virtual ifit yet. Let's try if it's working correctly with the inclination tile only. Let me know!

It's working perfect right now, thanks! How can we handle the resistance (no resistance mode in Wahoo Kickr Bike) ? Should I open another ticket for this? ((we've got whole context and screenshots described here) If we've got both working then probably iFit will work without a problem to both change incline and resistance proportionally basing on just resistance change messages from iFit. I noticed in 90% of the videos it is indeed the same proportion (just interval training is strange).

cagnulein commented 2 months ago

ok that's perfect! so i understood the issue of this https://github.com/cagnulein/qdomyos-zwift/issues/2224#issuecomment-1999483179 I wasn't updating the current inclination (instead in the patch that I did today I added this). So before restoring the logic for ifit, could you please add here a debug log from qz while you are changing the inclination from qz? I would like to see if I can get the inclination from the bike directly. It will be much cleaner in this way

Thanks! We're near!

mtluczek commented 2 months ago

debug-pon__mar_18_15_17_41_2024.log Here it is...

cagnulein commented 2 months ago

ok thanks, it sends it but probably it sends the motor steps

pon. mar 18 15:17:49 2024 1710771469710 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 eb 81" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:49 2024 1710771469910 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 2 2
pon. mar 18 15:17:50 2024 1710771470108 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 8e 82" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:50 2024 1710771470193 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 2.5 2.5
pon. mar 18 15:17:50 2024 1710771470325 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 32 83" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:50 2024 1710771470476 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 3 3
pon. mar 18 15:17:50 2024 1710771470613 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 d6 83" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:50 2024 1710771470797 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 3.5 3.5
pon. mar 18 15:17:50 2024 1710771470971 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 7a 84" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:51 2024 1710771471059 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 4 4
pon. mar 18 15:17:51 2024 1710771471182 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 1e 85" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:51 2024 1710771471375 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 4.5 4.5
pon. mar 18 15:17:51 2024 1710771471583 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 c2 85" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:53 2024 1710771473729 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 4 4
pon. mar 18 15:17:53 2024 1710771473883 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 1e 85" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:54 2024 1710771474278 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 3.5 3.5
pon. mar 18 15:17:54 2024 1710771474466 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 7a 84" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:54 2024 1710771474477 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 3 3
pon. mar 18 15:17:54 2024 1710771474573 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 d6 83" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:54 2024 1710771474661 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 2.5 2.5
pon. mar 18 15:17:54 2024 1710771474845 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 2.5 2.5
pon. mar 18 15:17:54 2024 1710771474857 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 32 83" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:55 2024 1710771475011 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 2 2
pon. mar 18 15:17:55 2024 1710771475176 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 1.5 1.5
pon. mar 18 15:17:55 2024 1710771475348 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 8e 82" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:55 2024 1710771475360 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 1 1
pon. mar 18 15:17:55 2024 1710771475511 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 1 1
pon. mar 18 15:17:55 2024 1710771475540 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 eb 81" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:55 2024 1710771475650 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 47 81" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:55 2024 1710771475677 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 0.5 0.5
pon. mar 18 15:17:56 2024 1710771476031 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 a3 80" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:56 2024 1710771476745 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 0 0
pon. mar 18 15:17:56 2024 1710771476906 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 ff 7f" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:56 2024 1710771476961 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -0.5 -0.5
pon. mar 18 15:17:57 2024 1710771477144 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -0.5 -0.5
pon. mar 18 15:17:57 2024 1710771477295 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 5b 7f" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:57 2024 1710771477310 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -1 -1
pon. mar 18 15:17:57 2024 1710771477407 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 b7 7e" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:57 2024 1710771477828 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -1.5 -1.5
pon. mar 18 15:17:58 2024 1710771478028 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -1.5 -1.5
pon. mar 18 15:17:58 2024 1710771478172 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 13 7e" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:58 2024 1710771478228 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2 -2
pon. mar 18 15:17:58 2024 1710771478383 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 70 7d" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:17:59 2024 1710771479168 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2.5 -2.5
pon. mar 18 15:17:59 2024 1710771479361 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2.5 -2.5
pon. mar 18 15:17:59 2024 1710771479529 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2.5 -2.5
pon. mar 18 15:17:59 2024 1710771479537 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 cc 7c" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:00 2024 1710771480545 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3 -3
pon. mar 18 15:18:00 2024 1710771480708 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 28 7c" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:00 2024 1710771480762 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3.5 -3.5
pon. mar 18 15:18:00 2024 1710771480927 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3.5 -3.5
pon. mar 18 15:18:01 2024 1710771481098 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 84 7b" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:01 2024 1710771481111 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -4 -4
pon. mar 18 15:18:01 2024 1710771481214 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 e0 7a" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:01 2024 1710771481244 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -4.5 -4.5
pon. mar 18 15:18:01 2024 1710771481405 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 3c 7a" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:03 2024 1710771483579 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -4 -4
pon. mar 18 15:18:03 2024 1710771483796 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -4 -4
pon. mar 18 15:18:03 2024 1710771483962 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3.5 -3.5
pon. mar 18 15:18:04 2024 1710771484021 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 e0 7a" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:04 2024 1710771484137 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3.5 -3.5
pon. mar 18 15:18:04 2024 1710771484297 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3.5 -3.5
pon. mar 18 15:18:04 2024 1710771484316 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 84 7b" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:04 2024 1710771484429 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3 -3
pon. mar 18 15:18:04 2024 1710771484595 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -3 -3
pon. mar 18 15:18:04 2024 1710771484616 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 28 7c" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:04 2024 1710771484730 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2.5 -2.5
pon. mar 18 15:18:04 2024 1710771484829 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2.5 -2.5
pon. mar 18 15:18:04 2024 1710771484900 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 cc 7c" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:05 2024 1710771485080 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2 -2
pon. mar 18 15:18:05 2024 1710771485246 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -2 -2
pon. mar 18 15:18:05 2024 1710771485290 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 70 7d" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:05 2024 1710771485403 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -1.5 -1.5
pon. mar 18 15:18:05 2024 1710771485556 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -1.5 -1.5
pon. mar 18 15:18:05 2024 1710771485696 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 13 7e" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:06 2024 1710771486630 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -1 -1
pon. mar 18 15:18:06 2024 1710771486813 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -1 -1
pon. mar 18 15:18:06 2024 1710771486850 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 b7 7e" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:06 2024 1710771486947 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -0.5 -0.5
pon. mar 18 15:18:07 2024 1710771487130 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -0.5 -0.5
pon. mar 18 15:18:07 2024 1710771487280 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true -0.5 -0.5
pon. mar 18 15:18:07 2024 1710771487339 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 5b 7f" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:07 2024 1710771487430 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 0 0
pon. mar 18 15:18:07 2024 1710771487630 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 0 0
pon. mar 18 15:18:07 2024 1710771487727 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 ff 7f" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:07 2024 1710771487830 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 0.5 0.5
pon. mar 18 15:18:08 2024 1710771488118 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 a3 80" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"
pon. mar 18 15:18:09 2024 1710771489765 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/bike.cpp virtual void bike::changeInclination(double, double) "bike::changeInclination" true 0 0
pon. mar 18 15:18:10 2024 1710771490067 Debug: /Users/cagnulein/qdomyos-zwift/src/devices/wahookickrsnapbike/wahookickrsnapbike.cpp void wahookickrsnapbike::characteristicChanged(const QLowEnergyCharacteristic &, const QByteArray &) " << " "01 46 01 00 ff 7f" "{a026e005-0a7d-4ab3-97fa-f1500f9feb8b}"

so I'm keeping my actual implementation for now. Ok let's add again the ifit implementation. I will send you a new one when i'm ready!

mtluczek commented 2 months ago

I think when I pushed it longer to increase more then it increased the incline smoothly.

But maybe first we'd test if the resistance change works in SIM mode from UI. The bike doesn't change resistance with incline, so in iFit also resistance has to be increased/decreased proportionally to incline.

cagnulein commented 2 months ago

But maybe first we'd test if the resistance change works in SIM mode from UI. The bike doesn't change resistance with incline, so in iFit also resistance has to be increased/decreased proportionally to incline.

yes it's what I did here https://github.com/cagnulein/qdomyos-zwift/commit/0d735c419241b03186a3a7172f827be32806e2e5

mtluczek commented 2 months ago

so it it the Pelaton R(%) value that I should change?

cagnulein commented 2 months ago

no during the auto resistance on ifit, qz is sending the inclination instead of the resistance to your bike. so it will do automatic everything and you can override it using the gears tile. Isn't what you would like?

mtluczek commented 2 months ago

But this way I'll only have automatic incline change in iFit and manual resistance option. It'd be perfect to change resistance along with inclination automatically proportionally to changed inclination. My bike doesn't automatically adjust resistance with inclination change as far as I've checked it.

Btw. the gear option, as we discussed it, didn't change my resistance also probably due to the resistance mode not present in Wahoo Kickr Bike.

pon., 18 mar 2024 o 16:13 Roberto Viola @.***> napisał(a):

no during the auto resistance on ifit, qz is sending the inclination instead of the resistance to your bike. so it will do automatic everything and you can override it using the gears tile. Isn't what you would like?

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

cagnulein commented 2 months ago

It'd be perfect to change resistance along with inclination automatically proportionally to changed inclination

it's what i did. I mean I added the conversion for the resistance to the incliantion. I added also 2 settings in order that you can calibrate this alghoritm and I also added the gears tile so that you can override it.

My bike doesn't automatically adjust resistance with inclination change as far as I've checked it.

so i don't understand: how should I change the resistance? I guess your bike can ONLY change the inclination from bluetooth and so I should use inclination to change both incliantion and resistance. What am I missing?

mtluczek commented 2 months ago

It'd be perfect to change resistance along with inclination automatically proportionally to changed inclination

it's what i did. I mean I added the conversion for the resistance to the incliantion. I added also 2 settings in order that you can calibrate this alghoritm and I also added the gears tile so that you can override it.

Ahh right ok.. So gears change gain and offset, right?

My bike doesn't automatically adjust resistance with inclination change as far as I've checked it.

so i don't understand: how should I change the resistance? I guess your bike can ONLY change the inclination from bluetooth and so I should use inclination to change both incliantion and resistance. What am I missing?

I forgot iFit can't change inclination and if you added resistance change with inclination it should be perfect.

Will you load the new version to the test so I could check it with iFit?