Mercurial > code > home > repos > zulip
comparison bots/doorbell.py @ 0:96f842f12121
start
author | drewp@bigasterisk.com |
---|---|
date | Tue, 28 Jan 2025 23:30:02 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:96f842f12121 |
---|---|
1 import asyncio | |
2 import logging | |
3 | |
4 import aiomqtt | |
5 | |
6 from bigastbot import BigAstBot | |
7 | |
8 logging.basicConfig(level=logging.INFO, | |
9 format='%(asctime)s %(levelname)s %(name)s %(message)s', | |
10 datefmt='%Y-%m-%d %H:%M:%S') | |
11 log = logging.getLogger() | |
12 | |
13 | |
14 async def main(): | |
15 bot = BigAstBot(email='doorbell-bot@chat.bigasterisk.com') | |
16 | |
17 async with aiomqtt.Client("mqtt2.bigasterisk.com", ) as client: | |
18 await client.subscribe("doorbell/button") | |
19 log.info("waiting for messages") | |
20 async for message in client.messages: | |
21 if message.payload == b'pressed': | |
22 ret = bot.send_to_channel(channelName="front-door", | |
23 topic="doorbell", | |
24 content="🔔 ring!") | |
25 log.info(f"sent: {ret!r}") | |
26 | |
27 | |
28 asyncio.run(main()) |