Skip to main content

CLI tool for managing the Motorola MB8611 series modem and maybe other Motorola devices.

Project description

MB8611 CLI

QA Tests Coverage Status Documentation Status PyPI - Version GitHub tag (with filter) GitHub GitHub commits since latest release (by SemVer including pre-releases)

CLI tool and library for managing the Motorola MB8611 series modem and maybe other Motorola devices.

Installation

Poetry

poetry add mb8611

Pip

pip install mb8611

Command line usage

Usage: mb8611 [OPTIONS] {addr|address|clear-log|conn|connection|connection-
              info|conninfo|down|downstream|lag|lag-
              status|log|reboot|software|software-status|startup|startup-
              sequence|up|upstream}

  Main CLI.

Options:
  -H, --host TEXT      Host to connect to.
  -d, --debug          Enable debug level logging.
  -j, --json           Only output JSON. Encoded lists (tables) will still be
                       parsed.
  -p, --password TEXT  Administrator password.
  -u, --username TEXT  Administrator username.
  --help               Show this message and exit.

Library usage

Refer to mb8611.api files for fields. Almost every field type is a string.

Actions

  • GetHomeAddress
  • GetHomeConnection
  • GetMotoLagStatus
  • GetMotoStatusConnectionInfo
  • GetMotoStatusDownstreamChannelInfo
  • GetMotoStatusLog
  • GetMotoStatusLogXXX
  • GetMotoStatusSecAccount
  • GetMotoStatusSecXXX
  • GetMotoStatusSoftware
  • GetMotoStatusStartupSequence
  • GetMotoStatusUpstreamChannelInfo
  • GetNetworkModeSettings

Some actions require a specific payload:

Example

import pprint

from mb8611.client import Client

with Client(the_password) as client:
    addr = client.call_hnap('GetHomeAddress')
    # Fully typed dictionary
    assert addr['GetHomeAddressResponse']['GetHomeAddressResult'] == 'OK'
    pprint.pprint(addr)

Client implements a context manager. Calling Client.login unnecessary when using it with the with statement.

{'GetHomeAddressResponse': {'GetHomeAddressResult': 'OK',
                            'MotoHomeIpAddress': '...',
                            'MotoHomeIpv6Address': '',
                            'MotoHomeMacAddress': '...',
                            'MotoHomeSfVer': '8611-19.2.18'}}

Examples

Check if the modem is online

mb8611 --output-json conn | jq -r .MotoHomeOnline
Connected

Display the modem's Upstream Bonded Channels

The output is a list of lists. Columns are:

  • Channel
  • Lock Status
  • Channel Type
  • Channel ID
  • Symb. Rate (Ksym/sec)
  • Freq. (MHz)
  • Pwr (dBmV)
mb8611 up -j | jq -r '.MotoConnUpstreamChannel[]|@csv' | tr -d '"' | tabulate -s ','
-  ------  ------  -  ----  ----  --
1  Locked  SC-QAM  1  5120  17.6  43
2  Locked  SC-QAM  2  5120  24    47
3  Locked  SC-QAM  3  5120  30.4  43
4  Locked  SC-QAM  4  5120  36.8  44
-  ------  ------  -  ----  ----  --

Known issues

Note: The modem does not require any authentication for the currently working actions such as addr.

The following actions do not work as they require proper authentication (these return 'UN-AUTH' at this time):

  • clear-log / SetStatusLogSettings
  • SetStatusSecuritySettings
  • SetMotoLagStatus
  • SetMotoStatusDSTargetFreq

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mb8611-0.0.1.tar.gz (14.1 kB view hashes)

Uploaded Source

Built Distribution

mb8611-0.0.1-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page