Smart-Home-Geräte mit Google Assistant verbinden

1. Hinweis

Als Entwickler des Internets der Dinge (IoT) können Sie Smart-Home-Aktionen erstellen, mit denen Ihre Nutzer ihre Geräte über die Touchbedienung in der Google Home App und Sprachbefehle mit Assistant steuern können.

79266e5f45e6ae20.gif

Smart-Home-Aktionen nutzen Home Graph, um Kontextdaten zum Zuhause und seinen Geräten bereitzustellen und eine logische Karte des Zuhauses zu erstellen. Dieser Kontext gibt Assistant ein natürliches Verständnis der Anfragen des Nutzers in Relation zu seinem Standort in seinem Zuhause. In Home Graph kann beispielsweise das Konzept eines Wohnzimmers gespeichert werden, in dem sich verschiedene Arten von Geräten verschiedener Hersteller befinden, z. B. Thermostate, Lampe, Ventilatoren und Staubsauger.

d009cef0f903d284.jpeg

Vorbereitung

Aufgaben

In diesem Codelab veröffentlichen Sie einen Cloud-Dienst, der eine virtuelle intelligente Waschmaschine verwaltet, erstellen dann eine Smart-Home-Aktion und verbinden sie mit Assistant.

Aufgaben in diesem Lab

  • Einen Smart-Home-Cloud-Dienst bereitstellen
  • Dienst mit Assistant verbinden
  • Gerätestatusänderungen bei Google veröffentlichen

Voraussetzungen

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 richtig zu funktionieren. Die Anforderung zum Teilen von Daten gilt jedoch nicht speziell für das SDK. Wenn Sie diese Daten teilen möchten, erstellen Sie ein Google-Konto, falls Sie noch keines haben. Sie können ein beliebiges Google-Konto verwenden. Es muss nicht Ihr Entwicklerkonto sein.

Öffnen Sie die Seite Aktivitätseinstellungen für das Google-Konto, mit dem Sie Assistant verwenden möchten.

Die folgenden Schalter müssen aktiviert sein:

  • Web- und App-Aktivitäten: Klicken Sie außerdem das Kästchen Auch den Chrome-Verlauf sowie Aktivitäten auf Websites, in Apps und auf Geräten berücksichtigen, die Google-Dienste nutzen an.
  • Geräteinformationen
  • Sprach- und Audioaktivitäten

Actions-Projekt erstellen

  1. Rufen Sie die Actions on Google Developer Console auf.
  2. Klicken Sie auf Neues Projekt, geben Sie einen Namen für das Projekt ein und klicken Sie auf PROJEKT ERSTELLEN.

3d6b68ca79afd54c.png

Wähle die Smart Home App aus.

Wählen Sie in der Actions Console auf dem Bildschirm „Übersicht“ die Option Smart Home aus.

2fa4988f44f8914b.png

Wählen Sie die Karte Smart Home aus und klicken Sie auf Mit dem Erstellen beginnen. Sie werden dann zur Projektkonsole weitergeleitet.

Firebase CLI installieren

Mit der Firebase-Befehlszeile (Command Line Interface, CLI) können Sie Ihre Web-Apps lokal bereitstellen und Ihre Web-App für Firebase Hosting bereitstellen.

Führen Sie den folgenden npm-Befehl über das Terminal aus, um die Befehlszeile zu installieren:

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, indem Sie folgenden Befehl ausführen:

firebase login

3. Start-App ausführen

Nachdem Sie Ihre Entwicklungsumgebung eingerichtet haben, können Sie das Startprojekt 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:

Oder Sie klonen das GitHub-Repository über die Befehlszeile:

git clone https://github.com/google-home/smarthome-washer.git

Über das Projekt

Das Startprojekt enthält die folgenden Unterverzeichnisse:

  • public: Eine Front-End-Benutzeroberfläche zum einfachen Steuern und Überwachen des Status der intelligenten Waschmaschine.
  • functions: Ein vollständig implementierter Cloud-Dienst, der die intelligente Waschmaschine mit Cloud Functions for Firebase und Firebase Realtime Database verwaltet.

Mit Firebase verbinden

Rufen Sie das Verzeichnis washer-start auf und richten Sie die Firebase CLI mit Ihrem Actions-Projekt ein:

cd washer-start
firebase use <project-id>

Firebase-Projekt konfigurieren

Initialisieren Sie ein Firebase-Projekt.

firebase init

Wählen Sie die CLI-Funktionen, Realtime Database, Functions und das Hosting-Feature aus, das Firebase Hosting enthält.

? 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 Realtime Database, 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 Startcode des Projekts verwenden, wählen Sie die Standarddatei für die Sicherheitsregeln aus und achten Sie darauf, dass Sie die vorhandene Datenbankregeldatei nicht ü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

Falls 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 der Funktionen die Standarddateien und achten Sie darauf, dass Sie die vorhandenen Dateien index.js und package.json im Projektbeispiel nicht ü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 No (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 im Projektcode das Verzeichnis public verwendet wird, und verwenden Sie die vorhandene Datei index.html. Wählen Sie No (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:

  1. Gehen Sie über die grafische Benutzeroberfläche zum Ordner ../functions unter dem Projekt, wählen Sie die versteckte Datei .eslintrc.js aus und löschen Sie sie. Verwechseln Sie ihn nicht mit dem ähnlich benannten .eslintrc.json.
  2. Über die Befehlszeile:
    cd functions
    rm .eslintrc.js
    

Damit Ihre Firebase-Konfiguration korrekt und vollständig ist, kopieren Sie die Datei firebase.json aus dem Verzeichnis washer-done in das Verzeichnis washer-start und überschreiben Sie dabei die Datei in washer-start.

Im Verzeichnis washer-start:

cp -vp ../washer-done/firebase.json .

In Firebase bereitstellen

Nachdem Sie nun die Abhängigkeiten installiert und das Projekt konfiguriert haben, können Sie die Anwendung zum ersten Mal ausführen.

firebase deploy

Die Ausgabe der Konsole sollte so aussehen:

...

✔ Deploy complete!

Project Console: https://console.firebase.google.com/project/<project-id>/overview
Hosting URL: https://<project-id>.web.app

Mit diesem Befehl wird eine Webanwendung zusammen mit mehreren Cloud Functions for Firebase bereitgestellt.

Öffnen Sie die Hosting-URL in Ihrem Browser (https://<project-id>.web.app), um die Web-App aufzurufen. Sie sehen die folgende Benutzeroberfläche:

5845443e94705557.png

Diese Web-UI stellt eine Drittanbieterplattform zum Ansehen oder Ändern des Gerätestatus dar. Klicken Sie auf AKTUALISIEREN, um die Datenbank mit Geräteinformationen zu füllen. Auf der Seite sind keine Änderungen zu sehen, aber der aktuelle Status der Waschmaschine wird in der Datenbank gespeichert.

Verbinden Sie nun den von Ihnen bereitgestellten Cloud-Dienst über die Actions Console mit Google Assistant.

Actions Console-Projekt konfigurieren

Gehen Sie unter Übersicht > Erstellen Sie eine Aktion und wählen Sie Aktion(en) hinzufügen aus. Geben Sie die URL der Cloud Functions-Funktion ein, die die Ausführung für die Smart-Home-Intents ermöglicht, und klicken Sie auf Save (Speichern).

https://us-central1-<project-id>.cloudfunctions.net/smarthome

9d7b223427f587ca.png

Klicken Sie auf der Seite Entwickeln > Aufruf, geben Sie einen Anzeigenamen für Ihre Aktion ein und klicken Sie auf Speichern. Dieser Name wird in der Google Home App angezeigt.

774d0c40c351c7da.png

a8c4673eb11d76ee.png

Um die Kontoverknüpfung zu aktivieren, wählen Sie die Option Entwickeln > Kontoverknüpfung. Folgende Einstellungen für die Kontoverknüpfung verwenden:

Client-ID

ABC123

Clientschlüssel

DEF456

Autorisierungs-URL

https://us-central1-<project-id>.cloudfunctions.net/fakeauth

Token-URL

https://us-central1-<project-id>.cloudfunctions.net/faketoken

9730d20b90bcc038.png

Klicken Sie auf Speichern, um die Konfiguration der Kontoverknüpfung zu speichern. Klicken Sie dann auf Testen, um Tests für Ihr Projekt zu aktivieren.

ee0547f05b5efd98.png

Du wirst zum Simulator weitergeleitet. Wenn die Option Test now enabled (Jetzt testen) nicht angezeigt wird, klicken Sie auf Reset Test (Test zurücksetzen), um zu prüfen, ob das Testen aktiviert ist.

d0495810dbadf059.png

Jetzt können Sie die Webhooks implementieren, die erforderlich sind, um den Gerätestatus mit Assistant zu verbinden.

4. Waschmaschine erstellen

Nachdem du deine Aktion konfiguriert hast, kannst du Geräte hinzufügen und Daten senden. Ihr Cloud-Dienst muss die folgenden Intents verarbeiten:

  • Der Intent SYNC tritt auf, wenn Assistant wissen möchte, welche Geräte der Nutzer verbunden hat. Sie wird an Ihren Dienst gesendet, wenn der Nutzer ein Konto verknüpft. Sie sollten mit einer JSON-Nutzlast aller Geräte des Nutzers und ihrer Funktionen antworten.
  • Der Intent QUERY tritt auf, wenn Assistant den aktuellen Status oder Status eines Geräts wissen möchte. Sie sollten mit einer JSON-Nutzlast mit dem Status jedes angeforderten Geräts antworten.
  • Der Intent EXECUTE tritt auf, 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.
  • Der Intent DISCONNECT tritt auf, wenn der Nutzer die Verknüpfung seines Kontos mit Assistant aufhebt. Du solltest keine Ereignisse mehr für die Geräte dieses Nutzers an Assistant senden.

In den folgenden Abschnitten werden Sie die Funktionen aktualisieren, die Sie zuvor zur Verarbeitung dieser Intents bereitgestellt haben.

SYNC-Antwort aktualisieren

Öffne functions/index.js. Sie enthält den Code, um auf Anfragen von Assistant zu antworten.

Zum Verarbeiten eines SYNC-Intents müssen Sie die Gerätemetadaten und ‐funktionen zurückgeben. Aktualisieren Sie den JSON-Code im onSync-Array so, dass er die Geräteinformationen und die empfohlenen Merkmale für eine Waschmaschine enthält.

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 mithilfe der Firebase CLI bereit:

firebase deploy --only functions

Damit du deine Smart-Home-Aktion testen kannst, musst du dein Projekt mit einem Google-Konto verknüpfen. So können Tests über Google Assistant-Oberflächen und die Google Home App durchgeführt werden, die im selben Konto angemeldet sind.

  1. Öffnen Sie auf Ihrem Smartphone die Google Assistant-Einstellungen. Sie sollten mit demselben Konto angemeldet sein wie in der Konsole.
  2. Rufen Sie Google Assistant > Einstellungen > Smart-Home-Steuerung (unter „Assistant“).
  3. Klicken Sie oben rechts auf das Suchsymbol.
  4. Verwenden Sie das Präfix [test], um nach Ihrer Test-App zu suchen.
  5. Wählen Sie das Element aus. Google Assistant authentifiziert sich dann bei deinem Dienst und sendet eine SYNC-Anfrage, in der der Dienst aufgefordert wird, eine Liste der Geräte für den Nutzer bereitzustellen.

Öffnen Sie die Google Home App und prüfen Sie, ob Sie die Waschmaschine sehen können.

ae252220753726f6.png

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 anzufordern und Befehle zu senden.

QUERY-Intent verarbeiten

Ein QUERY-Intent umfasst 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,
  };
});

Gibt für jedes in der Anfrage enthaltene Gerät den in der Realtime Database gespeicherten aktuellen Status zurück. Aktualisieren Sie die Funktionen queryFirebase und queryDevice, um die Statusdaten 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,
  };
};

Umgang mit EXECUTE-Intent

Der EXECUTE-Intent verarbeitet Befehle zur Aktualisierung des Gerätestatus. Die Antwort gibt den Status jedes Befehls, z. B. SUCCESS, ERROR oder PENDING, sowie den neuen Gerätestatus zurück.

Bearbeiten Sie in functions/index.js den EXECUTE-Handler, um die Liste der zu aktualisierenden Traits und die Zielgeräte für jeden Befehl zu verarbeiten:

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 Realtime Database, die dem angeforderten Trait 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 = {isRunning: params.start};
      ref = firebaseRef.child(deviceId).child('StartStop');
      break;
    case 'action.devices.commands.PauseUnpause':
      state = {isPaused: params.pause};
      ref = firebaseRef.child(deviceId).child('StartStop');
      break;
  }

  return ref.update(state)
      .then(() => state);
};

6. Aktion testen

Nachdem Sie alle drei Intents implementiert haben, können Sie testen, ob Ihre Aktion die Waschmaschine steuert.

In Firebase bereitstellen

Stellen Sie die aktualisierte Cloud-Auftragsausführung mithilfe der Firebase CLI bereit:

firebase deploy --only functions

Waschmaschine testen

Jetzt können Sie sehen, wie sich der Wert ändert, wenn Sie einen der folgenden Sprachbefehle über Ihr Smartphone ausführen:

„Hey Google, schalte meine Waschmaschine ein.“

„Hey Google, pausiere die Waschmaschine.“

„Hey Google, stopp die Waschmaschine.“

Sie können den aktuellen Status Ihrer Waschmaschine auch sehen, indem Sie Fragen stellen.

„Hey Google, ist meine Waschmaschine an?“

„Hey Google, läuft meine Waschmaschine?“

„Hey Google, in welchem Waschgang ist meine Waschmaschine?“

Sie können diese Abfragen und Befehle in den Logs ansehen, die unter Ihrer Funktion im Bereich Funktionen der Firebase Console angezeigt werden. Weitere Informationen zu Firebase-Logs finden Sie unter Logs schreiben und ansehen.

Sie finden diese Abfragen und Befehle auch in der Google Cloud Console unter Logging > Log-Explorer: Weitere Informationen zum Google Cloud-Logging finden Sie unter Mit Cloud Logging auf Ereignislogs zugreifen.

7. Aktualisierungen 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. Ihr Dienst hat jedoch noch nicht die Möglichkeit, Ereignisinformationen wie Änderungen der Gerätepräsenz oder des Gerätestatus proaktiv an Assistant zu senden.

Mit der Funktion Synchronisierung anfordern können Sie eine neue Synchronisierungsanfrage auslösen, wenn Nutzer Geräte hinzufügen oder entfernen oder wenn sich die Gerätefunktionen ändern. Mit der Option Report State (Status melden) kann Ihr Cloud-Dienst den Status eines Geräts proaktiv an Home Graph senden, wenn Nutzer den Gerätestatus 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 Front-End-Webanwendung aufzurufen.

HomeGraph API aktivieren

Die HomeGraph API ermöglicht die Speicherung und Abfrage von Geräten und deren Status im Home Graph eines Nutzers. Wenn du diese API verwenden möchtest, musst du zuerst die Google Cloud Console öffnen und die HomeGraph API aktivieren.

Wähle in der Google Cloud Console das Projekt aus, das deinen Aktionen entspricht <project-id>.. Klicke dann auf dem Bildschirm „API-Bibliothek“ für die HomeGraph API auf Aktivieren.

ee198858a6eac112.png

Berichtsstatus aktivieren

Schreibvorgänge in die Realtime Database lösen die Funktion reportstate im Startprojekt aus. Aktualisieren Sie die Funktion reportstate in functions/index.js, um die in die Datenbank geschriebenen Daten zu erfassen und sie über den Berichtsstatus in 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);
    });

Anfragesynchronisierung aktivieren

Durch das Aktualisieren des Symbols in der Front-End-Web-UI wird die Funktion requestsync im Startprojekt 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-UI auf die Schaltfläche Aktualisieren ae8d3b25777a5e30.png und prüfen Sie, ob im Protokoll der Firebase Console eine Synchronisierungsanfrage angezeigt wird.

Passen Sie als Nächstes die Attribute der Waschmaschineneinheit in der Frontend-Web-UI an und klicken Sie auf Aktualisieren. Prüfen Sie, ob die Statusänderung, die Google gemeldet wurde, in Ihren Firebase Console-Protokollen zu sehen ist.

8. Glückwunsch

674c4f4392e98c1.png

Glückwunsch! Du hast Assistant mithilfe von Smart-Home-Aktionen erfolgreich in einen Cloud-Dienst für Geräte eingebunden.

Weitere Informationen

Hier sind einige Ideen, die Sie umsetzen können, um noch tiefer in das Thema einzutauchen:

Weitere Informationen zum Testen und Einreichen einer Aktion zur Überprüfung, einschließlich des Zertifizierungsverfahrens für die Veröffentlichung deiner Aktion für Nutzer, findest du hier.