אין הגבלה על תכונות שרוצים להוסיף לדגם המכשיר. אלו התכונות שהם לא קשורים לסוג מכשיר אחד בלבד, אפשר להשתמש בהם לפי בחירתכם.
זה התהליך להוספת תכונה ולטיפול בפקודה הנכנסת:
קובעים איזו תכונה רוצים להוספה.
פותחים את הקובץ
pushtotalk.py
.cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
מוסיפים את בלוק הקוד הבא מתחת לבלוק הקיים ש מטפל בפקודה
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.')
מוצאים את המידע שדרוש לכל משתנה בבלוק הקוד שלמעלה.
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')
עדכון דגם המכשיר עם התכונה שהוספתם בשלב 1.
מריצים את קוד המקור שהשתנה.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
python pushtotalk.py
מקישים על מקש Enter ומנסים שאילתה.
לדוגמה:
מגדירים את הבהירות ל-65%.
הפוך לכחול.