assuming I am running a tezos node, is there any way to create a smart contract in tezos that is capable of triggering outside actions? For example, sending an email to an address, or turning lights on or off in my home? This will I guess involve having a listener process running on the same processor as my node, that listens to all the new transactions and takes action when a transaction corresponding to the firing of the smart contract occurs. The crude idea for an on/off type command is that I can generate in advance hardcoded "flag" hashes for each particular command, and check if the hash appears anywhere in a new block and if it does, the command fires (whether a human put it there or a smart contract generated it doesn't matter). So that the sleeping value in a contract does not fire the trigger, I can simply store the hash minus one, and until the contract adds 1 to it it doesn't show up. Since the data in Tezos is public, I'm sure this can be done, but I'm wondering whether it can be done in a more simple and efficient way than the above hack, or if it's been done already. Thank you