CLI tool and library for managing the Motorola MB8611 series modem and maybe other Motorola devices.
poetry add mb8611
pip install mb8611
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.
Refer to mb8611.api
files for fields. Almost every field type is a string.
GetHomeAddress
GetHomeConnection
GetMotoLagStatus
GetMotoStatusConnectionInfo
GetMotoStatusDownstreamChannelInfo
GetMotoStatusLog
GetMotoStatusLogXXX
GetMotoStatusSecAccount
GetMotoStatusSecXXX
GetMotoStatusSoftware
GetMotoStatusStartupSequence
GetMotoStatusUpstreamChannelInfo
GetNetworkModeSettings
Some actions require a specific payload:
Login
—LoginPayload
SetMotoLagStatus
—SetMotoLagStatusPayload
SetMotoStatusDSTargetFreq
— seeSetMotoStatusDSTargetFreqPayload
SetStatusLogSettings
— seeClearLogPayload
SetStatusSecuritySettings
— seeRebootPayload
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'}}
mb8611 --json conn | jq -r .MotoHomeOnline
Connected
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
- ------ ------ - ---- ---- --
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