Closed arekjaskulski closed 5 days ago
Hello, Please provide these outputs: 1) /in lte at-chat 0 input="AT^DEBUG?" 2) /system script print where name=script1
Hello
/in lte at-chat 0 input="AT^DEBUG?"
[admin@MikroTik] > /in lte at-chat 0 input="AT^DEBUG?" failure: AT channel not responding
/system script print where name=script1
[admin@MikroTik] > /system script print where name=script1 Flags: I - invalid 0 name="script1" owner="admin" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon dont-require-permissions=no last-started=2024-08-17 12:34:30 run-count=4 source= /system logging add topics=async
/system script
add dont-require-permissions=yes name=lte_info owner=arteee87 policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/in lte at-chat [find where \
name=lte1] input=\"AT^DEBUG\?\"\r\
\n/in lte at-chat [find where name=lte1] input=\"AT^CA_INFO\?\""
add dont-require-permissions=no name=lte_log_parser policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":global lastTime;\r\
\n\r\
\n:global currentSINR [ :toarray [ /log find message~\"lte1: rcvd RS-SINR\" ] ] ;\r\
\n:global currentLineCountSINR [ :len \$currentSINR ] ;\r\
\n:global currentTime [ :totime [/log get [ :pick \$currentSINR (\$currentLineCountSINR -1) ] time ] ]>
\n\r\
\n:global currentRSSI [ :toarray [ /log find message~\"lte1: rcvd RSSI\" ] ] ;\r\
\n:global currentLineCountRSSI [ :len \$currentRSSI ] ;\r\
\n\r\
\n:global currentRSRP [ :toarray [ /log find message~\"lte1: rcvd AVG RSRP\" ] ] ;\r\
\n:global currentLineCountRSRP [ :len \$currentRSRP ] ;\r\
\n\r\
\n:global currentRSRQ [ :toarray [ /log find message~\"lte1: rcvd RSRQ\" ] ] ;\r\
\n:global currentLineCountRSRQ [ :len \$currentRSRQ ] ;\r\
\n\r\
\n:global messageSINR \"\";\r\
\n:global messageRSSI \"\";\r\
\n:global messageRSRP \"\";\r\
\n:global messageRSRQ \"\";\r\
\n\r\
\n:global valueSINR \"\";\r\
\n:global valueRSSI \"\";\r\
\n:global valueRSRP \"\";\r\
\n:global valueRSRQ \"\";\r\
\n\r\
\n:if ( \$lastTime = \"\" ) do={\r\
\n :set lastTime \$currentTime ;\r\
\n :set messageSINR [/log get [ :pick \$currentSINR (\$currentLineCountSINR-1) ] message];\r\
\n :set messageRSSI [/log get [ :pick \$currentRSSI (\$currentLineCountRSSI-1) ] message];\r\
\n :set messageRSRP [/log get [ :pick \$currentRSRP (\$currentLineCountRSRP-1) ] message];\r\
\n :set messageRSRQ [/log get [ :pick \$currentRSRQ (\$currentLineCountRSRQ-1) ] message];\r\
\n \r\
\n} else={\r\
\n :if ( \$lastTime < \$currentTime ) do={\r\
\n :set lastTime \$currentTime ;\r\
\n :set messageSINR [/log get [ :pick \$currentSINR (\$currentLineCountSINR-1) ] message];\r\
\n :set messageRSSI [/log get [ :pick \$currentRSSI (\$currentLineCountRSSI-1) ] message];\r\
\n :set messageRSRP [/log get [ :pick \$currentRSRP (\$currentLineCountRSRP-1) ] message];\r\
\n :set messageRSRQ [/log get [ :pick \$currentRSRQ (\$currentLineCountRSRQ-1) ] message];\r\
\n }\r\
\n}\r\
\n\r\
\n:if ([:len \$messageSINR]=25) do={\r\
\n :set valueSINR [:pick \$messageSINR 20 23];\r\
\n} else={\r\
\n :if ([:len \$messageSINR]=24) do={\r\
\n :set valueSINR [:pick \$messageSINR 20 22];\r\
\n } else={\r\
\n :if ([:len \$messageSINR]=23) do={\r\
\n :set valueSINR [:pick \$messageSINR 20];\r\
\n } else={\r\
\n :set valueSINR \"(err)\";\r\
\n}}}\r\
\n\r\
\n:if ([:len \$messageRSSI]=26) do={\r\
\n :set valueRSSI [:pick \$messageRSSI 17 23];\r\
\n} else={\r\
\n :if ([:len \$messageRSSI]=25) do={\r\
\n :set valueRSSI [:pick \$messageRSSI 17 22];\r\
\n } else={\r\
\n :set valueRSSI \"(err)\";\r\
\n }\r\
\n}\r\
\n\r\
\n:if ([:len \$messageRSRQ]=24) do={\r\
\n :set valueRSRQ [:pick \$messageRSRQ 17 22];\r\
\n} else={\r\
\n :if ([:len \$messageRSRQ]=23) do={\r\
\n :set valueRSRQ [:pick \$messageRSRQ 17 21];\r\
\n } else={\r\
\n :set valueRSRQ \"(err)\";\r\
\n } \r\
\n}\r\
\n\r\
\n:if ([:len \$messageRSRP]=30) do={\r\
\n :set valueRSRP [:pick \$messageRSRP 21 27];\r\
\n} else={\r\
\n :if ([:len \$messageRSRP]=29) do={\r\
\n :set valueRSRP [:pick \$messageRSRP 21 26];\r\
\n } else={\r\
\n :set valueRSRP \"(err)\";\r\
\n }\r\
\n}"
add dont-require-permissions=no name=http_push_lte_signal_info owner=arteee87 policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":global valueSINR;\r\
\n:global valueRSSI;\r\
\n:global valueRSRP;\r\
\n:global valueRSRQ;\r\
\n\r\
\n:local pushdata \"<prtg><result><channel>RSRQ</channel><value>\$valueRSRQ</value><float>1</float><u\
nit>custom</unit><customunit>dB</customunit></result><result><channel>RSRP</channel><value>\$valueRSR\
P</value><float>1</float><unit>custom</unit><customunit>dBm</customunit></result><result><channel>RSS\
I</channel><value>\$valueRSSI</value><float>1</float><unit>custom</unit><customunit>dBm</customunit><\
/result><result><channel>SINR</channel><value>\$valueSINR</value><unit>custom</unit><customunit>dB</c\
ustomunit></result></prtg>\";\r\
\n\r\
\n:local prtg \"PRTG PROBE IP:PORT"\r\
\n:local token \"TOKEN FORM THE HTTP PUSH DATA ADVANCED SENSOR (USE HTTP GET)\";\r\
\n\r\
\n/tool fetch http-method=get url=\"\$prtg/\$token\?content=\$pushdata\" http-header-field=\"h1:appli\
cation/x-www-form-urlencoded\""
/system scheduler
add interval=15s name=lte_info on-event="/system/script/run lte_info" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
add interval=30s name=lte_log_parser on-event="/system script run lte_log_parser" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
add interval=1m name=send_lte_info on-event="/system script run http_push_lte_signal_info" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
Hi. The first problem i see, is that your modem does not have AT channel working. You probably need to change the USB dev id on the windows system first. You must have at least 3 COM ports appear in the device manager.
Then for the script - I dont see any content in the "script1" that you're trying to run. Note, that when you run "lte_log_parser", you should have variables appear in the routeros env: (even when there is no data from the AT channel)
Hi ok txh I restored the modem to the DELL DW5821 status and I already have the data
/system/script/environment/pri detail
0 name="currentLineCountRSRP" value="2"
1 name="currentLineCountRSRQ" value="2"
2 name="currentLineCountRSSI" value="2"
3 name="currentLineCountSINR" value="1"
4 name="currentRSRP" value="387;539"
5 name="currentRSRQ" value="37a;539"
6 name="currentRSSI" value="37b;539"
7 name="currentSINR" value="*539"
8 name="currentTime" value="08:50:21"
9 name="lastTime" value="08:50:21"
10 name="messageRSRP" value="new script added by winbox-3.41/mac-msg(winbox):admin@54:BF:64:97:F6:12 (2 = /system script add dont-require-permissions=no name=script2 policy=1,2,3,ftp,reboot,read,write,policy,test,A,password,C,sniff,sensitive,F,romon,13 source=":global lastTime;\r\; \n:global currentSINR [ :toarray [ /log find message~\"lte1: rcvd RS-SINR\" ] ] ;\r\; \n:global currentLineCountSINR [ :len \$currentSINR ] ;\r\; \n:global currentTime [ :totime [/log get [ :pick \$currentSINR (\$currentLineCountSINR -1) ] time ] ];\r\; \n:global currentRSSI [ :toarray [ /log find message~\"lte1: rcvd RSSI\" ] ] ;\r\; \n:global currentLineCountRSSI [ :len \$currentRSSI ] ;\r\; \n:global currentRSRP [ :toarray [ /log find message~\"lte1: rcvd AVG RSRP\" ] ] ;\r\; \n:global currentLineCountRSRP [ :len \$currentRSRP ] ;\r\; \n:global currentRSRQ [ :toarray [ /log find message~\"lte1: rcvd RSRQ\" ] ] ;\r\; \n:global currentLineCountRSRQ [ :len \$currentRSRQ ] ;\r\; \n\r\; \n:global messageSI"
11 name="messageRSRQ" value="new script added by winbox-3.41/mac-msg(winbox):admin@54:BF:64:97:F6:12 (2 = /system script add dont-require-permissions=no name=script2 policy=1,2,3,ftp,reboot,read,write,policy,test,A,password,C,sniff,sensitive,F,romon,13 source=":global lastTime;\r\; \n:global currentSINR [ :toarray [ /log find message~\"lte1: rcvd RS-SINR\" ] ] ;\r\; \n:global currentLineCountSINR [ :len \$currentSINR ] ;\r\; \n:global currentTime [ :totime [/log get [ :pick \$currentSINR (\$currentLineCountSINR -1) ] time ] ];\r\; \n:global currentRSSI [ :toarray [ /log find message~\"lte1: rcvd RSSI\" ] ] ;\r\; \n:global currentLineCountRSSI [ :len \$currentRSSI ] ;\r\; \n:global currentRSRP [ :toarray [ /log find message~\"lte1: rcvd AVG RSRP\" ] ] ;\r\; \n:global currentLineCountRSRP [ :len \$currentRSRP ] ;\r\; \n:global currentRSRQ [ :toarray [ /log find message~\"lte1: rcvd RSRQ\" ] ] ;\r\; \n:global currentLineCountRSRQ [ :len \$currentRSRQ ] ;\r\; \n\r\; \n:global messageSI"
12 name="messageRSSI" value="new script added by winbox-3.41/mac-msg(winbox):admin@54:BF:64:97:F6:12 (2 = /system script add dont-require-permissions=no name=script2 policy=1,2,3,ftp,reboot,read,write,policy,test,A,password,C,sniff,sensitive,F,romon,13 source=":global lastTime;\r\; \n:global currentSINR [ :toarray [ /log find message~\"lte1: rcvd RS-SINR\" ] ] ;\r\; \n:global currentLineCountSINR [ :len \$currentSINR ] ;\r\; \n:global
and
[admin@MikroTik] > /interface/lte/ at-chat lte1 input="AT^DEBUG?" output: RAT:LTE EARFCN(DL/UL): 1749/19749 BAND: 3 BW: 10.0 MHz PLMN: 260 02 TAC: 57063 eNB ID(PCI): 170831-14(226) ESM CAUSE: 0 EMM CAUSE: -1 DRX: 320ms RSRP: -120.5dBm rx_diversity: 3 (-125.2dBm,-119.8dBm,-256.0dBm,-256.0dBm) RSRQ: -13.8dB RSSI: -90.3dBm L2W: 0 RI: 1 CQI: 13 RS-SNR: 3dB STATUS: SRV/REGISTERED SUB STATUS: NORMAL_SERVICE RRC Status: CONNECTED SVC: CS_PS Tx Pwr: - TMSI: 30197243137 IP: 10.128.188.86 AVG RSRP: -120.5dBm OK
but when I run the script
[admin@MikroTik] /system/script> run script1 expected command name (line 106 column 41) [admin@MikroTik] /system/script>
Hi, you still haven't provided the contents of "script1". If you use the config.rsc from the main page, you should follow this order when running scripts: 1) system/script/run lte_info 2) system/script/run lte_log_parser 3) system/script/run http_push_lte_signal_info
[admin@MikroTik] > /system script print where name=script1 Flags: I - invalid 0 name="script1" owner="admin" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon dont-require-permissions=no run-count=0 source= /system logging add topics=async
/system script
add dont-require-permissions=yes name=lte_info owner=arteee87 policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/in lte at-chat [find where \
name=lte1] input=\"AT^DEBUG\?\"\r\
\n/in lte at-chat [find where name=lte1] input=\"AT^CA_INFO\?\""
add dont-require-permissions=no name=lte_log_parser policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":global lastTime;\r\
\n\r\
\n:global currentSINR [ :toarray [ /log find message~\"lte1: rcvd RS-SINR\" ] ] ;\r\
\n:global currentLineCountSINR [ :len \$currentSINR ] ;\r\
\n:global currentTime [ :totime [/log get [ :pick \$currentSINR (\$currentLineCountSINR -1) ] time ] ];\r\
\n\r\
\n:global currentRSSI [ :toarray [ /log find message~\"lte1: rcvd RSSI\" ] ] ;\r\
\n:global currentLineCountRSSI [ :len \$currentRSSI ] ;\r\
\n\r\
\n:global currentRSRP [ :toarray [ /log find message~\"lte1: rcvd AVG RSRP\" ] ] ;\r\
\n:global currentLineCountRSRP [ :len \$currentRSRP ] ;\r\
\n\r\
\n:global currentRSRQ [ :toarray [ /log find message~\"lte1: rcvd RSRQ\" ] ] ;\r\
\n:global currentLineCountRSRQ [ :len \$currentRSRQ ] ;\r\
\n\r\
\n:global messageSINR \"\";\r\
\n:global messageRSSI \"\";\r\
\n:global messageRSRP \"\";\r\
\n:global messageRSRQ \"\";\r\
\n\r\
\n:global valueSINR \"\";\r\
\n:global valueRSSI \"\";\r\
\n:global valueRSRP \"\";\r\
\n:global valueRSRQ \"\";\r\
\n\r\
\n:if ( \$lastTime = \"\" ) do={\r\
\n :set lastTime \$currentTime ;\r\
\n :set messageSINR [/log get [ :pick \$currentSINR (\$currentLineCountSINR-1) ] message];\r\
\n :set messageRSSI [/log get [ :pick \$currentRSSI (\$currentLineCountRSSI-1) ] message];\r\
\n :set messageRSRP [/log get [ :pick \$currentRSRP (\$currentLineCountRSRP-1) ] message];\r\
\n :set messageRSRQ [/log get [ :pick \$currentRSRQ (\$currentLineCountRSRQ-1) ] message];\r\
\n \r\
\n} else={\r\
\n :if ( \$lastTime < \$currentTime ) do={\r\
\n :set lastTime \$currentTime ;\r\
\n :set messageSINR [/log get [ :pick \$currentSINR (\$currentLineCountSINR-1) ] message];\r\
\n :set messageRSSI [/log get [ :pick \$currentRSSI (\$currentLineCountRSSI-1) ] message];\r\
\n :set messageRSRP [/log get [ :pick \$currentRSRP (\$currentLineCountRSRP-1) ] message];\r\
\n :set messageRSRQ [/log get [ :pick \$currentRSRQ (\$currentLineCountRSRQ-1) ] message];\r\
\n }\r\
\n}\r\
\n\r\
\n:if ([:len \$messageRSRP]=30) do={\r\
\n :set valueRSRP [:pick \$messageRSRP 21 27];\r\
\n} else={\r\
\n :if ([:len \$messageRSRP]=29) do={\r\
\n :set valueRSRP [:pick \$messageRSRP 21 26];\r\
\n } else={\r\
\n :set valueRSRP \"(err)\";\r\
\n }\r\
\n}"
add dont-require-permissions=no name=http_push_lte_signal_info owner=arteee87 policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":global valueSINR;\r\
\n:global valueRSSI;\r\
\n:global valueRSRP;\r\
\n:global valueRSRQ;\r\
\n\r\
\n:local pushdata \"<prtg><result><channel>RSRQ</channel><value>\$valueRSRQ</value><float>1</float><u\
nit>custom</unit><customunit>dB</customunit></result><result><channel>RSRP</channel><value>\$valueRSR\
P</value><float>1</float><unit>custom</unit><customunit>dBm</customunit></result><result><channel>RSS\
I</channel><value>\$valueRSSI</value><float>1</float><unit>custom</unit><customunit>dBm</customunit><\
/result><result><channel>SINR</channel><value>\$valueSINR</value><unit>custom</unit><customunit>dB</c\
ustomunit></result></prtg>\";\r\
\n\r\
\n:local prtg \"PRTG PROBE IP:PORT";\r\
\n:local token \"TOKEN FORM THE HTTP PUSH DATA ADVANCED SENSOR (USE HTTP GET)\";\r\
\n\r\
\n/tool fetch http-method=get url=\"\$prtg/\$token\?content=\$pushdata\" http-header-field=\"h1:appli\
cation/x-www-form-urlencoded\""
/system scheduler add interval=15s name=lte_info on-event="/system/script/run lte_info" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup add interval=30s name=lte_log_parser on-event="/system script run lte_log_parser" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup add interval=1m name=send_lte_info on-event="/system script run http_push_lte_signal_info" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
Hello, is this the result you are looking for?
What you have in the "script1" is not a script, but a config file. Remove all the scripts you've created and do this: /import config.rsc
or
copy-paste the contents of config.rsc from the main page to the terminal
[admin@MikroTik] > /import config.rsc expected command name (line 106 column 41) [admin@MikroTik] >
look in script : currentSINR
I have it lte1: rcvd RS-SNR: 7dB
Try creating them manually - for "http_push_lte_signal_info", copy contents from here: https://github.com/arteee87/Get-LTE-signal-from-AT-command-mikrotik/blob/main/http_push_lte_signal_info.rsc
And for "lte_log_parser" - from here: https://github.com/arteee87/Get-LTE-signal-from-AT-command-mikrotik/blob/main/lte_log_parser.rsc
could not reproduce
[admin@MikroTik] /system/script> run script1 expected end of command (line 106 column 40)
RBM 33G Mikrotik 7.15.3 - Telit LN960 Mobile Broadband , DW5821E , firmware T77W968.F1.0.0.5.2.GC.013 050