Skip to content

Tatsh/mb8611

Repository files navigation

mb8611

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 --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

About

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

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Languages