Gerenciar a velocidade da internet banda larga

Related tags

GraphQL SpeedTest
Overview

Monitoramento da Velocidade da internet 📶

Status do Projeto: ✔️ (pronto)

Tópicos ✍️

Descrição do projeto 📁

Gerenciar e armazenar a velocidade da internet a cada meia hora.

Funcionalidades ⚙️

✔️ Armazenamento automático no Excel

✔️ Roda background, não afetando outras tarefas (exceto se estiver instalando pacotes do python)

✔️ O intervalo de tempo é ajustável

Deploy da Aplicação 💨

ezgif com-gif-maker

Pré-requisitos 📌

No Python (salvar o script como TestSpeed.py) :

pip install pandas
pip install threaded
pip install speedtest-cli

No Excel:

  • Criar uma planilha nomeada como 'base';

  • Nomear três colunas, por exemplo, 'Data', 'Hora' e 'Velocidade';

  • Salvar como dados.xlsx.

    1

    2

Como rodar a aplicação ▶️

No terminal navegar até o diretório onde se encontram os arquivos Excel e o TestSpeed.py, e digitar:

python TestSeep.py

Observações 👀

A ideia do projeto surgiu em um momento de estresse por perceber a internet travando e resolvi postar no LinkedIn para outras pessoas fazerem o mesmo e poderem contestar com a operadora (tendo provas em mão).

Pesquisei anteriormente a fidedignidade do site Speedtest e se era válido, como prova, os dados gerados. Para quem quiser dar uma olhada, há dois sites bem interessantes que abordam esses assuntos:

A diferença dos megabytes testados é muito mínima, pela facilidade e disponibilidade eu escolhi o speedtest.

O ideal é rodar o programa com o cabo ethernet conectado no computador, porém com o Wifi você já pode ter ideia se a qualidade da internet está muito inferior da contratada.

Como eu fiz no momento de "desespero" o código, com o tempo, irei fazer melhorias (como listadas abaixo).

Bibliotecas utilizadas 📚

Melhorias 🚀

📝 Incluir o nPerf, ping, upload, hora de início e término para rodar o programa;

📝 Armazenar os dados em uma banco de dados relacional, printar na tela em tempos em tempos a média da velocidade até aquele momento;

📝 Fazer input permitindo que o usuário entre com dados da sua velocidade contratada e o custo dela;

📝 Fazer uma análise de estatística básica de velocidade por dia/mês/porcentagem, o quanto está sendo descontado e o quanto deveria ser cobrado/dia pela velocidade que chega.

Desenvolvedores e Contribuintes 💻

Licença

The MIT License (MIT)

Copyright ©️ 2021 - TestSpeed

Comments
  • Cálculo da Velocidade

    Cálculo da Velocidade

    Poderia explicar o cálculo da velocidade, pois executei o código e apresentava velocidade média de 37, mas ao testar no próprio site do speedTest exibia 240 de velocidade.

    opened by manoelleal17 0
  • Arquivo dados.xlsx

    Arquivo dados.xlsx

    SO: Linux Ubuntu 20.4

    Erro ao tentar gravar no arquivo de dados:

    Mensagem de erro:

    Traceback (most recent call last): File "TestSpeed.py", line 18, in internet() File "TestSpeed.py", line 8, in internet df = pd.read_excel('dados.xlsx', sheet_name='base') File "/usr/local/lib/python3.8/dist-packages/pandas/util/_decorators.py", line 299, in wrapper return func(*args, **kwargs) File "/usr/local/lib/python3.8/dist-packages/pandas/io/excel/_base.py", line 3 36, in read_excel io = ExcelFile(io, storage_options=storage_options, engine=engine) File "/usr/local/lib/python3.8/dist-packages/pandas/io/excel/_base.py", line 1 131, in init self._reader = self._engines[engine](self._io, storage_options=storage_optio ns) File "/usr/local/lib/python3.8/dist-packages/pandas/io/excel/_xlrd.py", line 2 4, in init import_optional_dependency("xlrd", extra=err_msg) File "/usr/local/lib/python3.8/dist-packages/pandas/compat/_optional.py", line 109, in import_optional_dependency raise ImportError(msg) from None ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.

    SOLUÇÃO:

    #python3 -m pip install openpyxl

    MOTIVO

    Ausência da biblioteca mencionada na descrição do projeto Bibliotecas utilizadas 📚

    • SpeedTest
    • Threading
    • Pandas
    • Openxl
    opened by andreyoshimura 0
  • Refatoramento do Sistema

    Refatoramento do Sistema

    Meu pull request basicamente refatorou o sistema

    As mudanças principais foram:

    • Agora o arquivo de dados é o .csv
    • Agora o único modulo necessário de ser instalado é o speedtest-cli
    • Criado arquivo requirements.txt para baixar os módulos necessários com o comando pip3 install -r requirements.txt
    • Não é mais necessário criar o arquivo dados, ele é criado automaticamente com os headers Data, Horario e Velocidade
    opened by AndreAzevedoCoder 1
  • Melhoria: Criar a planilha e as colunas de forma automatizada

    Melhoria: Criar a planilha e as colunas de forma automatizada

    Automatizar os passos de criação da planilha, talvez no próprio script Python.

    Criar uma planilha nomeada como 'base'; Nomear três colunas, por exemplo, 'Data', 'Hora' e 'Velocidade'; Salvar como dados.xlsx.

    opened by leilaapsilva 3
  • guligon90/main - Refactor project structure

    guligon90/main - Refactor project structure

    O que foi feito?

    1. Criada uma nova estrutura de projeto:
    SpeedTest
    ├── common
    │   ├── __init__.py
    │   └── settings.py
    ├── LICENSE
    ├── logger
    │   ├── base.py
    │   ├── __init__.py
    │   ├── jobs.py
    │   └── network.py
    ├── main.py
    ├── README.md
    ├── requirements-dev.txt
    ├── requirements.txt
    └── test_results
        └── speed-data.xlsx
    

    Nessa nova árvore, main.py agora é o script que executa a aquisição de velocidades de requisições, Em logger/base.py, foi implementada uma classe PeriodicThread, que encapsula as funcionalidades de threading.Timer e em logger/network.py, a classe NetworkSpeedLogger(PeriodicThread), que de fato executa periodicamente a aquisição e persistência de velocidades de requisição na planilha.

    Em common/settings.py estão os parâmetros de configuração utilizados por outros módulos do sistema:

    DOWNLOAD_SCALE_FACTOR = 10**-6
    DOWNLOAD_SPEED_DECIMAL_PLACES = 2
    
    LOG_DATE_FORMAT = '%d/%m/%Y'
    LOG_TIME_FORMAT = '%H:%M:%S'
    
    OUTPUT_FILE_PATH = 'test_results/speed-data.xlsx'
    SAMPLING_INTERVAL = 5  # in seconds
    
    1. Adicionado code linting ao projeto:

    A consistência da base de código com as PEPs pode ser conferida agora utilizando o Prospector, cujo perfil está configurado no arquivo .prospector.yml.

    1. Atualizada a documentação:

    Vide README.md.

    Como testar?

    Basta seguir as instruções do README.md atualizado e verificar se tanto o teste de velocidade quanto o code linting estão funcionando como está sendo indicado na documentação.

    opened by guligon90 2
  • Subindo o .gitignore e o requirements.txt

    Subindo o .gitignore e o requirements.txt

    Como na minha máquina mantenho uma virtualenv separada do resto criei e para não subir ele pus no .gitignore além de arquivos do pcharm e o requirements.txt são as libs para rodar o projeto.

    opened by luxu 1
Owner
Bárbara Guerbas de Figueiredo
Bárbara Guerbas de Figueiredo
The Internet Archive Research Assistant - Daily search Internet Archive for new items matching your keywords

The Internet Archive Research Assistant - Daily search Internet Archive for new items matching your keywords

Kay Savetz 60 Dec 25, 2022
Jarvis is a simple Chatbot with a GUI capable of chatting and retrieving information and daily news from the internet for it's user.

J.A.R.V.I.S Kindly consider starring this repository if you like the program :-) What/Who is J.A.R.V.I.S? J.A.R.V.I.S is an chatbot written that is bu

Epicalable 50 Dec 31, 2022
An AWS Pentesting tool that lets you use one-liner commands to backdoor an AWS account's resources with a rogue AWS account - or share the resources with the entire internet 😈

An AWS Pentesting tool that lets you use one-liner commands to backdoor an AWS account's resources with a rogue AWS account - or share the resources with the entire internet ??

Brandon Galbraith 276 Mar 3, 2021
Ella is a CMS based on Python web framework Django with a main focus on high-traffic news websites and Internet magazines.

Ella CMS Ella is opensource CMS based on Django framework, designed for flexibility. It is composed from several modules: Ella core is the main module

null 295 Oct 16, 2022
dataset for ECCV 2020 "Motion Capture from Internet Videos"

Motion Capture from Internet Videos Motion Capture from Internet Videos Junting Dong*, Qing Shuai*, Yuanqing Zhang, Xian Liu, Xiaowei Zhou, Hujun Bao

ZJU3DV 98 Dec 7, 2022
Command line interface for testing internet bandwidth using speedtest.net

speedtest-cli Command line interface for testing internet bandwidth using speedtest.net Versions speedtest-cli works with Python 2.4-3.7 Installation

Matt Martz 12.4k Jan 8, 2023
A black hole for Internet advertisements

Network-wide ad blocking via your own Linux hardware The Pi-hole® is a DNS sinkhole that protects your devices from unwanted content, without installi

Pi-hole 40.3k Jan 9, 2023
DrawBot lets you draw images taken from the internet on Skribbl.io, Gartic Phone and Paint

DrawBot You don't speak french? No worries, english translation is over here. C'est quoi ? DrawBot est un logiciel codé par V2F qui va prendre possess

V2F 205 Jan 1, 2023
FireDM is a python open source (Internet Download Manager) with multi-connections, high speed engine, it downloads general files and videos from youtube and tons of other streaming websites .

python open source (Internet Download Manager) with multi-connections, high speed engine, based on python, LibCurl, and youtube_dl https://github.com/firedm/FireDM

null 1.6k Apr 12, 2022
A collection of Classical Chinese natural language processing models, including Classical Chinese related models and resources on the Internet.

GuwenModels: 古文自然语言处理模型合集, 收录互联网上的古文相关模型及资源. A collection of Classical Chinese natural language processing models, including Classical Chinese related models and resources on the Internet.

Ethan 66 Dec 26, 2022
Deepak Clouds Torrent is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.

Deepak Clouds Torrent is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.

Deepak Clouds 37 Oct 28, 2022
This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.

MIRROR HUNTER This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive. Repo la

anime republic 130 May 28, 2022
Esse script procura qualquer, dados que você queira na wikipedia! Em breve traremos um com dados em toda a internet.

Buscador de dados simples Dependências necessárias Para você poder começar a utilizar esta ferramenta, você vai precisar da dependência "wikipedia", p

Erick Campoy 4 Feb 24, 2022
A repository dedicated to IoT(internet of things ) and python scripts

?? Introduction Week of Learning is a weekly program in which you will get all the necessary knowledge about Circuit-Building, Arduino and Micro-Contr

null 27 Nov 22, 2022
A lightweight python script that can monitor the T-Mobile Home Internet Nokia 5G Gateway for band and connectivity and reboot as needed.

tmo-monitor A lightweight Python 3 script that can monitor the T-Mobile Home Internet Nokia 5G Gateway for band and connectivity and reboot as needed.

null 61 Dec 17, 2022
An OSINT tool that searches for devices directly connected to the internet (IoT) with a user specified query. It returns results for Webcams, Traffic lights, Refridgerators, Smart TVs etc.

An OSINT tool that searches for devices directly connected to the internet (IoT) with a user specified query. It returns results for Webcams, Traffic

Richard Mwewa 48 Nov 20, 2022
Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive.

Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive.

Abinash939 1 Oct 10, 2021
A Telegram Bot written in Python for mirroring files on the Internet to your Google Drive

No support is going to be provided of any kind, only maintaining this for vps user on request. This is a Telegram Bot written in Python for mirroring

Sunil Kumar 42 Oct 28, 2022
Project created to help beginner programmers to study, despite the lack of internet!

Project created to help beginner programmers to study, despite the lack of internet!

Dev4Dev 2 Oct 25, 2021