Recently, I looked for a script to do a simple service availability checks to also monitor my mail server and ended up in writing a shell script called tiny-server-check. When my (mail) server is down, the script sends an SMS.
In order to send SMS, I wrote another script to deliver SMS via simple-fax.de. I use their fax service for a decade and it was obvious to try their short message service, too. Honestly, I would not really recommend simple-fax.de for their short message service. The prepaid model is good for low volume usage and the value for money is okay. But you can't get the delivery status. Their interface is buggy and just returns 'ok'. Thus, I opened a ticket. I do not like their FAX API either, because getting the status of a transmission leaves full complexity to the client. Getting a status after an operation ... who needs this? You see the pattern. Nevertheless, I published the SMS script on Github as well and once I get an answer to my ticket, I will adjust the SMS script.
Update 2022-12-23: A few weeks ago, I published an SMS Gateway as open source, which we use in penetration testing projects and that uses a modem pool with a bunch of prepaid SIM cards. This SMS gateway receives messages and forwards them to an e-mail box, but is also able to send SMS. The gateway is shipped with scripts for Icinga/Nagios, which allows you to send alerts via SMS.
Over at Pentagrid, we provide pentesting services.