#!/usr/bin/env python3 """ Check recent messages in Home Assistant room """ import asyncio import json import httpx from datetime import datetime # Matrix configuration MATRIX_HOMESERVER = "https://matrix.klas.chat" MATRIX_ACCESS_TOKEN = "syt_a2xhcw_ZcjbRgfRFEdMHnutAVOa_1M7eD4" HOME_ASSISTANT_ROOM_ID = "!xZkScMybPseErYMJDz:matrix.klas.chat" async def check_recent_messages(): """Check recent messages in Home Assistant room""" print("šŸ“Ø Checking recent messages in Home Assistant room...") headers = { "Authorization": f"Bearer {MATRIX_ACCESS_TOKEN}", "Content-Type": "application/json" } try: async with httpx.AsyncClient() as client: # Get recent messages from the room response = await client.get( f"{MATRIX_HOMESERVER}/_matrix/client/v3/rooms/{HOME_ASSISTANT_ROOM_ID}/messages?dir=b&limit=10", headers=headers, timeout=30.0 ) if response.status_code == 200: data = response.json() events = data.get('chunk', []) print(f"āœ… Found {len(events)} recent events") print("\nšŸ“‹ Recent messages:") for i, event in enumerate(events): if event.get('type') == 'm.room.message': content = event.get('content', {}) body = content.get('body', '') sender = event.get('sender', '') timestamp = event.get('origin_server_ts', 0) # Convert timestamp to readable format dt = datetime.fromtimestamp(timestamp / 1000) time_str = dt.strftime('%Y-%m-%d %H:%M:%S') print(f" {i+1}. [{time_str}] {sender}: {body}") # Check if this is our test message if "Matrix API test message from LangMem debug script" in body: print(" āœ… This is our test message!") return True else: print(f"āŒ Failed to get messages: {response.status_code}") print(f"Response: {response.text}") return False except Exception as e: print(f"āŒ Error checking messages: {e}") return False async def main(): """Main function""" await check_recent_messages() if __name__ == "__main__": asyncio.run(main())