|
Post by rrrrpa on Feb 20, 2024 19:07:13 GMT
I tried to send a SMS from the SIM7000A to itself. It appeared to be successful but nothing was received. The carrier's (T-Mobile) historical record does not show it either so apparently the SIM7000A will not send a SMS to itself.
Why?
As posted in another thread, I have found incoming SMSs are occasionally delayed for nearly up to 1 hour, and on rare occasion, not received at all. I would like to periodically (every 5-minutes?) test the SIM7000A by sending a SMS to itself in order to determine if corrective action (maybe a programmed SIM7000A restart? or system reboot?) is required. I have not yet found the best method to restart the SIM7000A.
|
|
|
Post by Botletics on Feb 20, 2024 19:32:36 GMT
Yea I'm not sure what the latency would be caused by, besides some network thing... You can restart the SIM7000 with modem.setFunctionality(6); but please note that it will not restart the Arduino as well, so the code would have to handle it appropriately and give it enough time to boot up and retry communication.
|
|
|
Post by rrrrpa on Feb 20, 2024 19:50:19 GMT
Are you saying the SIM7000A is able to send SMS to itself?
Are you saying execute modem.setFunctionality(6), give it some time (how much time?), and it will be ready to fly; or does it need to run thru all the Arduino setup again?
|
|
|
Post by Botletics on Feb 20, 2024 20:07:37 GMT
I don't think texting yourself is possible. I was referring to latency of texts from some other number. The SIM7000 takes about 3s to turn on. Restarting might be a bit longer. But you will need to handle that restart of the SIM7000 by pausing in the Arduino code.
|
|
|
Post by rrrrpa on Feb 21, 2024 3:52:36 GMT
Conclusions for the benefit of readers:
1. The SIM7000A can not send itself a SMS. The sendSMS will return successfully but the SMS will not be sent.
2. I lifted the SIM7000 initialization code from the LTE_Demo Example "setup" starting at: Serial.println(F("Modem basic test")); through printMenu(); and made it a subroutine = Botletics_SIM7000A().
Then created a restart routine to be called as needed:
void Botletics_Reset(void) { Serial.println(F("Executing Botletics_Reset")); Serial.println(F("Setting modem.setFunctionality(6)")); modem.setFunctionality(6); // Restart the module delay(7000); Serial.println(F("Executing Botletics_SIM7000A via Botletics_Reset")); Botletics_SIM7000A(); }
|
|