Aliases are something your shell interprets and runs. It's not a system call. That's why it works from your .sh scripts, but not this python script.
I would suggest changing your call to:
subprocess.call(['/bin/sh', '-i', '-c', 'say', 'the light is ...')
subprocess.call(['/bin/sh', '-i', '-c', 'say', 'the light is ...')