ניתוב כל פקודות הקול של Home Assistant לסוכן מותאם אישית

אתם רוצים שכל פקודת קול תופנה לסוכן שלכם. אולי מדובר ב-LLM מקומי או בעוזר עם תמיכה ב-MCP.

בגרסאות Home Assistant 2026.5 ומעלה, הדרך הסטנדרטית לעשות זאת נכשלת.

אם תשתמשו ב-wildcard גולמי באוטומציה, תקבלו שגיאת HTTP 500. שגיאה זו מתרחשת מכיוון שהמערכת מחפשת רשימה שאינה קיימת.

גם אם תמנעו מהשגיאה, פקודות מובנות יחטפו את השאילתות שלכם. אם תשאלו "When is the next low tide", Home Assistant עשוי לנסות להשמיע את השיר הבא במקום זאת.

הנה הדרך לפתור את שתי הבעיות.

הבעיות

  1. MissingListError: כשמשתמשים ב-{text} באוטומציה, Home Assistant מצפה לרשימה רשומה בשם "text". מכיוון שלא ניתן להגדיר רשימות באוטומציות, המערכת קורסת.

  2. Intent Hijacking: פקודות מובנות כמו "turn on" או "play next" מתאימות למילים שלכם לפני שהסוכן המותאם אישית שלכם מקבל הזדמנות.

הפתרון

עליכם להעביר את לוגיקת ה-catch-all מתוך האוטומציות אל תוך משפטים מותאמים אישית (custom sentences). זה מאפשר לכם להגדיר wildcard אמיתי ומבטיח שהפקודה שלכם תיטען ראשונה.

שלב 1: יצירת משפט מותאם אישית

צרו קובץ בתיקיית ה-custom_sentences שלכם. פעולה זו רושמת רשימת wildcard אמיתית.

language: "en"
intents:
  NaturaliQuery:
    data:
      - sentences:
          - "{text}"
lists:
  text:
    wildcard: true

שלב 2: שימוש ב-intent_script

במקום אוטומציה, השתמשו ב-intent_script בקובץ ה-configuration.yaml שלכם. זה מטפל בתגובה ושומר על זרימת פקודות הקול חלקה.

intent_script:
  NaturaliQuery:
    speech:
      text: "One moment."
    action:
      - action: mqtt.publish
        data:
          topic: my/agent/ask
          payload: '{"text": "{{ text }}"}'

למה זה עובד

• רשימת ה-wildcard מונעת את שגיאת ה-HTTP 500. • משפטים מותאמים אישית נטענים לפני ה-intents המובנים. הסוכן שלכם תופס את הפקודה ראשון. • שימוש ב-intent_script מונע מצבי deadlocks של קול בלווייני חומרה (hardware satellites) רבים.

הערה: wildcard מלא יתפוס הכל, כולל "turn on the lights". אם ברצונכם לשמור על שליטה מקורית, הוסיפו מילת קידומת (prefix) למשפט המותאם אישית שלכם כדי שהוא יופעל רק כשאתם רוצים בכך.

Source: https://dev.to/clarkbw--/route-all-home-assistant-voice-to-a-custom-agent-with-a-wildcard-sentence-4iee

Optional learning community: https://t.me/GyaanSetuAi