Sync blood pressure and weight measurements from OMRON connect to Garmin Connect.
omramin pulls measurements from your OMRON account and uploads them to Garmin Connect using their respective web APIs. It is intended as a small bridge service, not a full replacement for either app.
Note: For development and testing, consider using a secondary Garmin Connect account.
- Synchronizes:
- Weight measurements from supported OMRON scales
- Blood pressure measurements from supported OMRON blood pressure monitors
- Bridges OMRON connect → Garmin Connect
- Supports multiple devices and users per device (OMRON user slots)
- Installation
- Shell Completion
- Updating
- Usage
- Commands
- Changelog
- Related Projects
- Contributing
- License
Quick install:
# Using uv (recommended)
uv pip install "git+https://github.com/bugficks/omramin.git"
# Using pip
pip install "git+https://github.com/bugficks/omramin.git"
# Run without installing (using uvx)
uvx --from "git+https://github.com/bugficks/omramin.git" omramin initThis installs the base package. Most users can start with omramin init right away.
If you want to discover OMRON devices via Bluetooth scanning (instead of using API-based discovery or manual MAC entry), install the bluetooth extra:
# Using uv
uv pip install "git+https://github.com/bugficks/omramin.git[bluetooth]"
# Using pip
pip install "git+https://github.com/bugficks/omramin.git[bluetooth]"Without Bluetooth support, you can still:
- Use API-based device discovery:
omramin init --discovery-method api - Add devices manually by MAC address:
omramin add --macaddr XX:XX:XX:XX:XX:XX
Clone and install in editable mode:
git clone https://github.com/bugficks/omramin.git
cd omramin
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -Ue ".[bluetooth]"Enable tab completion for command and option names:
Zsh:
# Add to ~/.zshrc
eval "$(_OMRAMIN_COMPLETE=zsh_source omramin)"Bash:
# Add to ~/.bashrc
eval "$(_OMRAMIN_COMPLETE=bash_source omramin)"Fish:
# Add to ~/.config/fish/completions/omramin.fish
_OMRAMIN_COMPLETE=fish_source omramin | sourcePowerShell 7+:
# Install completion (run once)
python -m click_pwsh install omramin
# Then restart PowerShellTo update completion after upgrading omramin:
python -m click_pwsh update omraminAfter adding the completion script, restart your shell or source the config file:
source ~/.zshrc # or ~/.bashrc# Using uv
uv pip install --upgrade "git+https://github.com/bugficks/omramin.git"
# Using pip
pip install --upgrade "git+https://github.com/bugficks/omramin.git"
# Editable installations
git pull && pip install -Ue ".[bluetooth]"Run the setup wizard:
omramin initThis will:
- Authenticate with Garmin Connect and OMRON Connect
- Discover and configure your OMRON devices
- Create a config file
Then sync measurements:
omramin syncPartial setup:
omramin init --skip-garmin # OMRON only
omramin init --skip-devices # Authentication only
omramin init --discovery-method api # Skip Bluetooth, use APIConfig file location (platform-native):
- Linux:
~/.config/omramin/config.json - macOS:
~/Library/Application Support/omramin/config.json - Windows:
%APPDATA%\omramin\config.json
Token storage:
- macOS/Linux: System keyring (Keychain / SecretService)
- Windows: File-based (WinVault has size limits)
Override paths with environment variables:
OMRAMIN_CONFIG=/path/to/config.json omramin syncAdvanced: Custom Keyring Backends
Change token storage backend:
# Use file backend on macOS/Linux
OMRAMIN_KEYRING_BACKEND=file omramin sync
# Use encrypted file backend
OMRAMIN_KEYRING_PASSWORD="secret" omramin sync
# Custom file path
OMRAMIN_KEYRING_FILE=/path/to/tokens.json omramin --keyring-backend file syncThird-party backends (e.g., GPG-encrypted, Pass):
pip install keyrings.cryptfile
export PYTHON_KEYRING_BACKEND=keyrings.cryptfile.cryptfile.CryptFileKeyring
omramin syncSee keyring backends for more options.
Three ways to add devices:
1. Automatic (during init):
omramin init # Discovers devices via API or Bluetooth2. Interactive add:
omramin add # Scans for Bluetooth devices in pairing mode3. Manual (if you know the MAC address):
omramin add --macaddr 00:11:22:33:44:55 --category scale --name "My Scale"Get MAC addresses from your OMRON account:
omramin omron listomramin sync # Sync today only (default)
omramin sync --days 7 # Sync last 7 days
omramin sync --from 2024-01-01 --to 2024-01-31 # Date rangeSync specific devices:
omramin sync "My Scale" # By name
omramin sync --category BPM # All blood pressure monitorsDuplicates are automatically detected and skipped.
Enable verbose logging:
omramin --debug syncTargeted debugging:
OMRAMIN_OMRON_DEBUG=1 omramin sync # OMRON API only
OMRAMIN_GARMIN_DEBUG=1 omramin sync # Garmin API only| Command | Description |
|---|---|
init |
Interactive setup wizard |
sync |
Sync measurements to Garmin Connect |
add |
Add a device |
list |
List configured devices |
config |
Edit device settings |
remove |
Remove a device |
garmin |
Garmin Connect authentication (login/logout) |
omron |
OMRON Connect operations (login/logout/list/export) |
# Authentication
omramin garmin login
omramin omron login
# Device management
omramin omron list # Show devices in OMRON account
omramin add # Add device interactively
omramin list # Show configured devices
# Sync
omramin sync # Sync all devices (today only)
omramin sync --days 7 # Sync last 7 daysHelp:
omramin --help
omramin [command] --helpexport2garmin
Synchronizes data from Mi Body Composition Scale 2 and OMRON blood pressure monitors to Garmin Connect.
Contributions are welcome. Bug reports, feature requests, and pull requests help improve:
- Device compatibility
- Error handling and diagnostics
Open an issue or submit a PR on GitHub.
This project is distributed under the GPLv2 license.