You can persist custom state across runs through variables.

Variables will be stored on the application database and can model any kind of state that you want to share across different pieces of automation.

For example, you can set a AT_HOME variable in the previous procedure.at_home - and, conversely, you may want to unset it if you have a procedure.outside_home when that procedure is called.

from platypush import Variable, procedure

def at_home():
  # ...

def outside_home():
  # ...

Within another procedure or hook, for example, you may want to turn on the lights only if you’re at home:

from platypush import Variable, procedure, run

def my_procedure():
  # ...
  at_home = Variable('AT_HOME')

  if at_home.get():