Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#1

15 ноя 2022, 11:02

Довелось мне бороться с антенной для интернета через сотовую связь.

Написал сценарий на python, который непрерывно обновляет и считывает данные со страницы Информация об устройстве.
Строятся графики уровней RSRP, RSRQ, SINR и RSSI с указанием номера базовой станции.

GitHub

Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#2

10 дек 2022, 02:10

Благодаря видео Python парсинг динамических страниц сайтов с JavaScript Ajax обнаружил API для сбора данных с модема по ссылке http://192.168.9.1/api/device/signal

Дописал сценарии сбора данных через API.
GitHub
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Damian
Сообщения: 352
Зарегистрирован: 22 июн 2019, 22:40
Решено: 1
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#3

11 дек 2022, 20:37

Не по теме
demonlibra, случайно не знаешь есть для usb-модемов какая-нибудь программа которая отображает техническую информацию,modem manager gui как-то бедноват чего нибудь такого оригинального нет чтоб там графики,вышки интересное в общем было,пардон если не в тему :sry:

Аватара пользователя

Автор темы
demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#4

11 дек 2022, 22:38

Я не искал.
Мне было интересно с Python`ом повозиться после прочтения книги Простой Python Bill Lubanovic
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#5

14 дек 2022, 00:22

Используя 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"
изображение_2022-12-13_233613489.png
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Damian
Сообщения: 352
Зарегистрирован: 22 июн 2019, 22:40
Решено: 1
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#6

14 дек 2022, 21:24

demonlibra писал(а):
11 дек 2022, 22:38
Простой Python Bill Lubanovic
Спасибо давно хотелось с чем-то подобным познакомиться.

Аватара пользователя

Автор темы
demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#7

14 дек 2022, 22:19

Тогда вдогонку,
Начинаем программировать на Python (5-е изд) 2022 Tony Gaddis
книги друг друга хорошо дополняют
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

rogoznik
Сообщения: 10438
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#8

14 дек 2022, 22:30

demonlibra писал(а):
11 дек 2022, 22:38
Простой Python
Да да, он "очень простой"

Код: Выделить всё

data = [i * j for i in range(0, 3) for j in range(0, 3)]
:crazy:
ИзображениеИзображение

Аватара пользователя

Автор темы
demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#9

14 дек 2022, 22:51

После прочтения книжек стало чуть проще ))
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

WWolf
Сообщения: 4187
Зарегистрирован: 14 фев 2018, 00:51
Решено: 36
Откуда: Краснодар
Благодарил (а): 1735 раз
Поблагодарили: 1275 раз
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#10

14 дек 2022, 23:49

rogoznik, фигасе перегруз семантики...

Аватара пользователя

slant
Сообщения: 4859
Зарегистрирован: 21 июн 2017, 18:09
Решено: 111
Благодарил (а): 53 раза
Поблагодарили: 2177 раз
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#11

15 дек 2022, 18:01

rogoznik писал(а):
14 дек 2022, 22:30
Да да, он "очень простой"
Ну, если специально не лезть в логические извращения и библиотеки глубоко - то весьма прост. Во всяком случае - всяких подводных камней и скрытых нюансов поменьше чем если сложный скрипт на BASH писать. :) А уж если с perl сравнивать, который эту нишу до него занимал... :)

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

Аватара пользователя

Ара Магеддон
Сообщения: 583
Зарегистрирован: 08 дек 2018, 01:08
Решено: 18
Благодарил (а): 37 раз
Поблагодарили: 141 раз

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#12

15 дек 2022, 23:03

Да уж, синтаксис там своеобразен. В каком-нибудь VB/VBA или 1С привыкаешь к тому, что на каждый if должен приходиться end if, а на каждый for - своей next. Потом без закрывающих операторов чувствуешь себя как китаец на стеклянном полу - как будто какой-то опоры не хватет. Но привыкнуть можно, со временем начинаешь воспринимать синтаксис как должное.
https://www.youtube.com/watch?v=PPDDQ5l0JsU

Аватара пользователя

Автор темы
demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Парсер уровней сигнала для модема Huawei (Vodafone) k5161h

#13

08 фев 2023, 14:49

При выводе данных через 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" }'
bash-sensors.png
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Ответить

Вернуться в «Работа с сетью»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость