This is a python library to interact with a Huawei modem over HTTP API.
The library has been tested on these devices:
Please let me know if you tested it successfully with other modems as well.
requests
library (and its dependencies) is required.
six
library (and its dependencies for Python 2 and 3 compatibility)
typing
library (support for type hints)
This is requirements.txt
content:
requests>=2.25.1
six>=1.15.0
typing>=3.7.4.3
pip install huawei-modem-api-client
import huaweisms.api.user
import huaweisms.api.wlan
import huaweisms.api.sms
ctx = huaweisms.api.user.quick_login("myusername", "mypassword")
print(ctx)
# output: <ApiCtx modem_host=192.168.8.1>
# sending sms
huaweisms.api.sms.send_sms(
ctx,
'phone-number',
'this is the sms message'
)
# connected devices
device_list = huaweisms.api.wlan.get_connected_hosts(ctx)
Note: The default modem host is assumed to be 192.168.8.1
. If that is not the case for you, you can specify your modem ip as follows:
import huaweisms.api.user
ctx = huaweisms.api.user.quick_login("myusername", "mypassword", modem_host='10.11.12.13')
print(ctx)
#output: <ApiCtx modem_host=10.11.12.13>
When the router uses HTTPS instead of HTTP, you can pass the uri_scheme
when creating the context instance which
becomes used on subsequent api calls that use the same context.
import huaweisms.api.user
ctx = huaweisms.api.user.quick_login(
'username',
'password',
modem_host='192.168.12.13',
uri_scheme='https'
)
If the router that uses HTTPS uses self-signed certificates, there will be SSL errors. You can ignore certificate validation/verification as follows:
import huaweisms.api.user
ctx = huaweisms.api.user.quick_login(
'username',
'password',
modem_host='192.168.12.13',
uri_scheme='https',
verify=False
)
Send me a PM if you want to contribute.
This project is licensed under the MIT License - see the LICENSE.md file for details