def onjust_opened(e): global green_led, red_led print 'just_opened' green_led.off() for i in xrange(15): red_led.on() time.sleep(0.3) red_led.off() time.sleep(0.3) fsm = Fysom({'initial': {'state':'reset', 'event':'init'}, 'events': [ {'name': 'open_now', 'src': 'closed', 'dst': 'just_opened'}, {'name': 'opened_forever', 'src': 'just_opened', 'dst': 'open'}, {'name': 'close_now', 'src': 'open', 'dst': 'closed'}, {'name': 'was_closed', 'src': 'reset', 'dst': 'closed'}, {'name': 'was_open', 'src': 'reset', 'dst': 'just_opened'}], 'callbacks': { 'onreset': onreset, 'onopen': onopen, 'onclosed': onclosed, 'onjust_opened': onjust_opened, }}) fsm.was_closed() fsm.open_now() fsm.opened_forever() fsm.close_now()