Skip to main content
Glama
smart_plug_automations.py9.33 kB
#!/usr/bin/env python3 """ Automatisations spécifiques pour les prises connectées de l'utilisateur """ import asyncio import sys import os import yaml from pathlib import Path from dotenv import load_dotenv # Charger les variables d'environnement load_dotenv() # Ajouter le chemin du module sys.path.insert(0, str(Path(__file__).parent.parent / "src")) from homeassistant_mcp_server.server import HomeAssistantClient async def create_smart_plug_automations(): """Créer des automatisations personnalisées pour les prises connectées""" hass_url = os.getenv("HASS_URL", "http://192.168.1.22:8123") hass_token = os.getenv("HASS_TOKEN", "") if not hass_token: print("❌ Token requis") return async with HomeAssistantClient(hass_url, hass_token) as client: print("🔌 Automatisations personnalisées pour vos prises connectées\n") automations = [] # 1. Sécurité Imprimante 3D - Extinction automatique après 3h print("🖨️ 1. Sécurité Imprimante 3D:") automation_3d = { "alias": "Sécurité Imprimante 3D - Extinction auto", "description": "Éteint automatiquement l'imprimante 3D après 3h pour éviter la surchauffe", "trigger": [ { "platform": "state", "entity_id": "switch.imprimante_3d_hender_5_plus_prise", "to": "on", "for": "03:00:00" } ], "action": [ { "service": "switch.turn_off", "target": { "entity_id": "switch.imprimante_3d_hender_5_plus_prise" } }, { "service": "persistent_notification.create", "data": { "title": "🖨️ Sécurité Imprimante 3D", "message": "L'imprimante 3D a été éteinte automatiquement après 3h d'utilisation pour votre sécurité.", "notification_id": "3d_printer_safety" } } ] } automations.append(automation_3d) result = await client.create_automation(automation_3d) if result.get("yaml_content"): print(f"```yaml\n{result['yaml_content']}```") print("\n" + "="*60 + "\n") # 2. Économie d'énergie - Extinction nocturne des appareils non essentiels print("🌙 2. Économie d'énergie nocturne:") automation_night = { "alias": "Extinction nocturne appareils non essentiels", "description": "Éteint TV, vidéo projecteur et borne arcade à 23h30", "trigger": [ { "platform": "time", "at": "23:30:00" } ], "action": [ { "service": "switch.turn_off", "target": { "entity_id": [ "switch.tv_switch_prise", "switch.video_projecteur_prise", "switch.borne_arcade_prise_1" ] } }, { "service": "persistent_notification.create", "data": { "title": "🌙 Économie d'énergie", "message": "Appareils de divertissement éteints automatiquement à 23h30", "notification_id": "night_energy_save" } } ] } automations.append(automation_night) result = await client.create_automation(automation_night) if result.get("yaml_content"): print(f"```yaml\n{result['yaml_content']}```") print("\n" + "="*60 + "\n") # 3. Surveillance des appareils critiques (Congélateur et Frigidaire) print("❄️ 3. Surveillance appareils critiques:") automation_fridge = { "alias": "Alerte panne congélateur/frigidaire", "description": "Alerte si le congélateur ou frigidaire est éteint accidentellement", "trigger": [ { "platform": "state", "entity_id": [ "switch.congelateur_prise_1", "switch.frigidaire_micro_ondes_prise_1" ], "to": "off", "for": "00:05:00" # 5 minutes } ], "action": [ { "service": "persistent_notification.create", "data": { "title": "❄️ ALERTE CRITIQUE", "message": "ATTENTION: {{ trigger.to_state.attributes.friendly_name }} est éteint depuis 5 minutes ! Vérifiez immédiatement.", "notification_id": "critical_appliance_alert" } } ] } automations.append(automation_fridge) result = await client.create_automation(automation_fridge) if result.get("yaml_content"): print(f"```yaml\n{result['yaml_content']}```") print("\n" + "="*60 + "\n") # 4. Gestion intelligente du bureau print("💻 4. Gestion intelligente bureau:") automation_office = { "alias": "Mode travail bureau", "description": "Allume automatiquement la prise bureau le matin en semaine", "trigger": [ { "platform": "time", "at": "08:00:00" } ], "condition": [ { "condition": "time", "weekday": ["mon", "tue", "wed", "thu", "fri"] } ], "action": [ { "service": "switch.turn_on", "target": { "entity_id": "switch.bureau_prise_1" } }, { "service": "persistent_notification.create", "data": { "title": "💻 Mode Travail", "message": "Prise bureau activée - Bonne journée de travail !", "notification_id": "office_mode" } } ] } automations.append(automation_office) result = await client.create_automation(automation_office) if result.get("yaml_content"): print(f"```yaml\n{result['yaml_content']}```") print("\n" + "="*60 + "\n") # 5. Automatisation plaque électrique (sécurité cuisine) print("🍳 5. Sécurité cuisine - Plaque électrique:") automation_cooking = { "alias": "Sécurité plaque électrique", "description": "Éteint automatiquement la plaque électrique après 2h", "trigger": [ { "platform": "state", "entity_id": "switch.plaque_electrique_prise_1", "to": "on", "for": "02:00:00" } ], "action": [ { "service": "switch.turn_off", "target": { "entity_id": "switch.plaque_electrique_prise_1" } }, { "service": "persistent_notification.create", "data": { "title": "🍳 Sécurité Cuisine", "message": "ATTENTION: La plaque électrique a été éteinte automatiquement après 2h d'utilisation pour votre sécurité !", "notification_id": "cooking_safety" } } ] } automations.append(automation_cooking) result = await client.create_automation(automation_cooking) if result.get("yaml_content"): print(f"```yaml\n{result['yaml_content']}```") print("\n" + "="*60 + "\n") print("🎯 Résumé des automatisations créées:") print("✅ Sécurité imprimante 3D (extinction après 3h)") print("✅ Économie d'énergie nocturne (23h30)") print("✅ Surveillance appareils critiques (congélateur/frigidaire)") print("✅ Mode travail bureau (8h en semaine)") print("✅ Sécurité plaque électrique (extinction après 2h)") print("\n💡 Utilisations via Claude Desktop:") print('• "Allume la prise du vidéo projecteur"') print('• "Éteins toutes les prises de divertissement"') print('• "Quel est l\'état de mes prises critiques ?"') print('• "Crée une automatisation pour éteindre la TV à 22h"') print('• "Active le mode économie d\'énergie"') if __name__ == "__main__": asyncio.run(create_smart_plug_automations())

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jonathan97480/McpHomeAssistant'

If you have feedback or need assistance with the MCP directory API, please join our Discord server