הוספת תכונות ורכיבי handler נוספים

אין הגבלה על תכונות שרוצים להוסיף לדגם המכשיר. אלו התכונות שהם לא קשורים לסוג מכשיר אחד בלבד, אפשר להשתמש בהם לפי בחירתכם.

זה התהליך להוספת תכונה ולטיפול בפקודה הנכנסת:

  1. קובעים איזו תכונה רוצים להוספה.

  2. פותחים את הקובץ pushtotalk.py.

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    nano pushtotalk.py
  3. מוסיפים את בלוק הקוד הבא מתחת לבלוק הקיים ש מטפל בפקודה action.devices.commands.OnOff (לא למחוק את הפקודה הקיימת) בלוק הקוד).

    @device_handler.command('action.devices.commands.command-name')
    def my-function(parameter-name):
        if conditional:
            logging.info('Something happened.')
        else:
            logging.info('Something else happened.')
    
  4. מוצאים את המידע שדרוש לכל משתנה בבלוק הקוד שלמעלה.

    command-nameמעבר לדף של התכונה הספציפית שלב 1 (לדוגמה, ColorTemperature) משתמשים בפקודה מהטבלה Device CommandS.
    my-functionנותנים לפונקציית ה-handler את השם הרצוי.
    parameter-nameבידקו שוב את פקודות המכשיר בדף של התכונה. כל פקודה מכילה פרמטר אחד או יותר שמשויכים אליו. הם רשומים בקטע "params" בקטע EXECUTE בקשת JSON. יש להשתמש בשם הפרמטר המדויק. שימו לב: הם אובייקטים שמכילים פרמטרים אחרים. פשוט צריך להשתמש ברמה העליונה של האובייקט.
    conditionalאין צורך להשתמש בתנאי בקוד ה-handler, אבל אולי כדאי להבחין באופן שבו מבצעים את הפקודה הפקודה במכשיר.

    הנה כמה דוגמאות לתכונות של בהירות ו-ColorTemperature:

    @device_handler.command('action.devices.commands.BrightnessAbsolute')
    def brightnessCheck(brightness):
        if brightness > 50:
            logging.info('brightness > 50')
        else:
            logging.info('brightness <= 50')
    
    @device_handler.command('action.devices.commands.ColorAbsolute')
    def color(color):
        if color.get('name') == "blue":
            logging.info('color is blue')
        else:
            logging.info('color is not blue')
    
  5. עדכון דגם המכשיר עם התכונה שהוספתם בשלב 1.

  6. מריצים את קוד המקור שהשתנה.

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
    python pushtotalk.py
  7. מקישים על מקש Enter ומנסים שאילתה.

    לדוגמה:

    מגדירים את הבהירות ל-65%.

    הפוך לכחול.

השלב הבא

רישום פעולות מותאמות אישית במכשיר