Страница 1 из 1
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 15 ноя 2022, 11:02
demonlibra
Довелось мне бороться с антенной для интернета через сотовую связь.
Написал сценарий на python, который непрерывно обновляет и считывает данные со страницы
Информация об устройстве.
Строятся графики уровней
RSRP,
RSRQ,
SINR и
RSSI с указанием номера базовой станции.
GitHub
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 10 дек 2022, 02:10
demonlibra
Благодаря видео
Python парсинг динамических страниц сайтов с JavaScript Ajax обнаружил
API для сбора данных с модема по ссылке
http://192.168.9.1/api/device/signal
Дописал сценарии сбора данных через API.
GitHub
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 11 дек 2022, 20:37
Damian
Не по теме
demonlibra, случайно не знаешь есть для usb-модемов какая-нибудь программа которая отображает техническую информацию,modem manager gui как-то бедноват чего нибудь такого оригинального нет чтоб там графики,вышки интересное в общем было,пардон если не в тему
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 11 дек 2022, 22:38
demonlibra
Я не искал.
Мне было интересно с Python`ом повозиться после прочтения книги Простой Python Bill Lubanovic
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 14 дек 2022, 00:22
demonlibra
Используя API можно получать данные через bash.
Код: Выделить всё
curl -s 192.168.9.1/api/device/signal
while [ abc ]; do curl -s 192.168.9.1/api/device/signal | grep 'cell_id' | grep -o -G "[0-9]*"; sleep 5; done
while [ abc ]; do curl -s 192.168.9.1/api/device/signal | grep 'rsrp' | grep -o -P "(\-?)([0-9]*)dBm"; sleep 5; done
Эти команды можно использовать для вывода данных через апплет
Датчики Bash (bash-sensors@pkkk)
Код: Выделить всё
curl -s 192.168.9.1/api/device/signal | grep 'cell_id' | grep -o -G "[0-9]*"
curl -s 192.168.9.1/api/device/signal | grep 'rsrp' | grep -o -P "(\-?)([0-9]*)dBm"
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 14 дек 2022, 21:24
Damian
demonlibra писал(а): ↑11 дек 2022, 22:38
Простой Python Bill Lubanovic
Спасибо давно хотелось с чем-то подобным познакомиться.
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 14 дек 2022, 22:19
demonlibra
Тогда вдогонку,
Начинаем программировать на Python (5-е изд) 2022 Tony Gaddis
книги друг друга хорошо дополняют
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 14 дек 2022, 22:30
rogoznik
demonlibra писал(а): ↑11 дек 2022, 22:38
Простой Python
Да да, он "очень простой"
Код: Выделить всё
data = [i * j for i in range(0, 3) for j in range(0, 3)]

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 14 дек 2022, 22:51
demonlibra
После прочтения книжек стало чуть проще ))
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 14 дек 2022, 23:49
WWolf
rogoznik, фигасе перегруз семантики...
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 15 дек 2022, 18:01
slant
rogoznik писал(а): ↑14 дек 2022, 22:30
Да да, он "очень простой"
Ну, если специально не лезть в логические извращения и библиотеки глубоко - то весьма прост. Во всяком случае - всяких подводных камней и скрытых нюансов поменьше чем если сложный скрипт на BASH писать.

А уж если с perl сравнивать, который эту нишу до него занимал...
По моему впечатлению - python сразу либо нравится своим синтаксисом, либо сразу становится ненавидимым - именно за него же.

Лично я оценил то, что скрипт на нем либо сразу написан читабельно, либо просто не будет работать. Как меня в свое время достало в проекте с другим языком: 4 человека в команде, у трех собственная привычка к форматированию кода, а четвертый считает что форматирование - пофиг и дело десятое. Лишь бы код работал. Справедливости ради - именно у него он всегда работал.

Но блин... И разогнать их было невозможно.
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 15 дек 2022, 23:03
Ара Магеддон
Да уж, синтаксис там своеобразен. В каком-нибудь VB/VBA или 1С привыкаешь к тому, что на каждый
if должен приходиться
end if, а на каждый
for - своей
next. Потом без закрывающих операторов чувствуешь себя как китаец на стеклянном полу - как будто какой-то опоры не хватет. Но привыкнуть можно, со временем начинаешь воспринимать синтаксис как должное.
https://www.youtube.com/watch?v=PPDDQ5l0JsU
Парсер уровней сигнала для модема Huawei (Vodafone) k5161h
Добавлено: 08 фев 2023, 14:49
demonlibra
При выводе данных через
bash-sensors необходимо позаботиться о том, чтобы запросы были ограничены по времени.
Вывод номера станции:
Код: Выделить всё
cell=`curl -s --max-time 3 192.168.9.1/api/device/signal | grep 'cell_id' | grep -o -G "[0-9]*"`; if [ $cell ]; then echo $cell; else echo 'no signal'; fi
Вывод основных данных:
Код: Выделить всё
data=`curl -s --max-time 3 192.168.9.1/api/device/signal | grep 'rsrq\|rsrp\|rssi\|sinr' | grep -o -E "(\-?)[0-9]*(\.[0-9])?"`; array=($(echo $data | tr ' ' "\n")); echo "RSRQ = ${array[0]} dB | RSRP = ${array[1]} dBm | RSSI = ${array[2]} dBm | SINR = ${array[3]} dB"
Вывод времени получения эха сервера:
Код: Выделить всё
ping -w 5 -qc1 google.com 2>&1 | awk -F/ '/^rtt/ { printf "%.0f мс", $5; ok = 1 } END { if (!ok) print "FAIL" }'