Skip to content

Instantly share code, notes, and snippets.

@Mictronics
Created April 28, 2024 12:14
Show Gist options
  • Save Mictronics/9d122889ecc94085292acc333921d56c to your computer and use it in GitHub Desktop.
Save Mictronics/9d122889ecc94085292acc333921d56c to your computer and use it in GitHub Desktop.
Python script forwarding Gammu service SMS to Telegram
#!/usr/bin/env python3
from pisugar import *
import asyncio
import os
import sys
import telegram
async def main():
# Get Pisugar battery level
conn, event_conn = connect_tcp('localhost')
ps = PiSugarServer(conn, event_conn)
batt = int(ps.get_battery_level())
# Get SMS parts
numparts = int(os.environ['DECODED_PARTS'])
text = ''
# Are there any decoded parts?
if numparts == 0:
text = os.environ['SMS_1_TEXT']
# Get all text parts
else:
for i in range(1, numparts + 1):
varname = 'DECODED_%d_TEXT' % i
if varname in os.environ:
text = text + os.environ[varname]
# Log
print('Number %s have sent text: %s' % (os.environ['SMS_1_NUMBER'], text))
# Send by Telegram
bot = telegram.Bot(token='[your bot token]')
async with bot:
await bot.send_message(chat_id=[your chat ID], text="\U0001f4ac " + os.environ['SMS_1_NUMBER'].strip() + " | " + text)
# Indicate low battery level
if batt <= 25:
batt_str = "\nBattery " + str(batt) + "%"
await bot.send_message(chat_id=[your chat ID], text=batt_str)
if __name__ == "__main__":
asyncio.run(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment