fancontrol/fancontrol.py
2026-10-01 19:56:13 +00:00

40 lines
No EOL
1.1 KiB
Python

import asyncio
import asyncpio
from button import button
from decoder import decoder
from display import display
def wheel_handler(dir):
print(f"wheel: {dir}")
loop = asyncio.get_event_loop()
loop.create_task(disp.write(1, f"wheel: {dir}"))
def button_test(*args):
print(args)
loop = asyncio.get_event_loop()
loop.create_task(disp.write(2, args))
async def tcpu_monitor():
loop = asyncio.get_event_loop()
while True:
with open("/sys/class/thermal/thermal_zone0/temp") as temp:
loop.create_task(disp.write(3, f"{int(temp.read())/1000:4.1f}{chr(0b11011111)}C", 14))
await asyncio.sleep(1)
async def main():
pi = asyncpio.pi()
dec = decoder(pi, 27, 17, wheel_handler)
b1 = button(pi, 23, button_test)
b2 = button(pi, 24, button_test)
await pi.connect()
await dec.start()
await b1.start()
await b2.start()
if __name__ == "__main__":
disp = display()
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.create_task(main())
loop.create_task(tcpu_monitor())
loop.run_forever()