1. Hinweis
Als IoT-Entwickler können Sie Cloud-zu-Cloud-Integrationen erstellen, mit denen Ihre Nutzer ihre Geräte über Touchbedienung in der Google Home App und Sprachbefehle mit Assistant steuern können.
Bei Cloud-zu-Cloud-Integrationen werden Kontextdaten zum Zuhause und seinen Geräten über den Zuhause-Graphen bereitgestellt, um eine logische Karte des Zuhauses zu erstellen. Anhand dieses Kontexts kann Assistant die Anfragen des Nutzers in Bezug auf seinen Standort im Zuhause besser nachvollziehen. Im Home Graph kann beispielsweise das Konzept eines Wohnzimmers gespeichert werden, das mehrere Arten von Geräten verschiedener Hersteller enthält, z. B. einen Thermostat, eine Lampe, einen Ventilator und einen Staubsauger.
Vorbereitung
Aufgaben
In diesem Codelab veröffentlichen Sie einen Cloud-Dienst, der eine virtuelle intelligente Waschmaschine verwaltet, erstellen dann eine Cloud-zu-Cloud-Integration und verbinden sie mit Assistant.
Aufgaben in diesem Lab
- Smart-Home-Cloud-Dienst bereitstellen
- So verbinden Sie Ihren Dienst mit Assistant
- Gerätestatusänderungen bei Google veröffentlichen
Voraussetzungen
- Einen Webbrowser wie Google Chrome
- Ein iOS- oder Android-Gerät mit der Google Home App
- Node.js-Version 10.16 oder höher
- Ein Google Cloud-Rechnungskonto
2. Erste Schritte
Aktivitätseinstellungen aktivieren
Wenn Sie Google Assistant verwenden möchten, müssen Sie bestimmte Aktivitätsdaten mit Google teilen. Google Assistant benötigt diese Daten, um ordnungsgemäß zu funktionieren. Die Datenweitergabe ist jedoch nicht spezifisch für das SDK. Wenn Sie diese Daten freigeben möchten, erstellen Sie ein Google-Konto, falls Sie noch keines haben. Sie können jedes Google-Konto verwenden, es muss nicht Ihr Entwicklerkonto sein.
Öffnen Sie die Seite Aktivitätseinstellungen für das Google-Konto, das Sie mit Assistant verwenden möchten.
Die folgenden Ein/Aus-Schaltflächen müssen aktiviert sein:
- Web- und App-Aktivitäten: Setzen Sie außerdem ein Häkchen in das Kästchen Auch den Chrome-Verlauf sowie Aktivitäten auf Websites, in Apps und auf Geräten berücksichtigen, die Google-Dienste nutzen.
- Geräteinformationen
- Sprach- und Audioaktivitäten
Cloud-zu-Cloud-Integrationsprojekt erstellen
- Rufen Sie die Developer Console auf.
- Klicken Sie auf Projekt erstellen, geben Sie einen Namen für das Projekt ein und klicken Sie auf Projekt erstellen.
Cloud-zu-Cloud-Integration auswählen
Wählen Sie in der Developer Console auf der Projektstartseite unter Cloud-zu-Cloud die Option Cloud-zu-Cloud-Integration hinzufügen aus.
Firebase CLI installieren
Mit der Firebase-Befehlszeile (Firebase Command Line Interface, CLI) können Sie Ihre Webanwendungen lokal bereitstellen und in Firebase Hosting bereitstellen.
Führen Sie zum Installieren der Befehlszeile den folgenden npm-Befehl im Terminal aus:
npm install -g firebase-tools
Führen Sie folgenden Befehl aus, um zu prüfen, ob die Befehlszeile korrekt installiert wurde:
firebase --version
Autorisieren Sie die Firebase CLI mit Ihrem Google-Konto:
firebase login
3. Start-App ausführen
Nachdem Sie Ihre Entwicklungsumgebung eingerichtet haben, können Sie das Starterprojekt bereitstellen, um zu prüfen, ob alles richtig konfiguriert ist.
Quellcode abrufen
Klicken Sie auf den folgenden Link, um das Beispiel für dieses Codelab auf Ihren Entwicklungscomputer herunterzuladen:
Sie können das GitHub-Repository auch über die Befehlszeile klonen:
git clone https://github.com/google-home/smarthome-washer.git
Informationen zum Projekt
Das Startprojekt enthält die folgenden Unterverzeichnisse:
public:
Eine Benutzeroberfläche, mit der sich der Status der intelligenten Waschmaschine ganz einfach steuern und beobachten lässt.functions:
Ein vollständig implementierter Cloud-Dienst, der die intelligente Waschmaschine mit Cloud Functions for Firebase und Firebase Realtime Database verwaltet.
Firebase-Projekt erstellen
- Rufen Sie Firebase auf.
- Klicken Sie auf Projekt erstellen und geben Sie den Projektnamen ein.
- Klicken Sie auf das Kästchen für die Zustimmung und dann auf Weiter. Wenn kein Kästchen für die Vereinbarung vorhanden ist, können Sie diesen Schritt überspringen.
- Suchen Sie nach der Projekt-ID Ihres Firebase-Projekts. Rufen Sie die Projektübersicht auf und klicken Sie auf das Symbol „Einstellungen“ > Projekteinstellungen.
- Ihr Projekt wird auf dem Tab Allgemein aufgeführt.
Mit Firebase verbinden
Rufen Sie das Verzeichnis washer-start
auf und richten Sie die Firebase CLI mit Ihrem Integrationsprojekt ein:
cd washer-start firebase use <firebase-project-id>
Firebase-Projekt konfigurieren
Initialisieren Sie ein Firebase-Projekt.
firebase init
Wählen Sie die CLI-Features Realtime Database, Functions und die Hosting-Funktion aus, die Firebase Hosting umfasst.
? Which Firebase CLI features do you want to set up for this directory? Press Space to select features, then Enter to confirm your choices. ❯◉ Realtime Database: Configure a security rules file for Realtime Database and (optionally) provision default instance ◯ Firestore: Configure security rules and indexes files for Firestore ◉ Functions: Configure a Cloud Functions directory and its files ◉ Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys ◯ Hosting: Set up GitHub Action deploys ◯ Storage: Configure a security rules file for Cloud Storage ◯ Emulators: Set up local emulators for Firebase products ◯ Remote Config: Configure a template file for Remote Config ◯ Extensions: Set up an empty Extensions manifest
Dadurch werden die erforderlichen APIs und Funktionen für Ihr Projekt initialisiert.
Initialisieren Sie die Echtzeitdatenbank, wenn Sie dazu aufgefordert werden. Sie können den Standardspeicherort für die Datenbankinstanz verwenden.
? It seems like you haven't initialized Realtime Database in your project yet. Do you want to set it up? Yes ? Please choose the location for your default Realtime Database instance: us-central1
Da Sie den Code des Starterprojekts verwenden, wählen Sie die Standarddatei für die Sicherheitsregeln aus und achten Sie darauf, die vorhandene Datenbankregelndatei nicht zu überschreiben.
? File database.rules.json already exists. Do you want to overwrite it with the Realtime Database Security Rules for <project-ID>-default-rtdb from the Firebase Console? No
Wenn Sie Ihr Projekt neu initialisieren, wählen Sie Überschreiben aus, wenn Sie gefragt werden, ob Sie eine Codebasis initialisieren oder überschreiben möchten.
? Would you like to initialize a new codebase, or overwrite an existing one? Overwrite
Verwenden Sie beim Konfigurieren Ihrer Funktionen die Standarddateien und achten Sie darauf, die vorhandenen Dateien index.js und package.json im Projektbeispiel nicht zu überschreiben.
? What language would you like to use to write Cloud Functions? JavaScript ? Do you want to use ESLint to catch probable bugs and enforce style? No ? File functions/package.json already exists. Overwrite? No ? File functions/index.js already exists. Overwrite? No
Wenn Sie Ihr Projekt neu initialisieren, wählen Sie Nein aus, wenn Sie gefragt werden, ob Sie „functions/.gitignore“ initialisieren oder überschreiben möchten.
? File functions/.gitignore already exists. Overwrite? No
? Do you want to install dependencies with npm now? Yes
Konfigurieren Sie abschließend Ihre Hosting-Einrichtung so, dass das Verzeichnis public
im Projektcode verwendet wird, und verwenden Sie die vorhandene Datei index.html. Wählen Sie Nein aus, wenn Sie gefragt werden, ob Sie ESLint verwenden möchten.
? What do you want to use as your public directory? public ? Configure as a single-page app (rewrite all urls to /index.html)? Yes ? Set up automatic builds and deploys with GitHub? No ? File public/index.html already exists. Overwrite? No
Wenn ESLint versehentlich aktiviert wurde, gibt es zwei Möglichkeiten, es zu deaktivieren:
- Rufen Sie über die Benutzeroberfläche den Ordner
../functions
im Projekt auf, wählen Sie die ausgeblendete Datei.eslintrc.js
aus und löschen Sie sie. Nicht mit dem ähnlich benannten.eslintrc.json
verwechseln. - Über die Befehlszeile:
cd functions rm .eslintrc.js
Fügen Sie in der Datei washer-done/firebase.json
den folgenden Code hinzu:
{
"database": {
"rules": "database.rules.json"
},
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
"headers": [{
"source" : "**/*.@(js|html)",
"headers" : [ {
"key" : "Cache-Control",
"value" : "max-age=0"
} ]
}],
"functions": [
{
"source": "functions",
"codebase": "default",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"*.local"
]
}
]
}
In Firebase bereitstellen
Nachdem Sie die Abhängigkeiten installiert und Ihr Projekt konfiguriert haben, können Sie die App zum ersten Mal ausführen.
firebase deploy
Die Ausgabe der Konsole sollte so aussehen:
... ✔ Deploy complete! Project Console: https://console.firebase.google.com/project/<firebase-project-id>/overview Hosting URL: https://<firebase-project-id>.web.app
Mit diesem Befehl werden eine Webanwendung und mehrere Cloud Functions for Firebase bereitgestellt.
Öffnen Sie die Hosting-URL in Ihrem Browser (https://
), um die Webanwendung aufzurufen. Daraufhin wird die folgende Benutzeroberfläche angezeigt:
Diese Web-UI ist eine Drittanbieterplattform, mit der sich Gerätestatus ansehen oder ändern lassen. Klicken Sie auf AKTUALISIEREN, um Ihre Datenbank mit Geräteinformationen zu füllen. Auf der Seite werden keine Änderungen angezeigt, aber der aktuelle Status Ihrer Waschmaschine wird in der Datenbank gespeichert.
Jetzt ist es an der Zeit, den von Ihnen bereitgestellten Cloud-Dienst über die Google Home Developer Console mit Google Assistant zu verbinden.
Developer Console-Projekt konfigurieren
Geben Sie auf dem Tab Entwickeln einen Anzeigenamen für die Interaktion ein. Dieser Name wird in der Google Home App angezeigt.
Laden Sie unter App-Branding eine png
-Datei für das App-Symbol mit einer Größe von 144 × 144 Pixeln und dem Namen
hoch.
So aktivieren Sie die Kontoverknüpfung:
Client-ID |
|
Clientschlüssel |
|
Autorisierungs-URL |
|
Token-URL |
|
Geben Sie unter Cloud-Ausführungs-URL die URL Ihrer Cloud-Funktion ein, die die Smart-Home-Intents ausführt.
https://us-central1-
Klicken Sie auf Speichern, um die Projektkonfiguration zu speichern, und dann auf Weiter: Test, um Tests für Ihr Projekt zu aktivieren.
Jetzt können Sie mit der Implementierung der Webhooks beginnen, die erforderlich sind, um den Gerätestatus mit Assistant zu verknüpfen.
4. Waschmaschinen erstellen
Nachdem Sie die Integration konfiguriert haben, können Sie Geräte hinzufügen und Daten senden. Ihr Cloud-Dienst muss die folgenden Intents verarbeiten:
- Ein
SYNC
-Intent wird ausgelöst, wenn Assistant wissen möchte, welche Geräte der Nutzer verbunden hat. Dieser wird an deinen Dienst gesendet, wenn der Nutzer ein Konto verknüpft. Du solltest mit einer JSON-Nutzlast aller Geräte des Nutzers und ihrer Funktionen antworten. - Eine
QUERY
-Intent wird verwendet, wenn Assistant den aktuellen Status eines Geräts wissen möchte. Sie sollten mit einer JSON-Nutzlast mit dem Status jedes angeforderten Geräts antworten. - Ein
EXECUTE
-Intent wird ausgelöst, wenn Assistant ein Gerät im Namen eines Nutzers steuern möchte. Sie sollten mit einer JSON-Nutzlast mit dem Ausführungsstatus jedes angeforderten Geräts antworten. - Eine
DISCONNECT
-Intention wird ausgelöst, wenn der Nutzer die Verknüpfung seines Kontos mit Assistant aufhebt. Sie sollten keine Ereignisse mehr für die Geräte dieses Nutzers an Assistant senden.
In den folgenden Abschnitten aktualisieren Sie die Funktionen, die Sie zuvor zum Bearbeiten dieser Intents bereitgestellt haben.
SYNC-Antwort aktualisieren
Öffnen Sie functions/index.js
. Diese Datei enthält den Code, mit dem auf Anfragen von Assistant geantwortet wird.
Sie müssen eine SYNC
-Intention verarbeiten, indem Sie die Gerätemetadaten und ‑funktionen zurückgeben. Aktualisieren Sie das JSON im onSync
-Array, um die Geräteinformationen und empfohlenen Merkmale für eine Waschmaschine einzuschließen.
index.js
app.onSync((body) => {
return {
requestId: body.requestId,
payload: {
agentUserId: USER_ID,
devices: [{
id: 'washer',
type: 'action.devices.types.WASHER',
traits: [
'action.devices.traits.OnOff',
'action.devices.traits.StartStop',
'action.devices.traits.RunCycle',
],
name: {
defaultNames: ['My Washer'],
name: 'Washer',
nicknames: ['Washer'],
},
deviceInfo: {
manufacturer: 'Acme Co',
model: 'acme-washer',
hwVersion: '1.0',
swVersion: '1.0.1',
},
willReportState: true,
attributes: {
pausable: true,
},
}],
},
};
});
In Firebase bereitstellen
Stellen Sie die aktualisierte Cloud-Auftragsausführung mit der Firebase CLI bereit:
firebase deploy --only functions
Verknüpfung mit Google Assistant
Wenn Sie Ihre Cloud-zu-Cloud-Integration testen möchten, müssen Sie Ihr Projekt mit einem Google-Konto verknüpfen. So können Sie über Google Assistant-Oberflächen und die Google Home App testen, die im selben Konto angemeldet sind.
- Öffnen Sie auf Ihrem Smartphone die Google Assistant-Einstellungen. Sie müssen mit demselben Konto angemeldet sein wie in der Console.
- Gehen Sie zu Google Assistant > Einstellungen > Smart-Home-Steuerung (unter „Assistant“).
- Klicken Sie oben rechts auf das Suchsymbol.
- Suchen Sie mit dem Präfix [test] nach Ihrer Test-App.
- Wählen Sie diesen Artikel aus. Google Assistant authentifiziert sich dann bei Ihrem Dienst und sendet eine
SYNC
-Anfrage, in der Ihr Dienst aufgefordert wird, eine Liste der Geräte für den Nutzer bereitzustellen.
Öffnen Sie die Google Home App und prüfen Sie, ob Ihre Waschmaschine angezeigt wird.
5. Befehle und Abfragen verarbeiten
Nachdem Ihr Cloud-Dienst die Waschmaschine jetzt ordnungsgemäß an Google meldet, müssen Sie die Möglichkeit hinzufügen, den Gerätestatus abzufragen und Befehle zu senden.
Absicht „QUERY“ verarbeiten
Ein QUERY
-Intent enthält eine Reihe von Geräten. Sie sollten für jedes Gerät den aktuellen Status angeben.
Bearbeiten Sie in functions/index.js
den QUERY
-Handler, um die Liste der Zielgeräte in der Intent-Anfrage zu verarbeiten.
index.js
app.onQuery(async (body) => {
const {requestId} = body;
const payload = {
devices: {},
};
const queryPromises = [];
const intent = body.inputs[0];
for (const device of intent.payload.devices) {
const deviceId = device.id;
queryPromises.push(queryDevice(deviceId)
.then((data) => {
// Add response to device payload
payload.devices[deviceId] = data;
}
));
}
// Wait for all promises to resolve
await Promise.all(queryPromises);
return {
requestId: requestId,
payload: payload,
};
});
Gib für jedes Gerät in der Anfrage den aktuellen Status zurück, der in der Realtime Database gespeichert ist. Aktualisieren Sie die Funktionen queryFirebase
und queryDevice
, um den Status der Waschmaschine zurückzugeben.
index.js
const queryFirebase = async (deviceId) => {
const snapshot = await firebaseRef.child(deviceId).once('value');
const snapshotVal = snapshot.val();
return {
on: snapshotVal.OnOff.on,
isPaused: snapshotVal.StartStop.isPaused,
isRunning: snapshotVal.StartStop.isRunning,
};
};
const queryDevice = async (deviceId) => {
const data = await queryFirebase(deviceId);
return {
on: data.on,
isPaused: data.isPaused,
isRunning: data.isRunning,
currentRunCycle: [{
currentCycle: 'rinse',
nextCycle: 'spin',
lang: 'en',
}],
currentTotalRemainingTime: 1212,
currentCycleRemainingTime: 301,
};
};
EXECUTE-Intention verarbeiten
Der Intent EXECUTE
verarbeitet Befehle zum Aktualisieren des Gerätestatus. Die Antwort gibt den Status jedes Befehls zurück, z. B. SUCCESS
, ERROR
oder PENDING
, sowie den neuen Gerätestatus.
Bearbeiten Sie in functions/index.js
den EXECUTE
-Handler, um die Liste der Merkmale zu verarbeiten, die aktualisiert werden müssen, und die Zielgeräte für jeden Befehl:
index.js
app.onExecute(async (body) => {
const {requestId} = body;
// Execution results are grouped by status
const result = {
ids: [],
status: 'SUCCESS',
states: {
online: true,
},
};
const executePromises = [];
const intent = body.inputs[0];
for (const command of intent.payload.commands) {
for (const device of command.devices) {
for (const execution of command.execution) {
executePromises.push(
updateDevice(execution, device.id)
.then((data) => {
result.ids.push(device.id);
Object.assign(result.states, data);
})
.catch(() => functions.logger.error('EXECUTE', device.id)));
}
}
}
await Promise.all(executePromises);
return {
requestId: requestId,
payload: {
commands: [result],
},
};
});
Aktualisieren Sie für jeden Befehl und jedes Zielgerät die Werte in der Echtzeitdatenbank, die dem angeforderten Attribut entsprechen. Ändern Sie die Funktion updateDevice
, um die entsprechende Firebase-Referenz zu aktualisieren und den aktualisierten Gerätestatus zurückzugeben.
index.js
const updateDevice = async (execution, deviceId) => {
const {params, command} = execution;
let state; let ref;
switch (command) {
case 'action.devices.commands.OnOff':
state = {on: params.on};
ref = firebaseRef.child(deviceId).child('OnOff');
break;
case 'action.devices.commands.StartStop':
state = params.start
? {isRunning: true, isPaused: false}
: {isRunning: false, isPaused: false};
ref = firebaseRef.child(deviceId).child('StartStop');
break;
case 'action.devices.commands.PauseUnpause':
const data = await queryDevice(deviceId);
state = (data.isPaused === false && data.isRunning === false)
? {isRunning: false, isPaused: false}
: {isRunning: !params.pause, isPaused: params.pause};
ref = firebaseRef.child(deviceId).child('StartStop');
break;
}
return ref.update(state)
.then(() => state);
};
6. Integration testen
Nachdem Sie alle drei Intents implementiert haben, können Sie testen, ob Ihre Integration die Waschmaschine steuert.
In Firebase bereitstellen
Stellen Sie die aktualisierte Cloud-Auftragsausführung mit der Firebase CLI bereit:
firebase deploy --only functions
Waschmaschine testen
Sie können die Wertänderung jetzt sehen, wenn Sie einen der folgenden Sprachbefehle über Ihr Smartphone ausprobieren:
„Hey Google, schalte meine Waschmaschine ein.“
„Hey Google, pausiere meine Waschmaschine.“
„Hey Google, schalte meine Waschmaschine aus.“
Sie können auch Fragen stellen, um den aktuellen Status Ihrer Waschmaschine zu sehen.
„Hey Google, ist meine Waschmaschine an?“
„Hey Google, läuft meine Waschmaschine?“
„Hey Google, welchen Zyklus läuft meine Waschmaschine gerade?“
Sie finden diese Abfragen und Befehle in den Logs, die in der Firebase Console im Bereich Funktionen unter Ihrer Funktion angezeigt werden. Weitere Informationen zu Firebase-Protokollen finden Sie unter Protokolle schreiben und aufrufen.
Sie finden diese Abfragen und Befehle auch in der Google Cloud Console unter Logging > Log-Explorer. Weitere Informationen zum Logging in Google Cloud finden Sie unter Auf Ereignisprotokolle mit Cloud Logging zugreifen.
7. Änderungen an Google melden
Sie haben Ihren Cloud-Dienst vollständig in die Smart-Home-Intents eingebunden, sodass Nutzer den aktuellen Status ihrer Geräte steuern und abfragen können. Die Implementierung bietet jedoch noch keine Möglichkeit, dass Ihr Dienst proaktiv Ereignisinformationen wie Änderungen an der Gerätepräsenz oder dem Gerätestatus an Assistant sendet.
Mit Synchronisierung anfordern können Sie eine neue Synchronisierungsanfrage auslösen, wenn Nutzer Geräte hinzufügen oder entfernen oder sich ihre Gerätefunktionen ändern. Mit Status melden kann Ihr Cloud-Dienst den Status eines Geräts proaktiv an den Home Graph senden, wenn Nutzer den Status eines Geräts physisch ändern, z. B. einen Lichtschalter einschalten, oder den Status über einen anderen Dienst ändern.
In diesem Abschnitt fügen Sie Code hinzu, um diese Methoden aus der Frontend-Webanwendung aufzurufen.
HomeGraph API aktivieren
Mit der HomeGraph API können Geräte und ihre Status im Home Graph eines Nutzers gespeichert und abgefragt werden. Wenn Sie diese API verwenden möchten, müssen Sie zuerst die Google Cloud Console öffnen und die HomeGraph API aktivieren.
Wählen Sie in der Google Cloud Console das Projekt aus, das Ihrer Integration entspricht. <project-id>.
Klicken Sie dann auf dem Bildschirm „API-Bibliothek“ für die HomeGraph API auf Aktivieren.
Berichtsstatus aktivieren
Schreibvorgänge in der Realtime Database lösen die Funktion reportstate
im Starterprojekt aus. Aktualisieren Sie die Funktion reportstate
in functions/index.js
, um die in die Datenbank geschriebenen Daten zu erfassen und über den Berichtsstatus in den Home Graph zu posten.
index.js
exports.reportstate = functions.database.ref('{deviceId}').onWrite(
async (change, context) => {
functions.logger.info('Firebase write event triggered Report State');
const snapshot = change.after.val();
const requestBody = {
requestId: 'ff36a3cc', /* Any unique ID */
agentUserId: USER_ID,
payload: {
devices: {
states: {
/* Report the current state of our washer */
[context.params.deviceId]: {
on: snapshot.OnOff.on,
isPaused: snapshot.StartStop.isPaused,
isRunning: snapshot.StartStop.isRunning,
},
},
},
},
};
const res = await homegraph.devices.reportStateAndNotification({
requestBody,
});
functions.logger.info('Report state response:', res.status, res.data);
});
Synchronisierung der Anfrage aktivieren
Wenn Sie das Symbol in der Web-UI des Front-Ends aktualisieren, wird die requestsync
-Funktion im Starterprojekt ausgelöst. Implementiere die Funktion requestsync
in functions/index.js
, um die HomeGraph API aufzurufen.
index.js
exports.requestsync = functions.https.onRequest(async (request, response) => {
response.set('Access-Control-Allow-Origin', '*');
functions.logger.info(`Request SYNC for user ${USER_ID}`);
try {
const res = await homegraph.devices.requestSync({
requestBody: {
agentUserId: USER_ID,
},
});
functions.logger.info('Request sync response:', res.status, res.data);
response.json(res.data);
} catch (err) {
functions.logger.error(err);
response.status(500).send(`Error requesting sync: ${err}`);
}
});
In Firebase bereitstellen
Stellen Sie den aktualisierten Code mit der Firebase CLI bereit:
firebase deploy --only functions
Die Implementierung testen
Klicken Sie in der Web-Benutzeroberfläche auf die Schaltfläche Aktualisieren und prüfen Sie, ob im Firebase Console-Protokoll eine Synchronisierungsanfrage angezeigt wird.
Passen Sie als Nächstes die Attribute der Waschmaschine in der Web-UI des Frontends an und klicken Sie auf Aktualisieren. Prüfen Sie, ob die an Google gemeldete Statusänderung in Ihren Firebase Console-Logs angezeigt wird.
8. Glückwunsch
Glückwunsch! Sie haben Assistant mithilfe von Cloud-zu-Cloud-Integrationen in einen Geräte-Cloud-Dienst eingebunden.
Weitere Informationen
Hier sind einige Ideen, wie Sie tiefer in die Materie einsteigen können:
- Fügen Sie Ihrem Gerät Modi und Schalter hinzu.
- Fügen Sie Ihrem Gerät weitere unterstützte Traits hinzu.
- Weitere Informationen zur lokalen Ausführung
- Weitere Informationen finden Sie in unserem GitHub-Beispiel.
Außerdem erfährst du mehr darüber, wie du eine Integration testen und zur Überprüfung einreichen kannst, einschließlich des Zertifizierungsverfahrens, um deine Integration für Nutzer zu veröffentlichen.