#!/usr/bin/env python3 """ Test Matrix connection from host machine perspective """ import asyncio import os from nio import AsyncClient async def test_connection(homeserver_url: str): """Test connection to Matrix homeserver""" print(f"\nšŸ” Testing connection to: {homeserver_url}") matrix_user = os.environ.get("MATRIX_USER", "@einszwovier:einszwovier.local") matrix_pass = os.environ.get("MATRIX_PASS", "einszwo4") client = AsyncClient(homeserver_url, matrix_user) try: print(f" User: {matrix_user}") print(f" Attempting login...") resp = await client.login(matrix_pass) if hasattr(resp, 'access_token'): print(f" āœ… SUCCESS! Logged in as {matrix_user}") print(f" Device ID: {resp.device_id}") await client.logout() else: print(f" āŒ FAILED: {resp}") except Exception as e: print(f" āŒ ERROR: {e}") finally: await client.close() async def main(): print("=" * 60) print("Matrix Connection Test") print("=" * 60) # Test different homeserver URLs test_urls = [ "http://localhost:8008", "http://127.0.0.1:8008", "http://einszwovier.local:8008", ] for url in test_urls: await test_connection(url) print("\n" + "=" * 60) print("Recommendation:") print("If localhost/127.0.0.1 works but einszwovier.local fails,") print("configure Element to use: http://localhost:8008") print("=" * 60) if __name__ == "__main__": asyncio.run(main())