360manu / kettlerUSB2BLE

Bridge from USB to Bluetooth low energy for old Kettler Trainers (Ergorace, ..) for Zwift and other apps
MIT License
38 stars 28 forks source link

Not able to control the power on the Kettler from Zwift #20

Open thesoulpole opened 2 years ago

thesoulpole commented 2 years ago

Hi, I have been using the bridge for a year (VERY happy, MANY thanks to you;) But a big problem appeared last days of December - Let me explain: My son used the bridge 2-3 times on his Xmas holiday, from HIS laptop (and his Z account). After that, when I used it, Zwift sees all the data FROM the Kettler, but no longer can change the power on the K. (fyi I am using it in erg mode, he tried it in both sim and erg). (so now I change the power with the buttons on the Kettler, looking at what Z says to workout with, and Z sees all the settings. Manual automation;) I tried putting the SD card in a different R Pi (3B+), and a different USB cable, but no change. So it's either the Kettler (something broke), or something happened to the installation on the card. Can you suggest what to do, what to test and how? Thanks in advance

ps - I tried to install a new version on a new SD card before bothering you, but have some problems with that as well - I describe it in another Issue report.

360manu commented 2 years ago

Hello

Zwift recently updated their Bluetooth FTMS library. It's less fault tolerant and I had to correct the code. (Have a look at the most recently updated file in GitHub)

You can connect to your pi and update this file.

To connect directly, you can use an xterminal 1) connect to rapsihotspot WiFi network. 2) user : pi Password: Password 3) go to kettlerUSb folder dans update the code

Emmanuel

Le mar. 18 janv. 2022, 16:16, Piotr Sienkiewicz @.***> a écrit :

Hi, I have been using the bridge for a year (VERY happy, MANY thanks to you;) But a big problem appeared last days of December - Let me explain: My son used the bridge 2-3 times on his Xmas holiday, from HIS laptop (and his Z account). After that, when I used it, Zwift sees all the data FROM the Kettler, but no longer can change the power on the K. (fyi I am using it in erg mode, he tried it in both sim and erg). (so now I change the power with the buttons on the Kettler, looking at what Z says to workout with, and Z sees all the settings. Manual automation;) I tried putting the SD card in a different R Pi (3B+), and a different USB cable, but no change. So it's either the Kettler (something broke), or something happened to the installation on the card. Can you suggest what to do, what to test and how? Thanks in advance

ps - I tried to install a new version on a new SD card before bothering you, but have some problems with that as well - I describe it in another Issue report.

— Reply to this email directly, view it on GitHub https://github.com/360manu/kettlerUSB2BLE/issues/20, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADACXMOQT7A3LFW4PCJ433DUWV75LANCNFSM5MHOEQGA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

thesoulpole commented 2 years ago

Hi, No luck, did not work. On the Pi Zero, and the installation that I was using for the last year (i.e. same SD card), I replaced the contents of the fitness-control-point-caracteristic.js file with the contents of the new file from your repo. But the functioning seems the same. Still no control by Zwift of the power on the Kettler. Am I doing something wrong?

360manu commented 2 years ago

Hummm I need to try myself but it was ok last Saturday.

Of course you rebooted the pi :) ??

Le mar. 18 janv. 2022, 18:54, Piotr Sienkiewicz @.***> a écrit :

Hi, No luck, did not work. On the Pi Zero, and the installation that I was using for the last year (i.e. same SD card), I replaced the contents of the fitness-control-point-caracteristic.js file with the contents of the new file from your repo. But the functioning seems the same. Still no control by Zwift of the power on the Kettler. Am I doing something wrong?

— Reply to this email directly, view it on GitHub https://github.com/360manu/kettlerUSB2BLE/issues/20#issuecomment-1015667513, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADACXMNOCDXIEAFPLQW5AUTUWWSONANCNFSM5MHOEQGA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

thesoulpole commented 2 years ago

hi. valid question ;) Actually yesterday - not sure if I restarted the Pi, but since I understand bridge gets loaded when I run sudo node server.js, this should work anyway. BUT - today, I restarted the whole thing, and same, no control of power. IMPORTANT - I cloned your WHOLE repo onto the Pi Zero to a new directory, and in this directory ran npm install. So a complete new build, but on the same OS, bluetooth stuff etc that was working more then a year, and olny new repo and new build. And - 9 screens of error outputs (attached). Please have a look, as I think (hope) for you it will immediately tell you whats going on.

errors npm.txt

thesoulpole commented 2 years ago

by the way - when I installed (yesterday), on RPi 3B+ and Debian 10, the whole installation for start (meaning setting current to 1.2 A, node.js 8.10 etc etc) first the symlink errors (I gave you a screen already) and then doing npm install I got the errors (many screens) like today.

thesoulpole commented 2 years ago

sorry, closed by mistake...

thesoulpole commented 2 years ago

another info - today, when I started Zwift (to test the bridge), Zwift updated again. Hope they did not make any more changes in the interface...

360manu commented 2 years ago

Hello

I also tried with other bike simulator, and it is OK. My first assumptions would be

I understand that it's dummy, but I can't figure out any other issue. Connection is OK, Kettler is detected, the server is running...

Emmanuel

360manu commented 2 years ago

Let me check if I posted the full code :)

It's OK

thesoulpole commented 2 years ago

I checked, the fitness_control_point... it is the new version (it has: properties: ['write', 'indicate'],) however, I am not running the app in the new folder, because the build does not run with out errors, so in the new folder it is bad. (that's what I have in the attached file above)

(as a matter of fact, when I tried to run sudo node server.js on the new SD and RPi 3B+, AFTER the same errors, Z does not see the sensors. Or to be more precise, when searching, it sees KettlerBLE only in thePower Source box, and then it says No Signal (or No connection, I don't remember which) So the build really does not succeed...

thesoulpole commented 2 years ago

so I was running it in an OLD directory, but with the file (fitness_controll_point...) contents changed.

thesoulpole commented 2 years ago

IMPORTANT new fact. I was wondering if the Kettler hardware was not broken. But I CAN CONTROL the power via the web server that you built. From an iphone, on the IP of the Pi, port 3000. When I change power on the phone on the web inetrface, it DOES change on the Kettler. So it is something between Zwift on may Macbook and the bridge.

thesoulpole commented 2 years ago

What type of device are you running Zwift on? MacOS? iOS? Windows computer?

Because: 1 - it works ok on my iPhone 6s (the Z app started not in ERG mode even though I chose a workout, but when I switched it to ERG (on te onscree menu) it controlled the power on the Kettler OK) 2 - Rouvy works both on Macbook and iPhone 3 - RGT Cycling (they have a new version) works on iPhone, but does not even see the sensors on the Macbook

360manu commented 2 years ago

Hello

Ipad and android. From recents comments on the zwift forum, you are not alone. Seems thzt the desktop version is problematic event with market trainers

Le jeu. 20 janv. 2022 à 01:54, Piotr Sienkiewicz @.***> a écrit :

What type of device are you running Zwift on? MacOS? iOS? Windows computer?

Because: 1 - it works ok on my iPhone 6s (the Z app started not in ERG mode even though I chose a workout, but when I switched it to ERG (on te onscree menu) it controlled the power on the Kettler OK) 2 - Rouvy works both on Macbook and iPhone 3 - RGT Cycling (they have a new version) works on iPhone, but does not even see the sensors on the Macbook

— Reply to this email directly, view it on GitHub https://github.com/360manu/kettlerUSB2BLE/issues/20#issuecomment-1017008281, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADACXMJRGTAF7DBMTUQFZBLUW5MLXANCNFSM5MHOEQGA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

thesoulpole commented 2 years ago

oh, wonderful :(

However - I just found a WORKAROUND! I can run Zwift on my Macbook (sensible screen size!) but connect to the bridge not direct, but via the Zwift Companion app. And then it all works! So, it's clear that Zwift BT interface on the MacOS is screwed, and on iOS it's ok. (It seems same situation with RGT Cycling, but I see no workaround. Yet. RGT also have a special app, RGT Remote, but it is only a remote control for the main app)

I'm not really surprised. When looking at the BT specifications last year (trying to modify some of your code), I was appalled at the mess in the documentation. Elements undocumented, inconsistencies, conflicting parts. It's a miracle anything works...

thesoulpole commented 2 years ago
thesoulpole commented 2 years ago

Zwift updated their MasOS app on Friday again. Now it works, even without using Zwift Companion to connect to Kettler).

BeeAlarmed commented 1 year ago

Hi all, not sure if you are still on this, but there were some issues with the BLE implementation (The CCCD was redundantly defined). I've created a fork and fixed it. for me it works now on Windows and Android. Feel free to test it as well: https://github.com/BeeAlarmed/kettlerUSB2BLE I'm still doing some tests, afterwards I'll create a PR BR Fabian

sirmoon137 commented 1 year ago

Hi all, not sure if you are still on this, but there were some issues with the BLE implementation (The CCCD was redundantly defined). I've created a fork and fixed it. for me it works now on Windows and Android. Feel free to test it as well: https://github.com/BeeAlarmed/kettlerUSB2BLE I'm still doing some tests, afterwards I'll create a PR BR Fabian

your version is working patly for me, I got all infos of my Kettler DX1 in Zwift. BUT Swift and also the webpage is not updating the force on my DX1 and also I could not find the sensors as standard bluetooth sensors to use with my Apple Watch and other training Apps. Any idea what I could check?

BeeAlarmed commented 1 year ago

I got it working on swift and Kinomaps, but still there were things that I didn't like. You can try to debug the scripts by starting the code from command line. As far as I remember there were several DEBUG variables that can be set to true, to see some output on the console. And regarding the WebApp, try open the WebDeveloper mode of your browser and check for errors there. I suspect that the hard coded domain name does not match your raspberry's Ip adresse.

Sorry that I cannot help more, but I stopped using all those BLE Apps, as they didn't motivate me in the end.

Robyrobo76 commented 9 months ago

I got it working on swift and Kinomaps, but still there were things that I didn't like. You can try to debug the scripts by starting the code from command line. As far as I remember there were several DEBUG variables that can be set to true, to see some output on the console. And regarding the WebApp, try open the WebDeveloper mode of your browser and check for errors there. I suspect that the hard coded domain name does not match your raspberry's Ip adresse.

Sorry that I cannot help more, but I stopped using all those BLE Apps, as they didn't motivate me in the end.

HI BeeAlarmed, I installed your version on a fresh installed Raspi 0 W. Talking of motivation personally I tested all apps but the app that really make the difference for me is Rouvy as what I like about biking is being in the nature and looking the landscape and I found that having real landscapes with augmented reality is very motivating for me. I can repeat the same tracks I did in the reality.
Anyway currently I am not able to have Rouvy for windows connecting the KettlerUSB, while rouvy for Android is working ok. Would you like to help me debugging this issue? From kettler console it seems windows PC is contacting kettlerusb but is not able to "subscribe" to the service. Any idea would be appreciated.

Roberto.