Мониторинг Hilink 4G модема

Опубликовано 02.08.2023

У меня, как и у многих, есть 4G модем Huawei E3372, прошитый на режим hilink. С прошивкой hilink модем работает в режиме маршрутизатора, и представляется компьютеру в виде сетевого интерфейса (usb-ethernet-rndis). 

По умолчанию, модем предоставляет обширную информацию о режиме работы сотовой сети. Прям красота и всё понятно.

Один минус — страничка динамическая, сплошной JS и поэтому curl-ом эту информацию никак не вытянуть.

Пишем небольшой скрипт на playwright:

#!/usr/bin/python3
#
# pip3 install playwright
# playwright install
# http://device_ip/html/deviceinformation.html
#

from playwright.sync_api import Playwright, sync_playwright
import argparse

parser = argparse.ArgumentParser(description='Get mobile data from Hilink modem')
parser.add_argument(metavar='N', action="store", dest="ip", help='IP address of Hilink')

args = parser.parse_args()

CONN_INFO = {
        'device_ip': args.ip
}
url = 'http://{device_ip}/html/deviceinformation.html'.format(**CONN_INFO)

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=True)
    context = browser.new_context()
    page = context.new_page()
    page.goto(url)
    div = page.query_selector('.diviceInfo_table')
    output_text = div.inner_text()
    raw_list = output_text.split('\n')
    data_dict = {}
    for element in raw_list:
        data_dict[element.split(':')[0]] = element.split(':')[1][1:]
    #print(data_dict)
    print('RSSI:{} RSRP:{} RSRQ:{} SINR:{}'.format(data_dict['RSSI'][:-3], 
                                                  data_dict['RSRP'][:-3],
                                                  data_dict['RSRQ'][:-2],
                                                  data_dict['SINR'][:-2]))
    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

Соответственно, потом этот скрипт можно легко прикрутить к Cacti и тому подобному:

По моему графику видно, что Интернет приходит ко мне в гости только глубокой ночью и не надолго. Такие дела.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*