Gladys in GoogleHome integrieren

„Ok Google, schalte die Lampe ein“ sagen können, was eine Nachricht an Gladys sendet, um diese Lampe einzuschalten.

Durch fehlende Spezifikationen oder Überlegungen blockiert.

@pierre-gilles lass uns hier drüber sprechen.
Die Google Home- und Smartthings-Dienste werden es ermöglichen, Gladys mit bekannten Apps zu synchronisieren, insbesondere mit dem Google-Sprachassistenten, der recht gut versteht, wenn man mit ihm spricht. Heute, auf der v3, steuere ich bereits meine Geräte mit Google Home, aber ich muss neue Geräte manuell scannen.
Mit der v4 und OAuth wäre es sinnvoll, wenn Gladys die in Google Home verfügbaren Geräte verwaltet.
Sobald die OAuth-Verbindung hergestellt ist, wird Gladys die Geräte, die sie kennt, in Google-Geräte umwandeln (eine Zuordnung der Funktionen), um die Steuerung über den Sprachassistenten oder die Mobile App zu ermöglichen.
Man könnte sogar das Kamerabild übertragen.
Und in der Gladys Plus-Version eine integrierte Konfiguration anbieten, mit einem Modul in Google für Gladys (denn für ein privates Konto muss man ein eigenes Google-Entwicklerkonto erstellen, um die OAuth-Parameter einzugeben).

Heute kann ich bereits Updates zu den Geräten abfangen, mir fehlt nur noch die Erstellung und Löschung der Geräte, um so aktuell wie möglich zu bleiben.

Ok, ich verstehe! Danke für die Erklärung :slight_smile:

Tatsächlich macht in diesem Fall ein globales Event „Gerät erstellt“ Sinn

Hallo @AlexTrovato! Ich habe gesehen, dass du mit dem PR weitergekommen bist. Können wir hier darüber sprechen, was dein PR macht?

Ich habe gesehen, dass du in der Dokumentation den Benutzer dazu aufforderst, seine Gladys-Instanz öffentlich im Internet zu platzieren. Bis jetzt ist „öffentliche Platzierung der Instanz“ ein Begriff, den wir in Gladys v4 überhaupt nicht haben, und ich weiß nicht einmal, ob es ein Begriff ist, den wir hinzufügen wollen.

In Bezug auf die Benutzerfreundlichkeit ist das wirklich schrecklich und bedeutet, dass wir wieder alle Nachteile der v3 hätten (das selbstsignierte HTTPS, das Öffnen der Box-Ports, gehackte Instanzen usw.). Das sind Konzepte, die selbst für Techniker einen erheblichen Zeitaufwand für die anfängliche Einrichtung, Wartung und technische Kenntnisse erfordern.

Ich denke, es gibt hier wirklich eine echte Überlegung, die wir anstellen müssen.

Könntest du damit beginnen, mir den allgemeinen Ablauf dieses Dienstes zu beschreiben? Und sehen, ob wir das vielleicht auch ohne machen könnten :slight_smile:

Hallo @pierre-gilles,
ja, zu diesem Thema denke ich, dass es wirklich zwei Anwendungsfälle geben wird: den Expertenmodus mit den Nachteilen der v3 und den Gladys Plus-Modus, schlüsselfertig.

Ich habe versucht, ein kleines Dokument (nicht perfekt) zu erstellen, um zu beschreiben, was passiert, was mit dem laufenden PR entworfen wird und eine potenzielle Lösung mit Gladys Plus.

Falls du Probleme hast, auf das Dokument zuzugreifen, lass es mich wissen.

Aber ich denke, es wird schnell « unverzichtbar » sein, eine Integration mit Google Home / Alexa / Siri / SmartThings anzubieten.

Genau das ist die Frage: Ist der Expertenmodus mit den Nachteilen der v3 notwendig? Kann man darauf verzichten?

Für mich werden die Gladys-Plus-Nutzer langfristig 20-30% der Gladys-Nutzer insgesamt ausmachen.

Das bedeutet, dass die Mehrheit Gladys Plus nicht nutzen wird (das ist normal, so ist es bei allen Freemium-/Premium-Produkten).

Ich finde es schade, dass diese Nutzer eine schreckliche/fehlerhafte/komplizierte Erfahrung machen, obwohl wir uns als ein Produkt positionieren, das « für alle zugänglich ist/keine Befehlszeile/keine Programmierkenntnisse/etc. »

Ehrlich gesagt, ist HTTPS mit selbstsignierten Zertifikaten + Portfreigabe ein Albtraum ^^

Ich habe Angst, dass das Forum/die Beschwerden wieder wie bei der v3 werden, wenn wir die gleichen technischen Entscheidungen wie bei der v3 treffen.

Edit: Und für mich kann man nicht von einem « Expertenmodus » sprechen. Der durchschnittliche Gladys-Nutzer (die Mehrheit) wird Google Home wollen und wird Gladys Plus nicht bezahlen.

Ich gebe meine Meinung

Das ist eine etwas allgemeine Frage. Und Expertenmodus sagt gar nichts aus.

Ja, mit Gladys Plus

Es ist die Entscheidung des Nutzers, den komplizierten oder einfachen Weg zu wählen. Zu viele Einschränkungen sind auch nicht gut. Wir müssen sagen: Schau, du nimmst den komplizierten Weg, dann riskierst du das usw. Man kann kompliziert machen für die Bärtigen, aber auch Qualität bieten. Der Endnutzer ist auch kein Dreijähriger.

Das wird ein endloses Thema sein, aber ich denke, es öffnet Türen und bringt mehr Nutzer/Entwickler.

Und ich bringe das mal als Beispiel
=> Amazon Alexa - Home Assistant
=> Google Assistant - Home Assistant

Natürlich! Danach möchte ich auch die guten Praktiken für die meisten Installationen fördern.

Bisher funktionieren alle unsere Integrationen ohne die Ports der Box zu öffnen. Ich finde es schade, dass man diesen gesamten Prozess mit all seinen Einschränkungen nur für diese Integrationen einrichten muss.

Ich weiß, dass Home Assistant das so macht, und gerade das ist nicht unbedingt ein gutes Beispiel.

Sie hatten viele gehackte Instanzen, weil die Home Assistant-Instanzen auf Shodan gelistet sind… Ich versuche, an den Endnutzer zu denken und das Beste und Sicherste zu finden :slight_smile:

Es ist eher eine offene Diskussion über mögliche Alternativen, um die beste Wahl zu treffen.

Das Problem ist, dass die meisten Drittanbieter-Systeme einen Einstiegspunkt auf der Gladys-Instanz benötigen.
Was den Zertifikat-Kram angeht, könnte Docker das übernehmen, und für die Portfreigabe ermöglichen die meisten Boxen die Freigabe aus dem lokalen Netzwerk mit ein bisschen Magie, aber das bleibt eine offensichtliche Sicherheitslücke.
Ich werde mal sehen, ob Google alternative Modi anbietet, aber ich bin da eher pessimistisch.

Oder sind Alternativen wie die Nutzung von IFTTT gut oder nicht überzeugend?

Ansonsten machen wir es so, wie du es vorgeschlagen hast, @AlexTrovato, aber tatsächlich:

  • wir werden überall Warnungen einfügen, im Stil von „nur für Nutzer, die wissen, was sie tun“
  • man muss den Use Case von Anfang bis Ende durchdenken (Einrichtung von HTTPS, Öffnen der Ports usw.), und passende Tutorials anbieten
  • es muss von Anfang an die Alternative über Gladys Plus geben :slight_smile:

Über IFTTT zu gehen, ändert nichts am Problem. Der externe Dienst, egal welcher, muss Gladys eine Nachricht senden, um das Licht einzuschalten. Daher bleibt das Problem, Gladys im großen Internet freizugeben.

Genau!

Na ja, ich denke, wir haben nicht wirklich eine Wahl… :slight_smile:

Andererseits könnte man den Cron-Job zur Zertifikatserstellung dockerisieren, dynamisches DNS anbieten, dynamisch einen Port am Internet-Router öffnen… etwas « Komplettes » machen und die Netzwerköffnung von Gladys aus erzwingen, damit dies freiwillig durch den Benutzer erfolgt.

@AlexTrovato tatsächlich, meiner Meinung nach gibt es vor der Freigabe der Instanz im Internet noch Entwicklungsarbeit zu erledigen

Wenn du von einem Zertifikat sprichst, sind wir uns einig, dass es sich um eine Domain plus ein echtes Zertifikat wie z. B. von Let’s Encrypt handelt? (kein selbstsigniertes)

Ich bin absolut deiner Meinung, dass man etwas Komplettes haben sollte, bevor man das vorschlägt :slight_smile:

Was Let’s Encrypt angeht, ich verwende es bei Gladys Plus und vielen anderen Projekten: nginx-proxy + nginx-proxy-lets-encrypt-companion

Zwei Docker-Container, die das HTTPS für dich verwalten und den Traffic zu deiner Instanz weiterleiten

Hallo,

Bei vielen Projekten verwende ich Traefik, es ist ganz schön praktisch, wenn man so etwas verwalten möchte (Docker-Container, Zertifikate).

Tatsächlich Traefik, oder noch einfacher: Caddy

Um zum Thema zurückzukehren, gibt es also mehrere Schritte:

  • einen OAuth2-Server in Gladys einrichten (ursprüngliches Thema des PR)
  • die Möglichkeit hinzufügen, einen Container für die HTTPS-Verwaltung zu installieren
  • aber für den Domainnamen, abgesehen davon, dass ich DynDNS vorschlage (das ich für meinen Domainnamen bei OVH verwende), bin ich mir nicht sicher, wie man das machen soll

Hallo zusammen!

Heute habe ich an dieser Integration über Gladys Plus gearbeitet :slight_smile:

Ich habe den gesamten Oauth 2.0-Teil abgeschlossen. Hier ist, was passiert:

Schritt 1: In der Google Home-App auf « + » klicken

Schritt 2: Auf « Gerät einrichten » klicken

Schritt 3: Auf « Works with Google » klicken

Hier wird eine offizielle Anwendung « Gladys Assistant » erscheinen (hier ist es die Testanwendung Gladys oben)

Wenn Sie auf die Anwendung klicken, leitet Google Sie zu Gladys Plus weiter:

Sobald Sie zustimmen, erhält Google Home einen access_token/refresh_token, um auf Gladys Plus zuzugreifen, und Sie finden Ihre Geräte in Google Home wieder:

Sie können Ihre Geräte über die Google Home-App oder über Google Assistant steuern, sei es auf Ihrem Telefon, Google Home usw. :slight_smile:

@AlexTrovato ich habe die Arbeit genutzt, die du für den lokalen Teil gemacht hast:

  • onSync
  • onExecute
  • onQuery

Der einzige Unterschied ist, dass die Anfragen über das Gateway weitergeleitet werden.

Alle Geräte? Auch selbstgebaute Geräte, Tasmota usw.?

Alles, absolut alles :slight_smile: Selbst 100% selbstgemacht.

Was passiert ist, dass Google Home Gladys nach den Geräten fragt, die Gladys lokal verwaltet, und Gladys sendet eine Liste aller Geräte und ihrer Funktionen zurück.

Dann, wenn du in Google Home ein Gerät steuerst, sendet Google an Gladys eine Anfrage mit der Gladys-ID des zu steuernden Geräts, und Gladys erledigt den Rest!