Zwift Setup

31.1.2020 detaillierte Beschreibung des Raspberry Pi Ant+

Grundlegend wird auf der Website von Zwift alles beschieben was man braucht, um selber „zwiften“ zu können.

Mein aktuelles Zwift Setup:

Trainingsrolle:

Wahoo Kickr Snap Hersteller Infos

Velo auf der Rolle:

älteres Wheeler Rennvelo, den Rennlenker habe ich durch einen Bikelenker ersetzt

PC:

Mainboard: ASUS PRIME X470-PRO

CPU: AMD Ryzen 7 2700X/3700MHz, AM4 8-Core, 20MB Cache

Grafikkarte: Phoenix Geforce GTX 1080ti 😉

RAM: Kingston DDR4 16GB 2666MHz

SSD: Samsung 970 EVO Plus, 250GB, M.2 2280

Netzteil: Chieftec, BDF-750C, 750W

Case: Cooler Master MasterBoX MB520 black

Lautsprecher: Logitech Z-333

Maus und Tastatur: Logitech wireless Desktop MK270

Monitor:

Samung UJ590 32″ 4K

Fan:

Xiaomi Standing Fan

Gestell für den PC, Monitor und die Lautsprecher:

Das Gestell ist ein Eigenbau aus MDF Platten

Beleuchtung:

Philips Hue Entertainment: 3x Philips Hue Play hinter dem Monitor und 2x Philips Hue White & Color Ambiance an der Decke.

LED Stripe an der Decke.

Weitere Komponenten:

Raspberry PI

Ubunut Server mit ioBrocker Instanz

Beschreibung des Systems:

Das ganze System wird per App, das auf dem Smartphone läuft, gestartet. (GUI in NodeRed programmiert, Logik in ioBroker)

Mit der App kann der Fan manuell, stufenlos gesteuert werden. Im automatischen Modus wird der Fan in Abhängigkeit der getretenen Leistung gesteuert. Die Leistung und Herzfrequenz wir per Ant+ von dem Raspberry empfangen und per MQTT an den ioBroker gesendet. Der ioBroker steuert dann entsprechend den Fan mit der gewünschten Geschwindigkeit an.

Der LED Stipe an der Decke zeigt in verschiedenen Farben die aktuelle Herzfrequenz Zone an. Dieser wird ebenfalls vom ioBroker angesteuert.

Die Philips Hue Lampen an der Decke und hinter dem Monitor passen sich der Farbe dem aktuellen Bild auf dem Monitor an, dies ergibt ein sehr coole Atmosphäre während dem „zwiften“.

Mit diesem Setup kann man bei einer Auflösung von 4K@60FPS zwiften. (Der Monitor begrenzt die Bildwiederholrate auf 60FPS ansonsten wäre mit der Hardware sicher noch mehr möglich)

Facebooktwittermail

3 Kommentare

  1. Hallo Em,

    Die Beleuchtungsfarben werden mit dem Philips Hue Entertainment System, 3x Philips Hue Play hinter dem Monitor und 2x Philips Hue White & Color Ambiance an der Decke, realisiert.

    Es gibt eine App von Philips für den PC, die dann die Farben auf dem Bildschirm erfasst und an die Philips-Huebridge weiterleitet.
    Die Huebridge wiederum steuert dann die Lampen mit den entsprechenden Farben an.
    https://www2.meethue.com/de-ch/entertainment/sync-with-pc

    Die Herzfrequenz wie auch der Wattwert werden per Ant+ vom Raspberry empfangen und per MQTT an den ioBroker gesendet.

    Vor der Lösung mit dem Raspberry hatte ich natürlich die zwift-mobile-api getestet.
    Meines Wissens braucht es aber ein spezielles Entwicklerkonto um die API von Zwift zu benutzen (Stand 27.01.2020)
    Daher habe ich diesen Ansatz wieder verworfen und habe es mit dem Raspberry umgesetzt.

    Den Code dazu werde ich hier später veröffentlichen.

    Ein Adapter für den ioBroker wäre natürlich der Hammer, aber ich habe zur Zeit keine freien Ressourcen um einen entsprechenden Adapter zu schreiben.

    Mit sportlichen Grüssen
    Reto

  2. Hallo,
    cool umgesetzt. Bin auch Zwifter. Lüftersteuerung erfolgt manuell über Drehencoder, siehe
    https://forum.arduino.cc/index.php?topic=372623.msg4206739#msg4206739
    Stellst du auch den Code vom Raspi bereit? Wie erfasst du die „Farbe“ des aktuellen Bildschirminhalt?
    Wenn ich richtig verstehe, kommt Herzfrequenz über ANT+. Hast du dir auch mal überlegt, die Daten direkt aus Zwift zu übernehmen und per MQTT bereitzustellen. Damit könnten vielfältige Daten für Lüfter, Licht etc. verwendet werden (Watt, …) https://www.npmjs.com/package/zwift-mobile-api
    Habe jedoch keine JS Erfahrung. Eine Portierung in einen ioBroker Adapter wäre super flexibel.
    Freue mich auf Antwort

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.