Ejemplo n.º 1
0
    Sonos = 1
    Another = 2


keypad = Keypad(Mode)

actions = {
    Mode.Teams: {
        Key.KEY1: lambda: print("TK1"),
        Key.KEY2: lambda: print("TK2")
    },
    Mode.Sonos: {
        Key.KEY1: lambda: print("SK1"),
        Key.KEY3: lambda: print("TK3")
    }
}


def key_pressed(mode: Mode, key: Key):

    print("user defined")
    action = (actions.get(mode, {}).get(
        key, lambda: print(
            f"no action defined for '{key.name}' in mode '{mode.name}'")))

    action()


#keypad.start(key_pressed)
keypad.start(actions)
Ejemplo n.º 2
0
		new_pin=pin_change['newpin']
		if pin.change_pin(config.decider_addr+config.door_name+'/change_pin',uid=uid,old_pin=old_pin,new_pin=new_pin):
			beep_door.ack()
		else:
			beep_door.nak()

ident_store=Identity_store()
door=Door(gpio(30),open_callback=on_door_open)
lock_control=lock_ctrl.Lock_ctrl(IO_open=gpio(95),IO_close=gpio(67),IO_latch=gpio(29))
lock_led=Edge_detect(gpio(23,active_low=True))
lock_led.start()

# set unused but connected gpios to output
gpio(66,'out')
gpio(68,'out')

keypad=Keypad(dev='/dev/ttyACM0',on_key=on_key)
keypad.start()

reader_door=NFCreader.NFCreader(dev='/dev/ttyS2',on_card=card_on_door)
reader_exit=NFCreader.NFCreader(dev='/dev/ttyS3',on_card=card_on_exit)
beep_door=beeper.Beeper(reader_door.beep)
beep_exit=beeper.Beeper(reader_exit.beep)

lock=Lock_behaviour(lock_control,door,lock_led,beep_exit)
decide=decider.Decider_http(addr=config.decider_addr+config.door_name+'/',opener=lock.open,closer=lock.close,ack=beep_door.ack,nak=beep_door.nak)

alarm=Message(addr=config.alarm_addr+config.door_name)
reader_exit.start()
reader_door.start()
Ejemplo n.º 3
0
            'card': uid,
            'sak': sak,
            'old_pin': old_pin,
            'new_pin': new_pin
        })


ident_store = Identity_store()
door = Door(gpio(config.gpio_door_sensor),
            open_callback=on_door_open,
            close_callback=on_door_close)
lock_control = lock_ctrl.Lock_ctrl(IO_latch=gpio(config.gpio_electric_strike),
                                   IO_closer=gpio(config.gpio_door_closer))

keypad = Keypad(dev=serial.Serial(config.keypad_dev, 9600), on_key=on_key)
keypad.start()

reader_door = NFCreader.NFCreader(dev=config.outside_reader_dev,
                                  on_card=card_on_door)
reader_exit = NFCreader.NFCreader(dev=config.inside_reader_dev,
                                  on_card=card_on_exit)
beep_door = beeper.Beeper(reader_door.beep)
beep_exit = beeper.Beeper(reader_exit.beep)

interpreter = Interpreter(opener=lock_control.latch,
                          public=lock_control.public,
                          beeper_inside=beep_exit.beep_by_style,
                          beeper_outside=beep_door.beep_by_style)
hmac_calculator = hmac.new(config.hmac_key, digestmod='sha512')
validator = Validator(hmac_calculator)
mqtt = Mqtt(addr=config.mqtt_broker,
Ejemplo n.º 4
0
from statusled import StatusLED
from keypad import Keypad, TEL_16_KEY
from starcodes import StarCodes
from authorization import Authorization

for filename in os.listdir("/tmp"):
    os.remove("/tmp/{:s}".format(filename))

config = Configuration('config')

led = StatusLED()
led.start()
conn = Connection(config, status_led=led)
conn.start()
kpd = Keypad(config, status_led=led, layout=TEL_16_KEY)
kpd.start()

auth = Authorization(config, status_led=led)
starcode = StarCodes(config, auth, status_led=led)


async def watch_events(keypad):
    while True:
        event = await keypad.queue.get()
        user_code = "".join(
            event[:config.CODE_LENGTH])  # We leave the user code as a string
        if len(user_code) is 0: user_code = None
        if "*" in event:
            handle_event = starcode.runcode(int("".join(
                event[-2:])))  # But we convert starcodes to ints
        else: