Montag, 21. Dezember 2020

Openhab Items per Google Assistent (oder Google Home) steuern

Wie in meinem letzten Post beschrieben, kann man Openhab via Sprachbefehle steuern.

Ich habe IFTTT ausprobiert und war erstaunt, dass man sogar eigene Befehle generieren kann, um alles zu steuern.

Seit neustem hat IFTTT sein Bezahlmodell geändert und man kann an Free User nur noch eine begrenzte Anzahl an Actions nutzen.

Daher habe ich mir nochmal myopenHAB angeschaut, und ich muss sagen: Das gefällt mir inzwischen sogar noch besser.

Denn hierüber ist es möglich eure Openhab Items sogar in der Google Home App anzuzeigen und zu steuern.


Installation

Klickt in der PaperUi von Openhab auf "Add-ons - MISC - openHAB Cloud Connector" und klickt auf "INSTALL".


Vorbereitung

Nun loggt ihr euch via SSH in Openhab ein und navigiert in den Ordner "/var/lib/openhab2" und öffnet die Datei "uuid".

Speicher euch den Inhalt der Datei ab.

Navigiert nun in den Ordner "/var/lib/openhab2/openhabcloud" und öffnet die Datei "secret". Auch diesen Inhalt speichert ihr euch.

Achtung: So sind die Pfade bei einer Openhabian Installation. Bei einer anderen Installationsart können die Pfade abweichen.


Anmeldung

Geht nun auf die Webseite https://myopenhab.org und tragt auf der rechten Seite die eure Daten zum Registrieren ein.

E-Mail und Passwort sollten klar sein. openHAB UUID und openhab Secret haben wir uns gerade gespeichert und können diese nun hier eintragen.


Konfiguration

Öffnet nun wieder eure PaperUi und klickt auf "Configuration - Services - IO - openHAB Cloud - Configure"

Bei Mode sollte "Notifications & Remote Access" bereits ausgewählt sein, wenn nicht, bitte auswählen.

Unter "Items to Expose" muss nichts ausgewählt werden.

Als Base URL tragen wir https://myopenhab.org/ ein.

Startet nun Openhab neu.


Verbindung überprüfen

Nach dem Neustart sollte loggt ihr euch in myopenHAB ein. In der oberen Leiste steht nun, dass ihr Online seid.


Konfig anpassen

Damit Google eure Geräte erkennen kann, muss die Items Config angepasst werden.

Anbei ein Beispiel mit einem Heizungsthermostat. Folgende Einträge werden benötigt:


- Gruppe ( ga="Thermostat" [ modes="heat=1,cool=11" ] )

Es ist zwingend notwendig, dass eine Gruppe verwendet wird, damit die Items zugeordnet werden können.

Mein Thermostat gibt die Werte 1 für Heizen und 11 für Kühlen Modus. Sollte euer Thermostat andere Werte verwenden, kann dies hier eingetragen werden. Standard sind "heat" und "cool".

- Ist-Temperatur ( ga="thermostatTemperatureAmbient" )

- Soll-Temperatur ( ga="thermostatTemperatureSetpoint" )

- Modus ( ga="thermostatMode", autoupdate="true" )

Ich bin mir nicht sicher, ob der autoupdate Modus immer auf "true" gesetzt werden muss. Bei mir hat es jedenfalls damit funktioniert.


Die Einträge sehen dann also in etwa so aus:


Group Wohnzimmer_Heizung "Heizung Wohnzimmer" { ga="Thermostat" [ modes="heat=1,cool=11" ] }

Number WohnzimmerCurrentTemp "Heizung Wohnzimmer Temp" <temperature> (Wohnzimmer_Heizung) {channel="zwave:device:XXXXX:node2:sensor_temperature", ga="thermostatTemperatureAmbient"}


Mit Google verbinden

Öffnet nun eure Google Home App und klickt oben links auf das "+" Zeichen und dann auf "Gerät einrichten - Mit Geräten von Google kompatibel" und wählt nun in der Langen Liste "openHAB" aus.

Hier loggt ihr euch nun mit eurer E-Mail/Passwort Kombination ein. Nach dem Login erlauben wir Google auf myopenhab zuzugreifen.

Ihr findet eure Geräte nun ganz unten auf der Startseite der Google Home App und könnt sie den Räumen zuweisen.




Fazit

Dies ist eine echt schöne Lösung auch von unterwegs seine openHAB Geräte steuern zu können.

Um andere Geräte hinzuzufügen, schaut euch bitte die openHAB Webseite an https://www.openhab.org/docs/ecosystem/google-assistant/ 

Labels: , , , ,

Sonntag, 10. Mai 2020

Openhab mit IFTTT (aber ohne myopenhab)

Viele von euch werden IFTTT kennen. Es ist eine Online-Plattform, mit der man einfache Regeln erstellen, und so seine Smart Home Geräte steuern kann.

Ich habe mich mal rangesetzt und einfache Sprachbefehle für Google Assistant/Google Home erstellt, um Openhab Regeln anzustoßen.

Ich habe mich gegen die Nutzung von myopenhab entschieden. Ich hatte irgendwie im Kopf, dass der Dienst Geld kosten würde. Beim heutigen Nachschauen habe ich davon aber nichts gesehen.

Wichtig:
Ich habe mein Openhab öffentlich erreichbar gemacht. Wenn ihr dies auch machen wollt, befolgt unbedingt die empfohlenen Sicherheitsvorkehrungen der Openhab Webseite.

Lokale Vorbereitungen

Nachdem ihr euer Openhab safe gemacht habt, könnt ihr für Openhab eine Portweiterleitung Einrichten.
Bei einer Fritzbox geht das über "Internet - Freigaben - Portfreigaben - Gerät für Freigabe hinzufügen"
Unter Gerät wählt ihr euer Openhab aus.
Klickt nun unten auf "Neue Freigabe".

Unter Anwendung wählt Ihr "Andere Anwendung" aus und schreibt bei Bezeichnung "Openhab" rein.
Als Protokoll wählt ihr TCP.
Bei Port an Gerät schreibt ihr in beiden Felder 80 rein. Dies unter der Voraussetzung, dass ihr bei Reverse Proxy den Standardport 80 beibehalten habt.
Unter "Port extern gewünscht" sucht ihr euch einen beliebigen high Range Port aus. Zum Beispiel 53961.
Den Rest können wir so lassen und klicken 2 Mal auf OK und anschließend auf Übernehmen.

Nun könnt ihr über eure Public IP auf Openhab zugreifen. Da diese sich jedoch immer wieder ändert, lohnt es sich, einen DynDNS Dienst zu verwenden. Das Thema DynDNS wird vielleicht in einem anderen Blogeintrag mal beschrieben. Hierzu gibt es aber sehr viele Anleitungen im Internet.

Openhab API

Openhab liefert eine REST API mit. Hierüber können Aktionen über die Browser Adresszeile durchgeführt werden.
Um eine ausführliche API Anleitung zu erhalten, klickt ihr im Paper UI auf Add-ons - User Interfaces - REST Documentation - INSTALL

Anschließend könnt ihr euch die API genauer anschauen, indem ihr auf http://openhab:8080/doc/index.html geht.

In diesem Beispiel wollen wir eine Regel per API ausführen.
Hierfür benötigen wir die UID der Regel.
Klickt man in Paper UI auf Rules und klickt die gewünschte Regel an, wird die UID am oberen Rand angezeigt und kann von da kopiert werden.
Die UID der Regel um meine Heizung einzuschalten sieht in etwa so aus:

75e71a43-7540-4888-b21b-1186bc0ba777

In der API Dokumentation geht hervor, dass folgendes Format verwendet werden muss

POST /rules/{ruleUID}/runnow

Die vollständige Adresse wäre also:

http://openhab:8080/rules/75e71a43-7540-4888-b21b-1186bc0ba777/runnow


Diese Adresse ist jedoch nur innerhalb eures Netzwerks erreichbar. Die externe Adresse würde dann wie folgt aussehen:

http://<Benutzername>:<Password>@<Public IP oder DynDNS>/rules/75e71a43-7540-4888-b21b-1186bc0ba777/runnow

Eigene IFTTT Regel 

Um IFTTT nutzen zu können, müsst ihr euch erst Anmelden.
Klickt nun oben rechts auf "Explore" und dann auf "Make your own from scratch CREATE".
Klickt nun auf das große + Zeichen zwischen "If" und "This", gebt in der Suche "Google" ein und klickt auf "Google Assistant". Ggf. müsst ihr euch nun mit eurem Google Account einloggen.
Klickt nun auf "Say a simple Phrase"

Nun könnt ihr bis zu 3 Sätze eintragen, auf die euer Google Assistant reagieren soll.
1. Heizung einschalten
2. Heizung an
Das dritte Feld lassen wir leer.
Wenn ihr möchtet, könnt ihr unter "What do you want the assistant to say in response" eintragen, was Google euch anschließend antworten soll.
Als Sprache stellen wir deutsch ein und klicken auf "Create Trigger"

Als Nächstes stellen wir ein, was ausgeführt werden soll, wenn wir diese Befehle sagen.
Hierfür klicken wir auf das + Zeichen zwischen "Then und "That".
In der Suche tragen wir "Web" ein, klicken auf "Webhooks" und anschließend auf "Make a web request".

Als URL geben wir unsere externe Adresse von oben ein.
Bei Method wählen wir "POST" aus und klicken auf "Create action"

Glückwunsch! Nun hört euer Google Home und euer Google Assistant auf den neu erstellten Befehl. Ich habe jedoch die Erfahrung gemacht, dass es einige Sekunden dauern kann, bis die Regel aktiv ist.

Fazit

IFTTT ist eine tolle Art und Weise eigene Google Assistant Befehle zu generieren. Stöbert ruhig ein wenig in den bereits vordefinierten Aktionen herum. IFTTT kann noch viel mehr.
Man könnte auch neue Notizen in Evernote anlegen oder andere Geräte im Netzwerk, die über eine API verfügen, per Sprache steuern. Auch, wenn dies von Haus aus nicht funktionieren würde.

Samstag, 11. April 2020

Warum ich von Chrome zu Firefox gewechselt bin

Ich denke sehr viele von euch werden auf dem Handy Google Chrome auf als Standard Browser verwenden. Entweder war er schon vorinstalliert, oder man ist es einfach gewohnt, da man Chrome auch schon auf dem PC nutzt.
Dies war bei mir ebenfalls lange Zeit der Fall. Doch dies hat sich nun geändert.
In diesem Beitrag möchte ich euch 3 Vorteile von Firefox gegenüber Google Chrome zeigen.

1. Standardsuchmaschine

In Google Chrome hat man die Möglichkeit, seine Standardsuchmaschine auszuwählen. Dies ist jedoch beschränkt auf die 4 großen: Google, Yahoo, Bing und DuckDuckGo. Da ist die Suchmaschine meines Vertrauens jedoch nicht bei: Qwant!

Für die Leute, die Qwant nicht kennen:
Qwant ist eine Suchmaschine aus Europa (Frankreich), die sich sehr auf die Wahrung der Privatsphäre spezialisiert hat.
Zugegeben, das macht DuckDuckGo auch, aber mir hat das Design von DuckDuckGo nie wirklich zugesagt. Hier kann man, ähnlich wie bei Google auch, nach Bildern, News oder Videos filtern. Jedoch ohne die nervige Eigenschaft, dass man Wochenlang mit Werbung genervt hat, nur weil die Freundin mal kurz nach einer ganz bestimmten Handtasche gesucht hat.
Hinzu kommt das Qoz Programm, mit dem man durch seine Suchen Vereine oder Organisationen finanziell unterstützen kann.
Qwant kann man als Google Chrome Addon (am PC) als Standardsuchmaschine hinzufügen. Außerdem gibt es hierfür eine Gnome-Shell Extension.

Aber zurück zu Firefox:
In der Android Version von Firefox kann Qwant ausgewählt werden.

2. Addons

Wir alle kennen Browser Addons. Kleine Helfer, die sich in dem Browser integrieren. Leider fehlt eine solche Funktion bei Google Chrome. Nicht jedoch bei Firefox. Es sind derzeit zwar nur eine kleine Anzahl an Addons verfügbar. Aber HTTPS Everywhere und Ghostery sind auf jeden Fall mit dabei!

3. Android Autofill Service

Mit Android Oreo wurde der Autofill Service eingeführt. Dieser ist vor allem für die Leute interessant, die KeePass nutzen und Keepass2Android installiert haben.
Die Autofill Funktion ist dafür da, um Kreditkarteninformationen, Adressen oder Passwörter nicht immer eintippen zu müssen. Dies kennt man schon vom Google Browser, wenn man die Daten bereits im Browser gespeichert hat.
Das schön ist nun, dass man andere Apps integrieren kann.
Man kann nun also z.B. die Twitter App öffnen. An der Stelle, an der man Benutzername und Passwort eintragen kann, erscheint nun eine Art Dropdown Fenster und zeigt euch die Keepass2Android App an. 


Klickt man hierauf, öffnet sich die Keepass2Android App. Man Authentifiziert sich mit seinem Fingerabdruck...


... und kann anschließend seinen Twitter Eintrag auswählen.


Nun wird Benutzername und Passwort automatisch eingetragen und man kann sich einloggen.


Es sind also nur wenige Schritte notwendig, vorausgesetzt man hat seinen Fingerabdruck hinterlegt. Sonst würde es dauern sein Keepass Passwort jedes Mal einzutragen und man hätte kein Zeitersparnis mehr.

Dies funktioniert in viele Apps echt gut. Nur in einer nicht: Google Chrome!
Ich hatte mich eine lange Zeit damit abgefunden und habe die Passwörter über die Copy/Paste Funktion, oder die Keepass2Android Tastatur eingepflegt. Aber es hat sich alles noch ein wenig unausgereift angefühlt.
Und dann kam der große Schockmoment: Ich habe Online gelesen, dass die Autofill Funktion über Firefox funktioniert. Und das sogar besser, als ich dachte.
Vorausgesetzt ist natürlich, dass man seine Passworteinträge entsprechend mit URL versehen hat.
Der Ablauf funktioniert dann genauso wie oben beschrieben.

Fazit

Firefox ist ein Browser, der aus meiner sich zu wenig Aufmerksamkeit bekommt. Dadurch, dass man eine größere Auswahl an Suchmaschinen hat, Addons nutzen kann und die Android Autofill Funktion sehr, sehr gut umgesetzt wurde, ist Firefox derzeit der Browser meiner Wahl.
Was haltet ihr von Firefox?