diff --git a/src/p2p.py b/src/p2p.py new file mode 100644 index 0000000..e5d2464 --- /dev/null +++ b/src/p2p.py @@ -0,0 +1,39 @@ +import network +import aioespnow +import asyncio +import json +from time import sleep + + +class P2P: + def __init__(self): + network.WLAN(network.STA_IF).active(True) + self.broadcast = bytes.fromhex("ffffffffffff") + self.e = aioespnow.AIOESPNow() + self.e.active(True) + try: + self.e.add_peer(self.broadcast) + except: + pass + + async def send(self, data): + # Convert data to bytes if it's a string or dict + if isinstance(data, str): + payload = data.encode() + elif isinstance(data, dict): + payload = json.dumps(data).encode() + else: + payload = data # Assume it's already bytes + + # Use asend for async sending - returns boolean indicating success + result = await self.e.asend(self.broadcast, payload) + return result + + + +async def main(): + p = P2P() + await p.send(json.dumps({"dj": {"p": "on", "colors": ["#ff0000"]}})) + +if __name__ == "__main__": + asyncio.run(main())