# salamek/huawei-lte-api architecture

> Architecture diagram of the GitHub repository salamek/huawei-lte-api, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/salamek/huawei-lte-api
- Repository: https://github.com/salamek/huawei-lte-api

## Overview

This is a Python client library for controlling Huawei HiLink LTE/5G modems over their web API. A caller creates a Connection, passes it to Client, and invokes a domain API such as device status or SMS; API methods use Session to make modem requests and return parsed results. Client also exposes configuration and many additional modem domains. The excerpts show session handling, API dispatch, and representative capabilities; several listed subsystems are unsampled, so their internal request relationships are not asserted.

Main entry points: [`huawei_lte_api/Session.py`](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Session.py) (HTTP session), [`huawei_lte_api/Client.py`](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Client.py) (Client facade), [`huawei_lte_api/api/Sms.py`](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Sms.py) (SMS messaging), [`huawei_lte_api/Connection.py`](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Connection.py) (Connection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Connection and transport"]
  node_connection["Connection<br/>[Connection.py]"]
  node_client["Client facade<br/>[Client.py]"]
  node_session["HTTP session<br/>[Session.py]"]
end

subgraph group_domains["Modem API domains"]
  node_device["Device status<br/>[Device.py]"]
  node_monitoring["Signal monitoring<br/>[Monitoring.py]"]
  node_network["Network and dial-up<br/>[Net.py]"]
  node_dialup["Dial-up controls<br/>[DialUp.py]"]
  node_dhcp["DHCP controls<br/>[Dhcp.py]"]
  node_sms["SMS messaging<br/>[Sms.py]"]
  node_phonebook["Phonebook<br/>[Pb.py]"]
  node_security["Security controls<br/>[Security.py]"]
  node_user["User login<br/>[User.py]"]
  node_updates["Online updates<br/>[OnlineUpdate.py]"]
  node_storage["SD card<br/>[SdCard.py]"]
  node_other_api["Other modem APIs"]
end

subgraph group_configuration["Modem configuration"]
  node_config_api["Configuration APIs"]
end

subgraph group_support["Shared support"]
  node_api_base["API base<br/>[ApiGroup.py]"]
  node_tools["Data and crypto tools<br/>[Tools.py]"]
  node_enums["Protocol enums<br/>[client.py]"]
  node_errors["Error types<br/>[exceptions.py]"]
end

node_caller(("Library caller"))

node_caller -->|"opens"| node_connection
node_caller -->|"creates"| node_client
node_connection -->|"creates"| node_session
node_client -->|"exposes"| node_device
node_client -->|"exposes"| node_monitoring
node_client -->|"exposes"| node_sms
node_client -->|"exposes"| node_security
node_client -->|"exposes"| node_user
node_client -->|"exposes"| node_updates
node_client -->|"exposes"| node_storage
node_client -->|"exposes"| node_config_api
node_device -->|"requests via"| node_session
node_monitoring -->|"requests via"| node_session
node_network -->|"requests via"| node_session
node_dialup -->|"requests via"| node_session
node_dhcp -->|"requests via"| node_session
node_sms -->|"requests via"| node_session
node_phonebook -->|"requests via"| node_session
node_user -->|"requests via"| node_session
node_other_api -->|"inherits"| node_api_base
node_api_base -->|"stores reference"| node_session
node_sms -->|"formats dates"| node_tools
node_session -->|"uses response codes"| node_enums
node_session -->|"raises protocol errors"| node_errors

click node_connection "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Connection.py"
click node_client "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Client.py"
click node_session "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Session.py"
click node_api_base "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/ApiGroup.py"
click node_device "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Device.py"
click node_monitoring "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Monitoring.py"
click node_network "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Net.py"
click node_dialup "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/DialUp.py"
click node_dhcp "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Dhcp.py"
click node_sms "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Sms.py"
click node_phonebook "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Pb.py"
click node_security "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Security.py"
click node_user "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/User.py"
click node_updates "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/OnlineUpdate.py"
click node_storage "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/SdCard.py"
click node_other_api "https://github.com/salamek/huawei-lte-api/tree/master/huawei_lte_api/api"
click node_config_api "https://github.com/salamek/huawei-lte-api/tree/master/huawei_lte_api/config"
click node_tools "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Tools.py"
click node_enums "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/enums/client.py"
click node_errors "https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/exceptions.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_connection,node_client,node_session toneBlue
class node_device,node_monitoring,node_network,node_dialup,node_dhcp,node_sms,node_phonebook,node_security,node_user,node_updates,node_storage,node_other_api toneAmber
class node_config_api toneMint
class node_api_base,node_tools,node_enums,node_errors toneRose
class node_caller toneIndigo
```

## Components

### Connection and transport

- [Connection](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Connection.py): `huawei_lte_api/Connection.py`
- [Client facade](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Client.py): `huawei_lte_api/Client.py`
- [HTTP session](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Session.py): `huawei_lte_api/Session.py`

### Modem API domains

- [Device status](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Device.py): `huawei_lte_api/api/Device.py`
- [Signal monitoring](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Monitoring.py): `huawei_lte_api/api/Monitoring.py`
- [Network and dial-up](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Net.py): `huawei_lte_api/api/Net.py`
- [Dial-up controls](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/DialUp.py): `huawei_lte_api/api/DialUp.py`
- [DHCP controls](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Dhcp.py): `huawei_lte_api/api/Dhcp.py`
- [SMS messaging](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Sms.py): `huawei_lte_api/api/Sms.py`
- [Phonebook](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Pb.py): `huawei_lte_api/api/Pb.py`
- [Security controls](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/Security.py): `huawei_lte_api/api/Security.py`
- [User login](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/User.py): `huawei_lte_api/api/User.py`
- [Online updates](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/OnlineUpdate.py): `huawei_lte_api/api/OnlineUpdate.py`
- [SD card](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/api/SdCard.py): `huawei_lte_api/api/SdCard.py`
- [Other modem APIs](https://github.com/salamek/huawei-lte-api/tree/master/huawei_lte_api/api): `huawei_lte_api/api`

### Modem configuration

- [Configuration APIs](https://github.com/salamek/huawei-lte-api/tree/master/huawei_lte_api/config): `huawei_lte_api/config`

### Shared support

- [API base](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/ApiGroup.py): `huawei_lte_api/ApiGroup.py`
- [Data and crypto tools](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/Tools.py): `huawei_lte_api/Tools.py`
- [Protocol enums](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/enums/client.py): `huawei_lte_api/enums/client.py`
- [Error types](https://github.com/salamek/huawei-lte-api/blob/master/huawei_lte_api/exceptions.py): `huawei_lte_api/exceptions.py`

### Other components

- **Library caller**

## Connections

- Library caller → Connection: opens (evidence: `README.md`)
- Library caller → Client facade: creates (evidence: `README.md`)
- Connection → HTTP session: creates (evidence: `huawei_lte_api/Connection.py`)
- Client facade → Device status: exposes (evidence: `huawei_lte_api/Client.py`)
- Client facade → Signal monitoring: exposes (evidence: `huawei_lte_api/Client.py`)
- Client facade → SMS messaging: exposes (evidence: `huawei_lte_api/Client.py`)
- Client facade → Security controls: exposes (evidence: `huawei_lte_api/Client.py`)
- Client facade → User login: exposes (evidence: `huawei_lte_api/Client.py`)
- Client facade → Online updates: exposes (evidence: `huawei_lte_api/Client.py`)
- Client facade → SD card: exposes (evidence: `huawei_lte_api/Client.py`)
- Client facade → Configuration APIs: exposes (evidence: `huawei_lte_api/Client.py`)
- Device status → HTTP session: requests via (evidence: `huawei_lte_api/api/Device.py`)
- Signal monitoring → HTTP session: requests via (evidence: `huawei_lte_api/api/Monitoring.py`)
- Network and dial-up → HTTP session: requests via (evidence: `huawei_lte_api/api/Net.py`)
- Dial-up controls → HTTP session: requests via (evidence: `huawei_lte_api/api/DialUp.py`)
- DHCP controls → HTTP session: requests via (evidence: `huawei_lte_api/api/Dhcp.py`)
- SMS messaging → HTTP session: requests via (evidence: `huawei_lte_api/api/Sms.py`)
- Phonebook → HTTP session: requests via (evidence: `huawei_lte_api/api/Pb.py`)
- User login → HTTP session: requests via (evidence: `huawei_lte_api/api/User.py`)
- Other modem APIs → API base: inherits (evidence: `huawei_lte_api/api/UsbStorage.py`)
- API base → HTTP session: stores reference (evidence: `huawei_lte_api/ApiGroup.py`)
- SMS messaging → Data and crypto tools: formats dates (evidence: `huawei_lte_api/api/Sms.py`)
- HTTP session → Protocol enums: uses response codes (evidence: `huawei_lte_api/Session.py`)
- HTTP session → Error types: raises protocol errors (evidence: `huawei_lte_api/Session.py`)
