Name | mb8611 JSON |
Version |
0.0.1
JSON |
| download |
home_page | https://github.com/Tatsh/mb8611 |
Summary | CLI tool for managing the Motorola MB8611 series modem and maybe other Motorola devices. |
upload_time | 2023-12-09 09:04:28 |
maintainer | |
docs_url | None |
author | Andrew Udvare |
requires_python | >=3.11,<4 |
license | MIT |
keywords |
command
line
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# MB8611 CLI
[![QA](https://github.com/Tatsh/mb8611/actions/workflows/qa.yml/badge.svg)](https://github.com/Tatsh/mb8611/actions/workflows/qa.yml)
[![Tests](https://github.com/Tatsh/mb8611/actions/workflows/tests.yml/badge.svg)](https://github.com/Tatsh/mb8611/actions/workflows/tests.yml)
[![Coverage Status](https://coveralls.io/repos/github/Tatsh/mb8611/badge.svg?branch=master)](https://coveralls.io/github/Tatsh/mb8611?branch=master)
[![Documentation Status](https://readthedocs.org/projects/mb8611/badge/?version=latest)](https://mb8611.readthedocs.io/en/latest/?badge=latest)
![PyPI - Version](https://img.shields.io/pypi/v/mb8611)
![GitHub tag (with filter)](https://img.shields.io/github/v/tag/Tatsh/mb8611)
![GitHub](https://img.shields.io/github/license/Tatsh/mb8611)
![GitHub commits since latest release (by SemVer including pre-releases)](https://img.shields.io/github/commits-since/Tatsh/mb8611/v0.0.1/master)
CLI tool and library for managing the Motorola MB8611 series modem and maybe other Motorola devices.
## Installation
### Poetry
```shell
poetry add mb8611
```
### Pip
```shell
pip install mb8611
```
## Command line usage
```plain
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:
- `Login` — [`LoginPayload`](mb8611/api/login.py)
- `SetMotoLagStatus` — [`SetMotoLagStatusPayload`](mb8611/api/settings.py)
- `SetMotoStatusDSTargetFreq` — see [`SetMotoStatusDSTargetFreqPayload`](mb8611/api/settings.py)
- `SetStatusLogSettings` — see [`ClearLogPayload`](mb8611/api/settings.py)
- `SetStatusSecuritySettings` — see [`RebootPayload`](mb8611/api/settings.py)
### Example
```python
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.
```python
{'GetHomeAddressResponse': {'GetHomeAddressResult': 'OK',
'MotoHomeIpAddress': '...',
'MotoHomeIpv6Address': '',
'MotoHomeMacAddress': '...',
'MotoHomeSfVer': '8611-19.2.18'}}
```
## Examples
### Check if the modem is online
```shell
mb8611 --output-json conn | jq -r .MotoHomeOnline
```
```plain
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)
```shell
mb8611 up -j | jq -r '.MotoConnUpstreamChannel[]|@csv' | tr -d '"' | tabulate -s ','
```
```plain
- ------ ------ - ---- ---- --
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`
Raw data
{
"_id": null,
"home_page": "https://github.com/Tatsh/mb8611",
"name": "mb8611",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.11,<4",
"maintainer_email": "",
"keywords": "command line",
"author": "Andrew Udvare",
"author_email": "audvare@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/85/3f/cfba8015acf323ff5f0a8af99ed1e73b256fd650d6aba4a16d099e8ac4d0/mb8611-0.0.1.tar.gz",
"platform": null,
"description": "# MB8611 CLI\n\n[![QA](https://github.com/Tatsh/mb8611/actions/workflows/qa.yml/badge.svg)](https://github.com/Tatsh/mb8611/actions/workflows/qa.yml)\n[![Tests](https://github.com/Tatsh/mb8611/actions/workflows/tests.yml/badge.svg)](https://github.com/Tatsh/mb8611/actions/workflows/tests.yml)\n[![Coverage Status](https://coveralls.io/repos/github/Tatsh/mb8611/badge.svg?branch=master)](https://coveralls.io/github/Tatsh/mb8611?branch=master)\n[![Documentation Status](https://readthedocs.org/projects/mb8611/badge/?version=latest)](https://mb8611.readthedocs.io/en/latest/?badge=latest)\n![PyPI - Version](https://img.shields.io/pypi/v/mb8611)\n![GitHub tag (with filter)](https://img.shields.io/github/v/tag/Tatsh/mb8611)\n![GitHub](https://img.shields.io/github/license/Tatsh/mb8611)\n![GitHub commits since latest release (by SemVer including pre-releases)](https://img.shields.io/github/commits-since/Tatsh/mb8611/v0.0.1/master)\n\nCLI tool and library for managing the Motorola MB8611 series modem and maybe other Motorola devices.\n\n## Installation\n\n### Poetry\n\n```shell\npoetry add mb8611\n```\n\n### Pip\n\n```shell\npip install mb8611\n```\n\n## Command line usage\n\n```plain\nUsage: mb8611 [OPTIONS] {addr|address|clear-log|conn|connection|connection-\n info|conninfo|down|downstream|lag|lag-\n status|log|reboot|software|software-status|startup|startup-\n sequence|up|upstream}\n\n Main CLI.\n\nOptions:\n -H, --host TEXT Host to connect to.\n -d, --debug Enable debug level logging.\n -j, --json Only output JSON. Encoded lists (tables) will still be\n parsed.\n -p, --password TEXT Administrator password.\n -u, --username TEXT Administrator username.\n --help Show this message and exit.\n```\n\n## Library usage\n\nRefer to `mb8611.api` files for fields. Almost every field type is a string.\n\n### Actions\n\n- `GetHomeAddress`\n- `GetHomeConnection`\n- `GetMotoLagStatus`\n- `GetMotoStatusConnectionInfo`\n- `GetMotoStatusDownstreamChannelInfo`\n- `GetMotoStatusLog`\n- `GetMotoStatusLogXXX`\n- `GetMotoStatusSecAccount`\n- `GetMotoStatusSecXXX`\n- `GetMotoStatusSoftware`\n- `GetMotoStatusStartupSequence`\n- `GetMotoStatusUpstreamChannelInfo`\n- `GetNetworkModeSettings`\n\nSome actions require a specific payload:\n\n- `Login` \u2014 [`LoginPayload`](mb8611/api/login.py)\n- `SetMotoLagStatus` \u2014 [`SetMotoLagStatusPayload`](mb8611/api/settings.py)\n- `SetMotoStatusDSTargetFreq` \u2014 see [`SetMotoStatusDSTargetFreqPayload`](mb8611/api/settings.py)\n- `SetStatusLogSettings` \u2014 see [`ClearLogPayload`](mb8611/api/settings.py)\n- `SetStatusSecuritySettings` \u2014 see [`RebootPayload`](mb8611/api/settings.py)\n\n### Example\n\n```python\nimport pprint\n\nfrom mb8611.client import Client\n\nwith Client(the_password) as client:\n addr = client.call_hnap('GetHomeAddress')\n # Fully typed dictionary\n assert addr['GetHomeAddressResponse']['GetHomeAddressResult'] == 'OK'\n pprint.pprint(addr)\n```\n\n`Client` implements a context manager. Calling `Client.login` unnecessary when using it with the\n`with` statement.\n\n```python\n{'GetHomeAddressResponse': {'GetHomeAddressResult': 'OK',\n 'MotoHomeIpAddress': '...',\n 'MotoHomeIpv6Address': '',\n 'MotoHomeMacAddress': '...',\n 'MotoHomeSfVer': '8611-19.2.18'}}\n```\n\n## Examples\n\n### Check if the modem is online\n\n```shell\nmb8611 --output-json conn | jq -r .MotoHomeOnline\n```\n\n```plain\nConnected\n```\n\n### Display the modem's Upstream Bonded Channels\n\nThe output is a list of lists. Columns are:\n\n- Channel\n- Lock Status\n- Channel Type\n- Channel ID\n- Symb. Rate (Ksym/sec)\n- Freq. (MHz)\n- Pwr (dBmV)\n\n```shell\nmb8611 up -j | jq -r '.MotoConnUpstreamChannel[]|@csv' | tr -d '\"' | tabulate -s ','\n```\n\n```plain\n- ------ ------ - ---- ---- --\n1 Locked SC-QAM 1 5120 17.6 43\n2 Locked SC-QAM 2 5120 24 47\n3 Locked SC-QAM 3 5120 30.4 43\n4 Locked SC-QAM 4 5120 36.8 44\n- ------ ------ - ---- ---- --\n```\n\n## Known issues\n\n**Note:** The modem does not require any authentication for the currently working actions such as\n`addr`.\n\nThe following actions do not work as they require proper authentication (these return `'UN-AUTH'`\nat this time):\n\n- `clear-log` / `SetStatusLogSettings`\n- `SetStatusSecuritySettings`\n- `SetMotoLagStatus`\n- `SetMotoStatusDSTargetFreq`\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CLI tool for managing the Motorola MB8611 series modem and maybe other Motorola devices.",
"version": "0.0.1",
"project_urls": {
"Documentation": "https://mb8611.readthedocs.io/",
"Homepage": "https://github.com/Tatsh/mb8611",
"Repository": "https://github.com/Tatsh/mb8611"
},
"split_keywords": [
"command",
"line"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fe3c1afea5ffa6726cd775f963477f0e8dbae93541d3efaeba78f617ab3e0835",
"md5": "c015d835d369a67d247787c88835bf9f",
"sha256": "ea1c0334a065d524ff7693e8b421ad514edf118833f5630c42c400f2d2641d03"
},
"downloads": -1,
"filename": "mb8611-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c015d835d369a67d247787c88835bf9f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<4",
"size": 13661,
"upload_time": "2023-12-09T09:04:21",
"upload_time_iso_8601": "2023-12-09T09:04:21.537648Z",
"url": "https://files.pythonhosted.org/packages/fe/3c/1afea5ffa6726cd775f963477f0e8dbae93541d3efaeba78f617ab3e0835/mb8611-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "853fcfba8015acf323ff5f0a8af99ed1e73b256fd650d6aba4a16d099e8ac4d0",
"md5": "c0ac4172f7b3538ddf0fdac866731b51",
"sha256": "26a34f0bdc156de061c87c375613099124f9c366fa7f7beb0fe9ba3377719e84"
},
"downloads": -1,
"filename": "mb8611-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c0ac4172f7b3538ddf0fdac866731b51",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<4",
"size": 14061,
"upload_time": "2023-12-09T09:04:28",
"upload_time_iso_8601": "2023-12-09T09:04:28.620388Z",
"url": "https://files.pythonhosted.org/packages/85/3f/cfba8015acf323ff5f0a8af99ed1e73b256fd650d6aba4a16d099e8ac4d0/mb8611-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-09 09:04:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Tatsh",
"github_project": "mb8611",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mb8611"
}