функция чтения SMS из PDU LTE модемов с пересылкой в чатбот Телеграмм

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
ureman
Сообщения: 3
Зарегистрирован: 27 ноя 2023, 07:54

Sertik писал(а): 17 апр 2024, 11:34
люто плюсую, такая же тема есть и нужна
Можете люто, можете как угодно плюсовать - я не пишу скрипты на заказ. Я свободный художник ... Это моё хобби, а не работа.
так я и не неволю Вас, я просто "люто плюсуя" высказал мнение , что тема, к несчастью, актуальна не только у меня


Vini
Сообщения: 11
Зарегистрирован: 27 янв 2020, 12:56

Уважаемый Sertik, спасибо Вам за полезные скрипты!
Отлично работает на ROS 7.18.2.
Проверено на модемах T99W175 (с e-SIM и физической SIM), Quectel EP06-E, Quectel EM-12G.
Уверен, что будет работать и на других, т.к. используемые команды описаны в спецификации GSM 07.05, и, думаю, оно должно поддерживаться всеми нормальными модемами (не свистками))).
Так же в Вашем скрипте (по крайней мере у меня так было) не обрабатывалась первая СМСка, а с последующими всё ОК, подправил у себя.


Sertik
Сообщения: 1661
Зарегистрирован: 15 сен 2017, 09:03

Спасибо за отзыв, но тут спасибо в основном не мне, а "соавторам". Я лишь обернул в функцию чуть чуть ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Nekto
Сообщения: 12
Зарегистрирован: 28 мар 2023, 17:14

Всех категорически приветствую.
Vini писал(а): 15 май 2025, 15:16 Так же в Вашем скрипте (по крайней мере у меня так было) не обрабатывалась первая СМСка, а с последующими всё ОК, подправил у себя.
А можно чуть поподробнее, что и как поправили?

И автору темы вопрос. Что-то произошло, и стали у меня сыпаться в лог ошибки в момент работы скрипта вида
GSM: rcvd unsolicited AT for lte1: +CPMS: 1,5,1,5,1,5

Если ручками функцию запустить, то такой вывод:
[ххх@LTE] > $FuncSmsResend translite SM
output: OK

SMS Inbox count: 3
first two bytes is not 91, skipping...
first two bytes is not 91, skipping...
output: OK

output: OK

output: +CMS ERROR: 321

LTE [13.09.2025 17:11:04] SMS from MTCID: [0608]E[1C02][0200][2004][3504][3304][3E
00][2004][3D04][3804][3A04][3E04][3C04][43]

status: finished
downloaded: 0KiB
total: 0KiB
duration: 0s

И в телегу прилетают НЕтранслитерированные сообщения в виде [0608]E[1C02][0200][2004][3504][3304][3E
00][2004][3D04][3804][3A04][3E04][3C04][43]
Что-то не могу разобраться, что бы это могло быть. Может подскажете где затык?
ROS 7.19.3


Vini
Сообщения: 11
Зарегистрирован: 27 янв 2020, 12:56

Nekto писал(а): 13 сен 2025, 18:00 А можно чуть поподробнее, что и как поправили?
Подправил в двух местах, в комментариях видно:
Первое (без этого первое СМС не обрабатывалось):

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

  :while ($inboxCursor < $inboxCount) do={
    #:set inboxCursor ($inboxCursor+1); #Перенес строку ниже. В оригинале тут
    :local sms [/interface lte at-chat $CLTEx input="AT+CMGR=$inboxCursor" as-value wait=yes];
    :set inboxCursor ($inboxCursor+1); #Перенес строку сюда
Второе (без этого первое СМС не удалялось):

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

  :if ($autodelete=1) do={
    :set inboxCursor 0;
    :do {
      #:set inboxCursor ($inboxCursor+1); #Перенес на строку ниже. В оригинале тут
      /interface lte at-chat $CLTEx input="AT+CMGD=$inboxCursor";
      :set inboxCursor ($inboxCursor+1); #Перенес строку сюда
     } while ($inboxCursor < $inboxCount);
А какой модем используете, если не секрет?


Nekto
Сообщения: 12
Зарегистрирован: 28 мар 2023, 17:14

Vini писал(а): 14 сен 2025, 09:19 Подправил в двух местах, в комментариях видно:
Благодарю, попробую.
Vini писал(а): 14 сен 2025, 09:19 А какой модем используете, если не секрет?
Вообще не секрет ) Quectel EM12 Revision: EM12GPAR01A09M4G_MSFT


Vini
Сообщения: 11
Зарегистрирован: 27 янв 2020, 12:56

Nekto писал(а): 14 сен 2025, 09:28 Quectel EM12
С таким я тоже пробовал, но не MSFT, а обычный. Проблем не было.
Оператор - Мегафон.


Nekto
Сообщения: 12
Зарегистрирован: 28 мар 2023, 17:14

Как-то избирательно происходит транслитерация. Какие-то сообщения переводятся, какие-то - нет.
 Немного команд

Вот есть несколько СМС
[.@LTE] > /interface/lte/at-chat lte1 input="AT+CMGL=4" wait=yes
output: +CMGL: 2,1,,156
07919731899699F36006D04DEA100008529061302405218C050003640501041F043E04360430043B04430439044104420430002C0020043F0440043E043204350440044C04420435002004310430043B0430043D044100210020041D0430002000310037002E00300039002E00320030003200350020043D04300020043D0435043C00200434043E043B0436043D043E00200431044B0442044C0020043D04350020043C
+CMGL: 3,1,,156
07919731899699F36006D04DEA100008529061302405218C0500036405020435043D043504350020003100350032002C003000300020044004430431002E00200434043B044F00200441043F043804410430043D0438044F002004300431043E043D0435043D04420441043A043E04390020043F043B04300442044B002E000A041F043E043F043E043B043D04380442044C002004410447043504420020043F0440044F
+CMGL: 4,1,,156
07919731899699F36006D04DEA100008529061302405218C0500036405040443044104350022002C0020043F043E0434043A043B044E0447043804320020043104350437043B0438043C043804420020043D04300020043C0435044104410435043D0434043604350440044B002004380020043D0430043204380433043004460438044E0020043D04300020003500200434043D04350439002004370430002000300020
+CMGL: 0,3,,37
07919781340300F021000B919718283740F000111BD6779AFE66BFED6F5033BD96BFE9E935485E16BFDFF43219
+CMGL: 1,3,,37
07919781340300F021000B919718283740F000111BD6779AFE66BFED6F5033BD96BFE9E935485E16BFDFF43219
OK

Пытаемся их переслать в телегу
[.@LTE] > $FuncSmsResend translite SM
output: OK

SMS Inbox count: 5
first two bytes is not 91, skipping...
first two bytes is not 91, skipping...
first two bytes is not 91, skipping...
first two bytes is not 91, skipping...
output: OK

output: OK

output: OK

output: OK

output: +CMS ERROR: 321

Тут всё хорошо, СМС транслитерировано и отправлено
LTE [16.09.2025 03:42:50] SMS from MTC: Pozhaluysta, prover'te balans! Na 17.09.2025 na nem dolzhno bit' ne menee 152,00 rub. dlya spisaniya abonentskoy plati. Popolnit' schet pryause", podklyuchiv bezlimit na messendzheri i navigaciyu na 5 dney za 0

status: finished
downloaded: 0KiBC-z pause]
total: 0KiB
duration: 1s

А тут уже нет транслитерации
LTE [73.82.2081 04:0F:00] SMS from 0B: D6779AFE66BFED6F5033BD96BFE9E935485E16BFDFF43219

status: finished
downloaded: 0KiBC-z pause]
total: 0KiB
duration: 1s

[.@LTE] > $FuncSmsResend translite SM
output: OK

SMS Inbox count: 3
first two bytes is not 91, skipping...
first two bytes is not 91, skipping...
output: OK

output: OK

output: +CMS ERROR: 321

Тут опять хорошо
LTE [16.09.2025 03:42:50] SMS from MTC: mo seychas mozhno zdes': l.mts.ru/1/pay Ostavaytes' "Na svyazi pri minrub.: *104#. S zabotoy, vash MTS

status: finished
downloaded: 0KiBC-z pause]
total: 0KiB
duration: 0s


Смотрим СМС. Ничего не отправляется, хотя СМС есть
[.@LTE] > $FuncSmsResend translite SM
output: OK

SMS Inbox count: 1
output: +CMS ERROR: 321

Выводим СМС, оно есть
[.@LTE] > /interface/lte/at-chat lte1 input="AT+CMGL=4" wait=yes
output: +CMGL: 0,3,,37
07919781340300F021000B919718283740F000111BD6779AFE66BFED6F5033BD96BFE9E935485E16BFDFF43219
OK

Но функция его не видит
[.@LTE] > $FuncSmsResend translite SM
output: OK

SMS Inbox count: 1
output: +CMS ERROR: 321

.@LTE] >


Ответить