Skip to main content

python-mobius

A Python client for the Bluetooth protocol of "Mobius" aquarium devices: EcoTech Marine (VorTech and Vectra pumps, Radion lights), AquaIllumination (Prime, Hydra, Orbit, Axis), Neptune Systems and NYOS. Built on bleak.

Not affiliated with or endorsed by any of these companies. This is an independent implementation of the protocol for interoperability with hardware you own, based on reverse engineering of the Mobius app and public community research. The protocol is documented in documentation/, in enough detail to implement it in another language.

Features

  • Discovery without connecting: model, serial number and tank (pan_id) from BLE advertisements.
  • Lights: channels, schedules, and the current intensity computed the way the app does it (schedule intensity, lunar phases, acclimation, hyperdrive).
  • Pumps: speed, flow, motor power and other sensor values; schedules and the active mode; battery backup settings and whether the pump runs on battery.
  • Schedules: read and write, as editable JSON or as the app's .mob template files; light schedule groups are handled.
  • Scenes: list, start (whole tank) and cancel.
  • Settings and commands: advanced features (Local Control, LED auto dim, fan speed, fan shutdown), lunar phases, schedule intensity, time sync, reboot, restart all.
  • One connection per tank: every other device of the tank is reached through it over the Thread mesh (RelayedMobiusDevice).
  • Batched polling: everything a poll needs in one request.
  • Diagnostics: attribute dumps, firmware and hardware information, Thread and clock diagnostics.
  • mobius-scan command line tool.

Supported devices

PrimitiveType Devices Support
VisualV1 Radion, Prime, Hydra Tested
VorTechV1, TurtleV1 VorTech, Axis Tested
PumpV1, VectraV1, AlpacaV1 Nero, Vectra, Orbit Same format as the tested pumps; not tested
CoffeeV1 NYOS Quantum Experimental: decoded with the pump format, not tested
DoseV1, HotSauceV1 Dosers, sensors Identity only

See known gaps for what isn't covered or tested.

Install

pip install python-mobius
# recommended: more reliable connections
pip install "python-mobius[retry]"

Python 3.9 or newer.

Quick start

import asyncio
from mobius import scan_for_mobius_devices_with_info, group_by_pan_id, MobiusDevice

async def main():
    found = await scan_for_mobius_devices_with_info()
    for pan_id, members in group_by_pan_id(found).items():
        print(f"tank {pan_id:#06x}:")
        for device, info in members:
            print(f"  {info.serial}  {info.model.name if info.model else info.model_raw}")

    device, info = found[0]
    async with MobiusDevice(device, serial=info.serial) as d:
        print(await d.get_device_summary())

asyncio.run(main())

Reaching the rest of the tank through one connection:

from mobius import RelayedMobiusDevice

async with MobiusDevice(serial="00000000000002") as gateway:
    for peer in await gateway.discover_mesh_peers_auto():
        print(await RelayedMobiusDevice(gateway, peer).get_device_info())

Command line:

mobius-scan                                  # list devices by tank
mobius-scan --by-serial SERIAL --dump-schedule
mobius-scan --by-serial SERIAL --relay-target OTHER_SERIAL
mobius-scan --help

The full API and every CLI option are described in documentation/16-python-library.md.

Development

git clone https://code.r3pek.org/r3pek/python-mobius
cd python-mobius
pip install -e ".[dev]"
pytest

Tests use captured packets and advertisements from real devices where possible.

ha-mobius is a Home Assistant integration built on this library.

License

GPLv2, see LICENSE.

Acknowledgments

The Reef2Reef thread "Controlling Mobius enabled VorTech pump using 0-10V and BLE" and the danmrossi/MobiusControl project, whose work this builds on. The reverse engineering and implementation were done with substantial help from Claude (Anthropic).

Metadata

Release files for python-mobius 0.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-mobius 0.10.1
File Size Uploaded
python_mobius-0.10.1.tar.gz 246.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-mobius 0.10.1
File Interpreter ABI Platform
python_mobius-0.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 355.7 kB

Release files / python_mobius-0.10.1.tar.gz

Download URL python_mobius-0.10.1.tar.gz
Size 246.2 kB
Tags Source
SHA-256 checksum
How to use checksums
14dc4c0d6d1989df10f9772351b36eb4922bd28d9d8e06e54fe2d22e142b1fc8
BLAKE2b-256 checksum
How to use checksums
b89590c41be1e5a211cef048a30df599eeeca9edb31fe92ad77bfe455828f876
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / python_mobius-0.10.1-py3-none-any.whl

Download URL python_mobius-0.10.1-py3-none-any.whl
Size 109.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1c8e23bed8b35e89f22d7aa5be93905ad7f9a566d407cb66078e33091d00095a
BLAKE2b-256 checksum
How to use checksums
585b3976568713c7e08b7a2a3546eb0431541444244f3ecb7ae3d8bde08cc9d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

0.10.1 This release

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page