๐Ÿ’“ ๅฐ็ฑณๆ‰‹็Žฏๅฎžๆ—ถๅฟƒ็Ž‡ๆ•ฐๆฎ้‡‡้›† - Your Soul, Your Beats!

Related tags

DevOps Tools mebeats
Overview

๐Ÿ’“ mebeats Go Go Report Card

ๅฐ็ฑณๆ‰‹็Žฏๅฎžๆ—ถๅฟƒ็Ž‡ๆ•ฐๆฎ้‡‡้›† - Your Soul, Your Beats!

  • cmd/mebeats-client: the mebeats client. It collects the heart rate data from Mi Band and reports to server.
  • cmd/mebeats-server: the mebeats sever. It receives the heart rate data and generate the badge.

Requirement

  • MiBand (2, 3, 4, 5, 6)
  • macOS 11.3.1 or higher

Run server

git clone [email protected]:wuhan005/mebeats.git

cd mebeats/cmd/mebeats-server

go build . && ./mebeats-server --key=<your_secret_key>

Server runs on 0.0.0.0:2830.

Run client

git clone [email protected]:wuhan005/mebeats.git

cd mebeats/cmd/mebeats-client

go build . && ./mebeats-client --addr=<mi_band_addr> --auth-key=<mi_band_auth_key> --server-addr=<mebeats_server_addr> --server-key=<your_secret_key>

License

MIT

Issues
  • My macOS Bug Sur could not connect to MiBand3 all the time

    My macOS Bug Sur could not connect to MiBand3 all the time

    The mebeats-client seems to stopped at this line of code. iPhone's bluetooth could always discover and connect to band successfully, but mac couldn't. Any way to fix this, thanks.

    opened by IcedOtaku 2
  • ๆ”ฏๆŒๅฐ็ฑณๆ‰‹็Žฏ6ๅ—๏ผŸ

    ๆ”ฏๆŒๅฐ็ฑณๆ‰‹็Žฏ6ๅ—๏ผŸ

    ๆˆ‘ๆต‹่ฏ•ไบ†ๅฐ็ฑณๆ‰‹็Žฏ6๏ผŒAuth้ชŒ่ฏๆ”ถๅˆฐ็š„่ฟ”ๅ›ž็ ๆ˜ฏ100307 ๆˆ‘็”จ็š„ๆ˜ฏjsๆต‹่ฏ• async authenticate() { await this.startNotifications(this.chars.auth, async (e) => { const value = e.target.value.buffer; const cmd = buf2hex(value.slice(0, 3)); if (cmd === "100101") { console.log("Set new key OK"); } else if (cmd === "100201") { const number = value.slice(3); console.log("Received authentication challenge: ", buf2hex(value.slice(3))); const key = aesjs.utils.hex.toBytes(this.authKey); const aesCbc = new aesjs.ModeOfOperation.cbc(key); const out = aesCbc.encrypt(new Uint8Array(number)); const cmd2 = concatBuffers(new Uint8Array([3, 0]), out); console.log("Sending authentication response"); await this.chars.auth.writeValue(cmd2); } else if (cmd === "100301") { await this.onAuthenticated(); } else if (cmd === "100308") { console.log("Received authentication failure"); } else { throw new Error(Unknown callback, cmd='${cmd}'); } }); await this.chars.auth.writeValue(Uint8Array.from([2, 0])); }

    help wanted 
    opened by foenix66 1
  • Does it support reading broadcast HR ?

    Does it support reading broadcast HR ?

    The Miband supports broadcasting heart rate to other devices. In this situation, the client can read the heart rate without auth key. Most of the sports watch supports broadcasting heart rate.

    opened by wh201906 0
Owner
E99p1ant
Gopher ๐Ÿญ / PHPer ๐Ÿ˜ / CTFer ๐Ÿšฉ @vidar-team / Be cool, but also be warm. โ˜บ๏ธ
E99p1ant
Supporting your devops by shortening your strings using common abbreviations and clever guesswork

abbreviate Shorten your strings using common abbreviations. Supported by Tidelift Motivation This tool comes out of a frustration of the name of resou

Pascal Dennerly 182 Jun 30, 2022
Kusk makes your OpenAPI definition the source of truth for API resources in your cluster

Kusk - use OpenAPI to configure Kubernetes What is Kusk? Developers deploying their REST APIs in Kubernetes shouldn't have to worry about managing res

kubeshop 6 Jun 27, 2022
A shields.io API for your youtube channel to protect your api key

Youtube-Channel-Badge A shields.io API for your youtube channel to protect your

Mallikarjun H 0 Dec 23, 2021
A simple download file manager that sorts your files into your desired folders, This was meant to be a small project and nothing big.

GoDFM Simply go to the tags and download the .exe file (or compile it yourself by running go build). Add it to your environment paths by going to sett

null 2 Mar 1, 2022
Enable your Go applications to self update

go-selfupdate Enable your Golang applications to self update. Inspired by Chrome based on Heroku's hk. Features Tested on Mac, Linux, Arm, and Windows

Mark 993 Jun 24, 2022
Jenkins CLI allows you manage your Jenkins as an easy way

Quick start ็ฎ€ไฝ“ไธญๆ–‡ Jenkins CLI Jenkins CLI allows you manage your Jenkins in an easy way. No matter if you're a plugin developer, administrator or just

Jenkins Chinese Community 327 Jul 1, 2022
Manage your ssh alias configs easily.

manssh manssh is a command line tool for managing your ssh alias config easily, inspired by storm project, powered by Go. Note: This project is actual

Wendell Sun 266 Jun 20, 2022
grafana-sync Keep your grafana dashboards in sync.

grafana-sync Keep your grafana dashboards in sync. Table of Contents grafana-sync Table of Contents Installing Getting Started Pull Save all dashboard

Maksym Postument 154 Jul 1, 2022
k8s-image-swapper Mirror images into your own registry and swap image references automatically.

k8s-image-swapper Mirror images into your own registry and swap image references automatically. k8s-image-swapper is a mutating webhook for Kubernetes

Enrico Stahn 306 Jun 30, 2022
Easily run your Compose application to the cloud with compose-cli

This CLI tool makes it easy to run Docker containers and Docker Compose applications in the cloud using either Amazon Elastic Container Service (ECS) or Microsoft Azure Container Instances (ACI) using the Docker commands you already know.

Docker 823 Jun 24, 2022
๐Ÿถ Kubernetes CLI To Manage Your Clusters In Style!

K9s - Kubernetes CLI To Manage Your Clusters In Style! K9s provides a terminal UI to interact with your Kubernetes clusters. The aim of this project i

Fernand Galiana 16.9k Jul 4, 2022
Open URL in your local web browser from the SSH-connected remote environment.

opener Open URL in your local web browser from the SSH-connected remote environment. How does opener work? opener is a daemon process that runs locall

Kazuki Suda 55 Jun 29, 2022
Validation of best practices in your Kubernetes clusters

Best Practices for Kubernetes Workload Configuration Fairwinds' Polaris keeps your clusters sailing smoothly. It runs a variety of checks to ensure th

Fairwinds 2.6k Jun 30, 2022
๐Ÿ›… Backup your Kubernetes Stateful Applications

Stash Stash by AppsCode is a cloud-native data backup and recovery solution for Kubernetes workloads. If you are running production workloads in Kuber

Stash by AppsCode 1.1k Jun 29, 2022
A cli that exposes your local resources to kubernetes

ktunnel Expose your local resources to kubernetes ?? Table of Contents About Getting Started Usage Documentation Contributing Authors Acknowledgments

Omri Eival 516 Jul 5, 2022
Bubbly is an open-source platform that gives you confidence in your continuous release process.

Bubbly Bubbly - Release Readiness in a Bubble Bubbly emerged from a need that many lean software teams practicing Continuous Integration and Delivery

Valocode 33 Jun 11, 2022
Putting serverless on your server

Matterless: putting serverless on your server Serverless computing enables you to build applications that automatically scale with demand, and your wa

Zef Hemel 25 Mar 20, 2022
Testcontainers is a Golang library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests.

When I was working on a Zipkin PR I discovered a nice Java library called Testcontainers. It provides an easy and clean API over the go docker sdk to

null 1.5k Jul 4, 2022
Collect data about your dependencies

Collect data about your dependencies Features and Data Sources: Go modules, runs tests, detects tests and benchmarks Flexible rendering with Graphviz,

Nikolay Dubina 35 Jan 6, 2022