commit 905cb34f1470417da26f9266e5cf4ff1f771a5e8 Author: Ben Date: Wed Sep 20 04:28:45 2023 +0000 first commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..96bb62d --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=Information dashboard for 3G/LTE dongle +LUCI_DEPENDS:=+luci-compat +modeminfo +PKG_LICENSE:=GPLv3 +PKG_VERSION:=0.3.1-1 + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e4fbd3 --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# luci-app-modeminfo +3G/LTE dongle information for OpenWrt LuCi + + +luci-app-modeminfo is fork from https://github.com/IceG2020/luci-app-3ginfo + +Supported devices: + + - Quectel EC200T/EC21/EC25/EP06/EM12/EM160R-GL + + - SimCom SIM7600E-H/SIM7906 + + - Huawei E3372 (LTE)/ME909 + + - Sierra Wireless EM7455 + + - HP LT4220 + + - Dell DW5821e + + - MikroTik R11e-LTE/R11e-LTE6 (temporary dropped) + + - Fibocom NL668/NL678/L850/L860 + + - Gosuncnwelink GM510 + + - ZTE MF823/MF823D + +
+Package contents: + +|Package |Description | +|:-------|:-----------| +|luci-app-modeminfo |LuCI web interface | +|modeminfo |common files | +|modeminfo-qmi |Qualcomm MSM Interface support | +|modeminfo-serial-quectel |Quectel modems support | +|modeminfo-serial-telit |Telit LN940 (HP LT4220) modem support | +|modeminfo-serial-huawei |Huawei ME909/E3372(stick mode, LTE only) modems support| +|modeminfo-serial-sierra |Sierra EM7455 modem support | +|modeminfo-serial-simcom |SimCOM modems support | +|modeminfo-serial-dell |Dell DW5821e modem support | +|modeminfo-serial-fibocom |Fibocom LN668/NL678 modems support | +|modeminfo-serial-xmm |Fibocom L850/L860 modems support | +|modeminfo-serial-gosun |Gosuncnwelink GM510 support | +|modeminfo-serial-gosun |ZTE MF823/MF823D support | +
+ +
+ Screenshots + + +* Overview page. Short network info. + + ![](https://raw.githubusercontent.com/koshev-msk/modemfeed/master/luci/applications/luci-app-modeminfo/screenshots/modeminfo-overview.png) + +* Modeminfo index page. Verbose network info. + + ![](https://raw.githubusercontent.com/koshev-msk/modemfeed/master/luci/applications/luci-app-modeminfo/screenshots/modeminfo-network.png) + +* Modeminfo hardware page. + + ![](https://raw.githubusercontent.com/koshev-msk/modemfeed/master/luci/applications/luci-app-modeminfo/screenshots/modeminfo-hardware.png) + +* Modeminfo setup page. + + ![](https://raw.githubusercontent.com/koshev-msk/modemfeed/master/luci/applications/luci-app-modeminfo/screenshots/modeminfo-setup.png) + +
+ diff --git a/luasrc/controller/modem/modeminfo.lua b/luasrc/controller/modem/modeminfo.lua new file mode 100644 index 0000000..c59c9c8 --- /dev/null +++ b/luasrc/controller/modem/modeminfo.lua @@ -0,0 +1,24 @@ +local nixio = require "nixio" + +module("luci.controller.modem.modeminfo", package.seeall) + +local utl = require "luci.util" + +function index() + entry({"admin", "modem"}, firstchild(), translate("Modem"), 45).acl_depends={"unauthenticated"} + entry({"admin", "modem", "main"}, alias ("admin", "modem", "main", "main"), translate("Modeminfo"), 10).acl_depends={"unauthenticated"} + entry({"admin", "modem", "main", "main"}, template("modem/modeminfo"), translate("Network"), 51).acl_depends={"unauthenticated"} + entry({"admin", "modem", "main", "hw"}, template("modem/modeminfohw"), translate("Hardware"), 52).acl_depends={"unauthenticated"} + entry({"admin", "modem", "main", "config"}, cbi("modem/modeminfo"), translate("Setup"), 53).acl_depends={"unauthenticated"} + entry({"admin", "modem", "data"}, call("get_data")) +end + + +function get_data() + local fs = require "nixio.fs" + local data = luci.sys.exec("/usr/bin/modeminfo") + luci.http.prepare_content("application/json") + luci.http.write(data) +end + + diff --git a/luasrc/model/cbi/modem/modeminfo.lua b/luasrc/model/cbi/modem/modeminfo.lua new file mode 100644 index 0000000..db2a5b5 --- /dev/null +++ b/luasrc/model/cbi/modem/modeminfo.lua @@ -0,0 +1,78 @@ +-- Copyright 2021 Konstantine Shevlyakov +-- Copyright 2021 modified by Vladislav Kadulin +-- Licensed to the GNU General Public License v3.0. + +require("nixio.fs") + +local PATH = { + "/dev/tty[A-Z][A-Z]*", + "/dev/cdc-wdm*" + } + +-- check devices +function check_dev(path) + local try_port, size = nixio.fs.glob(path) + if size > 0 then + port = translate("In automatic mode detect first answered DATA port.") + else + port = translate("Port not found!") + end +end + +-- add device in ListValue +function try_port(path) + local try_port = nixio.fs.glob(path) + dev:value("", translate("Autodetect")) + for node in try_port do + dev:value(node, node) + end +end + +local m = Map("modeminfo", translate("Modeminfo: Configuration"), + translate("Configuration panel of Modeminfo.")) + +local s = m:section(TypedSection, "modeminfo") +s.anonymous = true + +local qmi_mode = s:option(Flag, "qmi_mode", translate("Use QMI"), + translate("Get modem data via qmicli (experimental). Require install qmi-utils.")) +qmi_mode.rmempty = true + +check_dev(PATH[1]) +dev = s:option(ListValue, "device", translate("Data port"), port) +dev.default = "" +dev.rmempty = true +dev:depends("qmi_mode", 0) +try_port(PATH[1]) + +check_dev(PATH[2]) +dev = s:option(ListValue, "device_qmi", translate("Data port"), port) +dev.default = "" +dev.rmempty = true +dev:depends("qmi_mode", 1) +try_port(PATH[2]) + +local decimail = s:option(Flag, "decimail", translate("Show decimal"), + translate("Show LAC and CID in decimal.")) +decimail.rmempty = true + +local name = s:option(Flag, "mmcli_name", translate("Name via mmcli"), + translate("Get device hardware name via mmcli utility if aviable.")) +name.rmempty = true +name:depends("qmi_mode", 0) + +local qmi_proxy = s:option(Flag, "qmi_proxy", translate("QMI proxy"), + translate("Enable qmi-proxy mode.")) +qmi_proxy.rmempty = true +qmi_proxy:depends("qmi_mode", 1) + +local short = s:option(Flag, "index", translate("Index page"), + translate("Short info on Overview page")) +short.rmempty = true + +function m.on_after_commit(Map) + luci.sys.call("rm -f /tmp/modemdevice") +end + +return m + diff --git a/luasrc/view/admin_status/index/modem.htm b/luasrc/view/admin_status/index/modem.htm new file mode 100644 index 0000000..b6e22e1 --- /dev/null +++ b/luasrc/view/admin_status/index/modem.htm @@ -0,0 +1,4 @@ +<%uci = require "luci.model.uci".cursor()%> +<%if uci:get_first("modeminfo", "modeminfo", "index") then%> +<%+modem/modemview%> +<%end%> diff --git a/luasrc/view/modem/modeminfo.htm b/luasrc/view/modem/modeminfo.htm new file mode 100644 index 0000000..fc77119 --- /dev/null +++ b/luasrc/view/modem/modeminfo.htm @@ -0,0 +1,441 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008-2011 Jo-Philipp Wich + Licensed to the public under the Apache License 2.0. +-%> + + +<% +local sys = require("luci.sys") +luci.sys.exec('rm -f /tmp/modemdevice') +%> + +<%+header%> + +

<%:Modeminfo%>

+ + + +
+ <%:Cellular network%> +
+
+
<%:Operator:%>
+
-
+
+
+
<%:Network/band:%>
+
-
+
+
+
<%:E/U/ARFCN:%>
+
-
+
+
+
<%:LAC/CID:%>
+
-
+
+
+
<%:RSSI:%>
+
-
+
+
+
<%:SINR/ECIO:%>
+
-
+
+
+
<%:RSRP:%>
+
-
+
+
+
<%:RSRQ:%>
+
-
+
+
+
+ + +<%+footer%> diff --git a/luasrc/view/modem/modeminfohw.htm b/luasrc/view/modem/modeminfohw.htm new file mode 100644 index 0000000..a0cc4ed --- /dev/null +++ b/luasrc/view/modem/modeminfohw.htm @@ -0,0 +1,65 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008-2011 Jo-Philipp Wich + Licensed to the public under the Apache License 2.0. +-%> + + +<%+header%> + +

<%:Modeminfo%>

+ + + +
+ <%:Hardware Info%> +
+
+
<%:Device:%>
+
-
+
+
+
<%:Firmware:%>
+
-
+
+
+
<%:IMSI:%>
+
-
+
+
+
<%:ICCID:%>
+
-
+
+
+
<%:IMEI:%>
+
-
+
+
+
<%:Chiptemp:%>
+
-
+
+
+
+ + +<%+footer%> diff --git a/luasrc/view/modem/modemview.htm b/luasrc/view/modem/modemview.htm new file mode 100644 index 0000000..4194dbf --- /dev/null +++ b/luasrc/view/modem/modemview.htm @@ -0,0 +1,207 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008-2011 Jo-Philipp Wich + Licensed to the public under the Apache License 2.0. +-%> + +<% +local sys = require("luci.sys") +luci.sys.exec('rm -f /tmp/modemdevice') +%> + + + +
+

<%:Cellular network%>

+
+
+
<%:Operator:%>
+
-
+
+
+
<%:Network/band:%>
+
-
+
+
+
+ diff --git a/po/ru/modeminfo.po b/po/ru/modeminfo.po new file mode 100644 index 0000000..b2757bb --- /dev/null +++ b/po/ru/modeminfo.po @@ -0,0 +1,156 @@ +"Language: ru\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Last-Translator: Konstantine Shevlyakov \n" + +#: applications/luci-app-modeminfo/luasrc/controller/modem/modeminfo.lua:8 +msgid "Modem" +msgstr "Модем" + +#: applications/luci-app-modeminfo/luasrc/controller/modem/modeminfo.lua:9 +msgid "Modeminfo" +msgstr "Модеминфо" + +#: applications/luci-app-modeminfo/luasrc/controller/modem/modeminfo.lua:10 +msgid "Network" +msgstr "Сеть" + +#: applications/luci-app-modeminfo/luasrc/controller/modem/modeminfo.lua:11 +msgid "Hardware" +msgstr "Оборудование" + +#: applications/luci-app-modeminfo/luasrc/controller/modem/modeminfo.lua:12 +msgid "Setup" +msgstr "Настройка" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:10 +msgid "Modeminfo" +msgstr "Модеминфо" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:109 +msgid "No Registration" +msgstr "Нет регистрации" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:111 +msgid "Registered" +msgstr "Зарегистрирован" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:113 +msgid "Searching" +msgstr "Поиск сети" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:115 +msgid "Denied" +msgstr "Запрет регистрации" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:117 +msgid "Unknown" +msgstr "Неизвестно" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:119 +msgid "Roaming" +msgstr "Гостевая сеть" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:121 +msgid "No Data" +msgstr "Нет данных" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:315 +msgid "Network/Band/Bandwidth" +msgstr "Сеть/Диапазон/Полоса" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:315 +msgid "Network/Band" +msgstr "Сеть/Диапазон" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:402 +msgid "Cellular network" +msgstr "Сотовая сеть" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:405 +msgid "Operator:" +msgstr "Оператор:" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfo.htm:265 +msgid "Status:" +msgstr "Состояние:" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfohw.htm:35 +msgid "Hardware Info" +msgstr "Информация о модеме" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfohw.htm:38 +msgid "Device:" +msgstr "Устройство:" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfohw.htm:42 +msgid "Firmware:" +msgstr "Встроенное ПО:" + +#: applications/luci-app-modeminfo/luasrc/view/modem/modeminfohw.htm:58 +msgid "Chiptemp:" +msgstr "Температура:" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:16 +msgid "In automatic mode detect first answered DATA port." +msgstr "В автоматическом режиме находит первый отвечающий порт данных." + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:13 +msgid "Port not found!" +msgstr "Порт не обнаружен!" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:25 +msgid "Autodetect" +msgstr "Автоматически" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:31 +msgid "Modeminfo: Configuration" +msgstr "Modeminfo: Конфигурация" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:32 +msgid "Configuration panel of Modeminfo." +msgstr "Страница конфигурации Modeminfo." + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:37 +msgid "Use QMI" +msgstr "Использовать QMI" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:65 +msgid "Get modem data via qmicli (experimental). Require install qmi-utils." +msgstr "Получать данные модема через qmicli (экспериментально). Требуется установленный qmi-utils." + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:42 +msgid "Data port" +msgstr "Порт данных" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:55 +msgid "Show decimal" +msgstr "Показать в десятичных" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:56 +msgid "Show LAC and CID in decimal." +msgstr "Показать LAC и CID соты в десятичных." + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:56 +msgid "Get device hardware name via mmcli utility if aviable." +msgstr "Если доступно, использовать утилиту mmcli для имени модема." + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:59 +msgid "Name via mmcli" +msgstr "Имя модема через mmcli" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:64 +msgid "QMI proxy" +msgstr "QMI прокси" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:64 +msgid "Enable qmi-proxy mode." +msgstr "Задействовать режим прокси." + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:69 +msgid "Index page" +msgstr "На главную" + +#: applications/luci-app-modeminfo/luasrc/model/cbi/modem/modeminfo.lua:70 +msgid "Short info on Overview page" +msgstr "Краткая информация о сети на главной странице" diff --git a/root/usr/share/rpcd/acl.d/luci-app-modeminfo.json b/root/usr/share/rpcd/acl.d/luci-app-modeminfo.json new file mode 100644 index 0000000..1e6f488 --- /dev/null +++ b/root/usr/share/rpcd/acl.d/luci-app-modeminfo.json @@ -0,0 +1,11 @@ +{ + "luci-app-modeminfo": { + "description": "Grant UCI access for luci-app-modeminfo", + "read": { + "uci": [ "modeminfo" ] + }, + "write": { + "uci": [ "modeminfo" ] + } + } +} diff --git a/screenshots/modeminfo-hardware.png b/screenshots/modeminfo-hardware.png new file mode 100644 index 0000000..a5d0586 Binary files /dev/null and b/screenshots/modeminfo-hardware.png differ diff --git a/screenshots/modeminfo-network.png b/screenshots/modeminfo-network.png new file mode 100644 index 0000000..ab627bd Binary files /dev/null and b/screenshots/modeminfo-network.png differ diff --git a/screenshots/modeminfo-overview.png b/screenshots/modeminfo-overview.png new file mode 100644 index 0000000..c64e1ae Binary files /dev/null and b/screenshots/modeminfo-overview.png differ diff --git a/screenshots/modeminfo-setup.png b/screenshots/modeminfo-setup.png new file mode 100644 index 0000000..af055eb Binary files /dev/null and b/screenshots/modeminfo-setup.png differ