Giter VIP home page Giter VIP logo

pymoof's Introduction

pymoof

ReadTheDocs PyPI version Tests

Connect to your Vanmoof S3 and X3 through bluetooth.

Installation

Install python 3.7+, then use pip to install pymoof. pip install pymoof

Usage

pymoof was tested to work on MacOS 12.1, Ubuntu 20.04.3 LTS, and a Raspberry Pi 3 b+ running Raspberry Pi OS (32-bit) / 2021-10-30.

from pymoof.clients.sx3 import SX3Client
import bleak

...

device = ...
encryption_key = ...
user_key_id = ...

async with bleak.BleakClient(device) as bleak_client:
	client = SX3Client(bleak_client, encryption_key, user_key_id)
	await client.authenticate()

You must have an instantiated bleak client that is connected to the bike. See pymoof.tools.discover_bike to determine which device is your bike and pymoof.tools.retrieve_encryption_key to connect to Vanmoof servers to get your encryption key.

See example.py for additional usage.

Contributing

Contributions are welcome and encouraged! Every bit helps and credit will be given.

Ways you can help:

Reporting Bugs

You can report bugs through the github issue tracker: https://github.com/quantsini/pymoof/issues

Useful information to include when reporting bugs:

  • Version of pymoof
  • The operating system where pymoof was used
  • What Vanmoof bike was used
  • Detailed steps on reproducing an issue

Help with reverse engineering

Vanmoof bikes communicate through Bluetooth Low Energy. I've tried my best to get all the BLE GATT UUIDs, however, some reverse engineering is needed to figure out what the payloads represent. I suggest using a packet sniffer like wireshark to analyze data from the official Vanmoof app and the bike.

Writing Documentation

Good documentation is always good!

Getting Started with Development

You want to contribute? Awesome! Here are some steps to get you up and running. This project uses Poetry for package and dependency management and tox for tests.

  1. Create a fork of the pymoof github repo.
  2. Clone it locally:
git clone [email protected]:<your username>/pymoof.git
  1. Get the latest version of poetry, a package and dependency management tool.
  2. Install dependencies
poetry install
  1. Activate your shell. This should put you in a virtualenv that allows you to run tests.
poetry shell
  1. You should now be able to run tests and make modifications. You can run tests by running tox under poetry
poetry run tox
  1. Go forth and make great changes!

pymoof's People

Contributors

quantsini avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.