1
0
mirror of https://github.com/binary-kitchen/doorlockd synced 2024-12-22 02:14:26 +01:00

Port doorstate to latest libgpiod python bindings

Signed-off-by: Ralf Ramsauer <ralf@binary-kitchen.de>
This commit is contained in:
Ralf Ramsauer 2024-01-12 22:52:23 +01:00
parent 96fc3ba973
commit ae989da661

View File

@ -128,11 +128,16 @@ mqttc.message_callback_add(topic_alarm, mqtt_on_alarm)
mqttc.message_callback_add(topic_lockstate, mqtt_on_lockstate) mqttc.message_callback_add(topic_lockstate, mqtt_on_lockstate)
mqttc.connect(cfg.str('MQTT_HOST')) mqttc.connect(cfg.str('MQTT_HOST'))
chip = gpiod.Chip(cfg.str('GPIO_CHIP'))
pin = cfg.int('GPIO_PIN') pin = cfg.int('GPIO_PIN')
line = chip.get_line(pin) request = gpiod.request_lines(
line.request(consumer=prog, type=gpiod.LINE_REQ_EV_BOTH_EDGES) cfg.str('GPIO_CHIP'),
consumer = prog,
config = {
pin: gpiod.LineSettings(direction=gpiod.line.Direction.INPUT,
edge_detection=gpiod.line.Edge.BOTH),
},
)
player_alarm = AudioPlayer(f_alarm) player_alarm = AudioPlayer(f_alarm)
player_alarm.start() player_alarm.start()
@ -141,7 +146,7 @@ player_door_call = AudioPlayer(f_door_call)
player_door_call.start() player_door_call.start()
global door_open global door_open
door_open = line.get_value() == 1 door_open = request.get_value(pin) == gpiod.line.Value.ACTIVE
door_alarm_set = False door_alarm_set = False
@ -153,10 +158,10 @@ publish_doorstate()
while True: while True:
# Synchronous loop: GPIO # Synchronous loop: GPIO
ev_line = line.event_wait(sec=1) ev_line = request.wait_edge_events(1)
if ev_line: if ev_line:
event = line.event_read() request.read_edge_events()
door_open = event.type == gpiod.LineEvent.RISING_EDGE door_open = request.get_value(pin) == gpiod.line.Value.ACTIVE
print('door_open: %s' % door_open) print('door_open: %s' % door_open)
publish_doorstate() publish_doorstate()