The scripts generally works fine if manually triggered from command line via /system script run, but not when scheduled.
Via debug printing I found out that the status script is stopping at the line "/interface lte info [find where name="lte1"] once do={" if scheduled.
So my questions are:
* Why is the script not working if scheduled?
* Is there a way to use the official SMS script functionality for this? I want to reply to the original SMS sender, is that SMS senders address available?
Code: Select all
1 name="status" owner="admin" policy=read,sensitive dont-require-permissions=no last-started=oct/06/2018 16:16:53 run-count=567 source=
:global smsPhone
:local co
:local at
:local su
:local cc
:local tx [/interface get lte1 tx-byte]
:local rx [/interface get lte1 rx-byte]
/interface lte info [find where name="lte1"] once do={
:set at $"access-technology"
:set co $"current-operator"
:set su $"session-uptime"
:set cc $"current-cellid"
:if ( [:len $smsPhone] > 0 ) do={
:log info "[SMS] Status SMS sent to $smsPhone: $co: $at, up=$su, rsrp=$rsrp, sinr=$sinr, lac=$lac, cellid=$cc"
:do {
/tool sms send lte1 "$smsPhone" message="$co: $at, up=$su, rsrp=$rsrp, sinr=$sinr, lac=$lac, cellid=$cc"
} on-error={ :log info "[SCRIPT] status script SMS send error" }
} else={
:log info "[LTE] $co: $at, up=$su, rsrp=$rsrp, sinr=$sinr, lac=$lac, cellid=$cc, tx=$tx, rx=$rx"
}
}
:log debug "[SCRIPT] status script finished"
2 name="check-sms-messages" owner="admin" policy=read,sensitive dont-require-permissions=yes last-started=oct/06/2018 16:27:00 run-count=610
source=
:local curDate [/system clock get date]
:local curTime [/system clock get time]
:global smsPhone nil
:local smsTimestamp
:local smsMessage
:foreach i in=[/tool sms inbox find] do={
:set smsPhone [/tool sms inbox get $i phone];
:set smsTimestamp [/tool sms inbox get $i timestamp];
:set smsMessage [/tool sms inbox get $i message];
:log debug "[SMS] $1 from=$smsPhone, ts=$smsTimestamp, msg=$smsMessage"
:if ( $smsMessage = "status <PASSWORD>" ) do={
:log info "[SMS] Status requested by $smsPhone"
/system script run [/system script find name=status]
/tool sms inbox remove $i
}
:if ( $smsMessage = "reboot <PASSWORD>" ) do={
:log info "[SMS] Reboot requested by $smsPhone"
/tool sms send lte1 "$smsPhone" message="Reboot bestaetigt"
/tool sms inbox remove $i
/system reboot
}
}
Code: Select all
/system routerboard> print
;;; Warning: cpu not running at default frequency
routerboard: yes
model: RBSXTR
serial-number: 9983XXXXXXX
firmware-type: qca9531L
factory-firmware: 6.41.3
current-firmware: 6.43.2
upgrade-firmware: 6.43.2
* Also this wont work if scheduled (no error printed, but script stops there)
Code: Select all
:global lteStat ([/interface lte info [find where name="lte1"] once as-value])