Beiträge von Subsony

    Hellou,

    ich beschäftige mich schon länger mit dem Thema Alamierung und SmartHome. Nun hab ich eine Lösung gefunden die ohne große Umwege die Alarmierung an sein eigenes SmartHome zu übergeben.

    Vorwort:

    Allerdings benötigt ihr noch ein paar Dinge um das zu realisieren.

    - Einen kleinen Computer in Form eines Raspberry Pis, Synology, einen alten PC den ihr als Server aufsetzen könnt. (In meinem Fall habe ich einen Raspberry 3b v2)

    - Einen oder mehrere Amazon Echo Geräte.

    - Zeit

    - Verständnis für Netzwerk und Server

    - Einen Webhook, ich verwende dafür IFTTT.

    Wie habe ich es gemacht? Mein Pi läuft im Headlessbetrieb (Zugriff nur über Weboberfläche). Zentrale des ganzen ist Portainer als Dockerverwaltung, worauf Node-Red als Entwicklungsoberfläche läuft (allerdings könnt ihr auch Node-Red als Standalone auf dem Pi laufen lassen.). Im Internet lassen sich einige Tutorials dazu finden, hier soll es lediglich um die Realisierung über Node-Red gehen. Gerne kann ich aber auch das genauer erläutern.

    Vorbereitung:

    Als erstes kümmern wir uns darum das Feuersoftware Connect uns eine E-Mail sendet. Also erstmal ab auf die Website(IFTTT) und einen Account anlegen. Mit "Create" erstellen wir uns ein neues Applet. Unter "If this" benutzen wir "Webhook" und klicken auf "Receive a Web request". Das Event nennen wir "Einsatz", das ist unser Trigger. Bei "Thant that" wählen wir dann "E-Mail -> Send me an E-Mail" . Unter Subject teilen wir der App "{{EventName}}" mit. Den Body können wir mit einer kurzen Nachricht füllen, was aber nicht weiter relevant ist. Danach werdet ihr aufgefordert eure E-Mail einzutragen und zu Verifizieren. Folgt den Anweisungen von IFTTT.

    Fein, jetzt haben wir schonmal das Applet. Nach dem das alles gemacht ist können wir der Feuersoftware Dokumentation folgen um IFTTT in Connect zu integrieren.

    Zitat
    1. Anschließen die angegebene URL unter https://ifttt.com/services/maker_webhooks/settings aufrufen.
    2. Auf der sich öffnenden Seite wird oben dein key angezeigt.
    3. In Connect den neuen WebHook anlegen mit folgender URL: https://maker.ifttt.com/trigger/Einsatz/with/key/dein_key
    4. Nach dem Anlegen kannst du deinen WebHook über den Play-Button testen.

    Noch sind wir mit den E-Mail Vorbereitungen nicht Fertig, Geht zu eurem E-Mail dienst, loggt euch ein und erstellt euch einen Ordner (oder bei GMail Label) und benennt diesen "Einsatz". Schickt euch über Feuersoftware Connect eine Test Alamierung um den Absender der E-Mail zu erhalten. Dann verknüpft diese E-Mail (idR. action@ifttt.com) mit dem zuvor angelegten Ordner.

    Geschafft! Nun sollten die Alarmierungen von Feuersoftware Connect in euren soeben angelegten Ordner automatisch verschoben werden. Das ist später für das Triggern der Automation wichtig.

    Node-Red:

    Hinweis: Solltet ihr Node-Red in einem Dockercontainer installiert haben, stellt sicher das ihr den Port 3456 innerhalb der Container Einstellungen freigebt, sonst wird es gleich schwierig mit der Alexa Integration!

    In Node-Red angekommen brauchen wir noch ein paar Paletten um alles zu realisieren:

    node-red-contrib-alexa-cakebaked - Das ist die Alexa Integration

    node-red-contrib-presenchecker - Hier könnt ihr eine Geräteabfrage über eure Fritzbox (Achtung! Ausschließlich Fritzbox) von eurem Smartphone einbinden, so dass die Routine nicht läuft wenn ihr nicht daheim seid.

    node-red-node-email - Hierüber holen wir uns die E-Mail die die Routine triggert.

    node-red-node-pi-gpio - Alternativ könnt ihr auch den potentialfreien Ausgang eurer Melderladestation an den Pi anschließen (das erkläre ich noch wenn ich es selbst realisiert habe). Das ist die Pi Schnittstelle.

    thingzi-logic-timers - Diese Node benötigen wir um Routinen Zeitabhängig zu gestalten.

    Zum besseren Verständnis zeige ich euch gleich im Folgenden einen Screenshot von meinem Flow und erkläre Step-by-Step wie ich es gemacht habe.


    Spoiler anzeigen

    Alexa Integrieren:

    Aus dem liken Tab suchen wir "Alexa Init" und ziehen es in unseren Flow. Nach einem Doppelkick auf die erschienene Schaltfläche müssen wir ein paar Felder ausfüllen. In dem geöffnete Fenster klicken wir auf das Stiftsymbol direkt neben dem Dropdownmenü in der Mitte.

    Wie folgt füllen wir die Felder aus.

    - Name: Hier können wir den Node bennen.

    - Auth Method: Lassen wir auf Proxy stehen.

    - This IP: Hier geben wir die IP Adresse unsere Node Red Hosts ein. In meinem Fall war es die IP des Raspberrys.

    - Port; Das lassen wir so. Wenn ihr wie oben angegeben den Port freigegeben habt ist alles Paletti. (Falls ihr ihn freigeben müsst)

    - File Path: Hierkönnt ihr einen Namen eingeben für eine Datei die eure Amazon Anmeldedaten verschlüsselt auf dem Pi (oder welches Gerät ihr benutzt) speichert. So muss nicht jedes mal der Account neu verknüpft werden.

    - Refresh: Das lassen wir so.

    - Auto Init und Events lassen wir auch einfach so.

    Für die nächsten Schritte gehe ich davon aus dass ihr in Deutschland wohnt. Wenn nicht müsst ihr den Service Host von eurem Land eingeben.

    - Service Host: layla.amazon.de

    - Page: amazon.de

    - Language: de-DE

    Nun klickt ihr oben rechts auf "Aktualisieren" und aschließend auf "Deploy". Nun sollte euch ein kleiner Text unter dem Node im Flow darauf hinweisen die IP mit Port im Browser zu öffnen (xxx.xxx.xxx:3456). Von hier aus loggt euch mit eurem Amazon Account ein.

    Toll! Alexa sollte jetzt integriert und bereit sein.

    E-Mail integrieren:

    Wir holen uns jetzt links aus dem Tab "Soziale" den "E-Mail" Node und öffnen seine Einstellungen.

    - Mailempfang: automatisch - 5 Sekunden - Hier könnt ihr den Intervall einstellen in der die Node euren zuvor erstellten E-Mail Ordner überprüft.

    - Protokoll: IMAP

    - SSL: Checked

    - Server: imap.xxx.com - hier fügt ihr die Adresse eures Mailservers ein. (Bsp.: imap.web.de)

    - Port: 993

    - Benutzer-ID: Hier müsst ihr eure E-Mail Adresse eintragen.

    - Passwort: Hier kommt das Passwort eures E-Mail Accounts rein. (Achtung! Bei Google Mail benötigt ihr ein App Passwort!)

    - Verzeichnis: Hier tragt ihr den Namen eures erstellten Ordners rein, in unserem Beispiel war das "Einsatz". (Wichtig ist hierbei dass das exakt gleich geschrieben ist)

    - Behandlung: Hier könnt ihr wählen was passieren soll wenn Node-Red die E-Mail registriert hat. "Löschen" erspart euch die lästige Arbeit selbst den Ordner aufzuräumen.

    - Kriterium: Ungesehen - das lassen wir auch so.

    - Name: Hier könnt ihr noch einen Namen für eure Node hinterlegen. In meinem Fall war das "E-Mail Einsatz".

    Hiernach wieder einmal oben rechts mit "Aktualisieren" bestätigen und auf "Deploy" um den Flow zu laden.

    Ab jetzt erkläre ich kurz meine Nodes um meinen Screenshot nachvollziehbar zu machen. Natürlich steht es euch Frei damit zu tun was ihr wollt.

    - E-Mail Einsatz: Mein Trigger um die Routine auszulösen wenn Alarmiert wird.

    - Device Presence Check: Hier fragt Node-Red meine Fritzbox ob mein Handy anwesend ist.

    - Switch: Vom Presence Check wird eine 1 (wenn ich daheim bin) oder eine 0 (wenn ich nicht daheim bin) ausgegeben. Der Switch entscheidet was passieren soll. Bin ich daheim wird die Routine ausgelöst.

    - Nacht: Hier wird meine Routine für die Nacht gestartet.

    - Sprachausgabe Nacht: Die hier verwendete Node heißt "Alexa Routine" und damit lass ich Alexa auf meinem Echo im Schlafzimmer "Achtung! Einsatz!" mit dem "Speak at Volume" sagen.

    - Smarthome Query Power State: Hier Frage ich den Zustand meiner Lampen ab, damit wenn ich schlafe die Lampen wieder ausgeschaltet werden und wenn meine Freundin noch wach ist auf dem zweiten Pfade die Lichtszene wieder zurück gesetzt wird, damit sie nicht im Dunkeln hockt.

    - Switch: Dieser Switch entscheidet aufgrund des dahiter abgefragtem Status ob er nach der Routine das Licht ausschalten (unterer Pfad) oder die Licht Szene zurück setze soll.

    - Alarmlicht: Dies ist ebenfalls eine "Alexa Routine" Node die meine Lichtszene auf Warmweiß und 100% setzt.

    - Wait: Das ist die Verzögerung für ausschalten bzw. zurücksetzen des Zustands. Ich hab hier 3 Minuten als Timer, ihr müsst aber selbst entscheiden wie lange ihr Licht braucht.

    - Tag: Eigentlich das gleiche wie die Nachtroutine nur das hier keine Stadionbeleuchtung angeht, sondern nur das zwei Lampen in den Status Rot versetzt werden.

    - Dunkelgrüne Debugmodule: Hier habe ich nur Debugmodule eingesetzt, da sich in der Aufbau noch stetig verändert und ich wissen will woran etwas scheitert.

    Ich hoffe ich habe alles einigermaßen verständlich erklärt, wenn ihr noch Fragen habt, gerne hier drunter posten. Ich werde mich bemühen alles nach meinen Kenntnissen zu beantworten.

    Achja, wenn ich es soweit habe erkläre ich auch mal wie ihr euren Melder als Trigger verwenden könnt.

    Viel Spaß damit!

    Grüße

    Sony