Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon-Echo Logikbaustein

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zitat von Hotstepper13 Beitrag anzeigen

    Du brauchst auf jeden Fall eine Gruppenadresse. Das einfachste das mir dazu einfällt ist im Homeserver eine Sequenz anzulegen und über eine Logik diese Sequenz zu triggern. Damit kannst du die dann auch auf dem Weg über Alexa ansteuern.

    Gruß
    Frank
    Danke. Habe ich so umgesetzt. Kann es sein, dass im Smart-Home Skill die Geräte nicht gespeichert werden ? Muss nach einem Neustart vom Skill immer erst die Geräte suchen lassen.

    Gruß
    Olli

    Kommentar


      Hallo Frank,

      prinzipiell fände ich es auch besser, wenn der Gira Homeserver dies zentral übernehmen könnte und man keine weitere Hardware zur Anbindung braucht.
      Aber auf die zusätzlichen Features, welche mir der Custom-Skill bietet (vor allem die Abfrage von Werten), würde ich deswegen nicht verzichten wollen.

      Ich hatte von dem was ich in den letzten Monaten gelesen habe bisher immer den Eindruck, dass Amazon um auch das Philips Hue System anbinden zu können, hier eine "Sonderlocke" gestrickt hat - vielleicht täusche ich micht hier aber auch.

      Als Vorraussetzung zur Steuerung eines Gerätes über die Smart-Home API sagt Amazon jedenfalls auf "https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/overviews/understanding-the-smart-home-skill-api" zumindest folgendes:
      The Smart Home Skill API enables you to create skills to control cloud-connected devices
      D.h. für mich, es können nur Geräte gesteuert werden, welche über eine Cloud-Anbindung verfügen. Über die Kontoverknüpfung (Account-Linking) im jeweiligen Hersteller-Skills wird der Zugriff von Alexa auf die Geräte eines Benutzers ermöglicht.

      Viele Grüße
      Werner


      Kommentar


        Hi Olli,

        die Aussage verstehe ich leider nicht.
        Was meinst du mit "du startest den Skill neu"?
        Meinst du, dass nach dem Neustart des Homeservers die JSON-Konfiguration verloren geht?

        Gruß Werner

        Kommentar


          Hi Werner
          danke für die Antwort. Ich meine damit: Ich starte Echo mit: Starte Haus....dann schalte Wohnzimmer Deckenleuchte ein....als Antwort bekomme ich, dass kein Gerät gefunden wurde. Erst nachdem ich Alexa sage, dass Sie die Geräte suchen soll, findet Sie alle Geräte und ich kann wieder schalten.
          Ich muss also nachdem ich Starte Haus gesagt habe immer erst nach Geräte suchen.

          Hoffe das ist so verständlich.
          Gruß
          Olli

          Kommentar


            Hi Olli,

            wenn du mit dem Kommando "Alexa, starte Haus ..." arbeitest, geht das Kommando über den Custom Skill (Dein Aktivierungswort ist "Haus" oder?)

            Es gib in der V0.3 im Custom-Skill noch einen Bug bzgl. der Gerätesuche (Wiki Punkt 6.5):

            Warnung:
            !!!In der Lambda-Funktion ist aktuell noch der Bug, dass das Ergebnis der Suche nach den KNX-Objekten nicht in der DynamoDB abgelegt wird, wenn die Suche innerhalb einer Session gemacht wird.
            D.h. folgendes Szenario: "Alexa, starte Haus ... Suche meine KNX Objekte ... Beenden" funktioniert nicht! Das Kommando "Alexa sag Haus, Suche meine KNX-Objekte" schon!!!
            Falls du den Smart-Home Skill auch eingerichtet hast, müsstest du die Gerätesuche über die Alexa-App bzw. über das Sprachkommando "Suche meine Geräte" machen.
            Dann könntest du mit Alexa auch ohne Aktivierungswort schalten. Also z.B.: Alexa, schalte die Wohnzimmer Deckenleuchte ein.

            Gruß Werner

            Kommentar


              Das mit dem HUE Skill ist genau wie von Werner beschrieben. Dem HUE Skill muss man Zugriff auf den HUE Cloud Account geben. Die HUE Bridge ist auch mit HUE Cloud Account verbunden. Damit schließt sich dann wieder der Kreis. Wobei hierfür kein offener Port vorhanden sein muss, da die HUE Bridge von innen die Verbindung aufbaut.

              Kommentar


                Hallo André,
                ich bin mir nicht mehr ganz sicher (bin wahrscheinlich schon zu alt und vergesslich ), aber bei meinem ersten Test mit openhab2 und der Hue-Emulation, glaube ich mich erinnern zu können, das ich meine Geräte ohne einen zusätzlichen Skill in der Alexa-App (also auch ohne Account-Linking) finden konnte.
                Das würde wieder für die Hue-Sonderlocke sprechen.

                Gruß Werner

                Kommentar


                  Stimmt, das würde dann wirklich für ne Sonderlocke sprechen. Und wenn das ohne Accountlinking funktioniert, dann müsste es ja irgendwas direkt im Alexadevice sein, dass dann direkt mit der Bridge spricht.
                  Wie genau konnte man die Leuchten denn dann steuern? D.h. woher weiss Alexa dann wie die Leuchten in der Bridge heißen?

                  Kommentar


                    Wenn ich mich recht erinnere kann man die Gerätesuche in der Alexa-App auch ohne Smart-Home Skill durchführen und in der Hue-Emulation gab es eine Einstellung, die dazu geführt hat, dass man sozusagen virtuell die Taste auf der Bridge drückt.
                    In der openHab2 ".items"-Konfigurationsdatei hat man vorher seine KNX-Geräte definiert. Hier wurden auch die Namen der Leuchten hinterlegt.

                    Kommentar


                      Soo... ich habe das gerade mal "getestet". Wireshark auf dem Rechner angeworfen und Alexa gesagt das sie Geräte suchen soll. Dabei kamen dann 4 udp broadcast requests zum vorschein:

                      Code:
                      M-SEARCH * HTTP/1.1
                      HOST: 239.255.255.250:1900
                      MAN: "ssdp:discover"
                      MX: 15
                      ST: urn:Belkin:device:**
                      
                      M-SEARCH * HTTP/1.1
                      HOST: 239.255.255.250:1900
                      MAN: "ssdp:discover"
                      MX: 15
                      ST: urn:Belkin:device:**
                      
                      M-SEARCH * HTTP/1.1
                      HOST: 239.255.255.250:1900
                      MAN: "ssdp:discover"
                      MX: 15
                      ST: urn:schemas-upnp-org:device:basic:1
                      
                      M-SEARCH * HTTP/1.1
                      HOST: 239.255.255.250:1900
                      MAN: "ssdp:discover"
                      MX: 15
                      ST: urn:schemas-upnp-org:device:basic:1
                      Wenn ich das prinzip richtig verstehe ist das eine Aufforderung der Geräte sich zu melden. Das ist ja auch schon hier ( http://www.makermusings.com/2015/07/...me-automation/ ) aufgeführt.

                      Wenn ich:
                      - http://upnp.org/specs/basic/UPnP-bas...-v1-Device.pdf
                      - https://jan.newmarch.name/internetde...p-devices.html
                      - https://github.com/soffes/discover/b...scover/ssdp.rb
                      - http://www.upnp-hacks.org/upnp.html
                      - http://burtonini.com/computing/gupnp...-tutorial.html
                      - https://de.scribd.com/document/13829...Using-Internet
                      richtig verstehe, müsste auf so eine Anfrage jedes Gerät nun eine xml-antwort zurückschicken. Das Beispiel von Jan Newmarch enthält auch services. Die Services scheinen zwar auch standartisiert zu sein aber ich finde keine Liste der Verfügbaren typen.

                      on/off und Dimm ist auf jeden fall vorhanden und deckt ca. 70% der Anwendungsfälle ab. Temperatur geht garantiert auch. Ich suche weiter.

                      Achja... das funktioniert komplett OHNE einen besonderen Skill.

                      Gruß
                      Frank
                      Mein Bus; 2 Linien bestehend aus Gira USB Schnitstelle, B&J Linienkoppler, 3* Gira Dali GW, 6*B&J Dimmaktoren (4K), 4*B&J Jalousienaktor (26K), 1*MDT Schaltaktor (20K), 2*B&J Ventilantriebsaktoren (18K), 8*B&J Binäreingang (66K), 6 Gira Präsenzmelder, 5*B&J RTR, 22*B&J Tastsensoren, Wiregate und Gira Homeserver

                      Kommentar


                        Guten Morgen,
                        der Test unter 2.3.1 funktioniert jetzt, doch leider werden bei mir keine Geräte gefunden!
                        Ich kopiere doch die Amazon Echo Appliances einfach in AWS Lambda oder liege ich falsch?
                        Vielen Dank für eure Hilfe,
                        Gruß Ralf
                        Zuletzt geändert von Honkie; 09.02.2017, 08:12.
                        Gruß Ralf

                        Kommentar


                          Hallo Leute,

                          neue Erkenntnisse.
                          Amazon verwendet zwar ein Standardisiertes Protokoll, nutzt es aber augenscheinlich nicht wirklich standardmäßig. Der Grund warum nicht alle SmartHome Geräte gefunden werden können scheint darin zu liegen das Amazon eine liste von Hersteller und Produktids vorhält die vom Echo unterstützt werden. Kommt nun ein Gerät daher das nicht in diesen Listen auftaucht, wird es von alexa nicht unterstützt. Das dürfte der Grund für die HueBridge sein, die haben recht viele Leute zu Hause und konnten die Kommunikation abfangen.

                          Unter https://www.amazon.com/alexa-smart-h...de=13575751011 findet man produkte die Alexa tauglich sind. Die Hue Lichtsteuerung kann (wie oben beschrieben) auf jeden Fall an/aus und Dimmen. Ob Farben damit auch gehen habe ich noch nicht rausbekommen. Rolladen brauchen eigentlich ein rauf und runter, könnten aber theoretisch auch mit an aus und dimmbefehlen gesteuert werden.

                          Kameras, Mikrofone (hach, welche Ironie), Türschlösser und ähnliche sicherheitsrelevante Geräte darf man nicht über Alexa ansteuern (auch nicht mit nem Custom Skill der Zertifiziert werden soll).

                          Mein Plan ist nun erstmal mit einer kleinen Java Anwendung zu überprüfen ob ich den Discoveryprozess richtig verstanden habe und alexa dazu bekommen kann direkt mit dem Homeserver zu sprechen. Der nächste Schritt wäre dann die Lichtsteuerung (also an/aus und dimmen) direkt in das Logikmodul von Werner zu integrieren.

                          Riiiiiichtig cool wäre es wenn es hier jemanden geben würden der einen dieser Alexa tauglichen Thermostate zu Hause hat. Mit einem Mitschnitt der kommunikation kann dann wunderbar arbeiten und das Thema weiter voran bringen.

                          Wenn ich den Shop richtig verstehe, gibt es für Rolladen aktuell keine offizielle Lösung. Ich weiß nicht wie es euch geht, wenn ich aber schonmal das Licht (oder eventuell ne Steckdose) mit meiner Stimme schalten kann, bin ich erstmal ne weile zufrieden (vor allem wenn ich dafür nix extra installieren muss)

                          Gruß
                          Frank

                          @Werner
                          Wenn ich wirklich bis Phase 2 komme, würde ich nen fork von deinem repository anlegen. Dann könnte man das später auch wieder per pull request zurückmergen wenn dir die arbeit zusagt. Doofe Frage am Rande: ich welcher Sprache werden die Logikmodule eigentlich programmiert?
                          Mein Bus; 2 Linien bestehend aus Gira USB Schnitstelle, B&J Linienkoppler, 3* Gira Dali GW, 6*B&J Dimmaktoren (4K), 4*B&J Jalousienaktor (26K), 1*MDT Schaltaktor (20K), 2*B&J Ventilantriebsaktoren (18K), 8*B&J Binäreingang (66K), 6 Gira Präsenzmelder, 5*B&J RTR, 22*B&J Tastsensoren, Wiregate und Gira Homeserver

                          Kommentar


                            Guten Morgen Frank,

                            die Logikbausteine (.hsl-Dateien) werden in einer proprietären, auf Python basierenden, eigenen Logiksprache definiert.
                            Der User NilsS hier im Forum, hat einen Logik-Generator (ein Python Template) entwickelt und das notwendige Know-How zur Verfügung gestellt, welche die Bausteinentwicklung auf diesem Level überhaupt erst ermöglicht hat. Nils ist der Python und Gira Homeserver Guru hier im Forum, von ihm stammt z.B.: auch die xxAPI.

                            Ablauf:
                            Man bettet seinen eigenen Code in den Logik-Generator ein und erhält bei der Ausführung des Logikgenerators die entsprechende hsl-Datei.
                            Zusätzlich gibt es noch einen Logikdebugger der große Teile, der für die Bausteine benötigten Schnittstellen simuliert.
                            Damit hat man die Möglichkeit seine hsl-Dateien auch erstmal außerhalb des Homeservers zu testen.

                            Die Homeserver-Bausteinentwicklung ist ein steiniger Weg , also erwarte nicht den Komfort und die Möglichkeiten von heutigen Entwicklungsumgebungen.

                            Aktuell liegt auf Github nur die hsl-Datei, also wenn du bis zur Phase 2 kommst, müsstest du dich nochmal bei mir melden.

                            Viele Grüße
                            Werner

                            Kommentar


                              Guten Morgen Ralf,

                              nein, da liegst du falsch.
                              Auf der Debug-Seite vom Gira Homeserver werden dir für den Amazon Echo Service vier Links angeboten:
                              1. SSL-Certificate->show Zum Einsehen des hochgeladenen SSL-Zertifikates
                              2. Logfile->show Zum Einsehen des Logfiles
                              3. Appliances configuration->edit Zum Editieren der Gerätekonfiguration
                              4. Custom Skill Slot Types->show Um sich die für den Custom-Skill benötigten "Slot Type" ENUM_ROOM und ENUM_APPLIANCE generieren zu lassen.

                              Mit dem Link unter Punkt 3 kommst du auf die Seite mit einem Eingabefeld, wo du deine Gerätekonfiguration eingeben kannst.
                              Allerdings solltest du unbedingt den Text der Gerätekonfiguration nochmal auf deinem Computer ablegen. Ich benutze z.B. den freien Texteditor Notepad++ um meine Gerätekonfiguration zu bearbeiten. Wenn du die Datei mit der Endung ".js" abspeicherst bekommst du auch Syntax-Hilighting.
                              Meine Arbeitsweise ist dann folgende: Wenn ich mit der Bearbeitung fertig bin, speichere ich die Text zuerst ab und kopiere dann den Text in das Eingabefeld und klicke dann auf den Button "Daten absenden".

                              Im Punkt 2.3.1 testest du, ob die Kommunikation auch über AWS-Lambda funktioniert, also in der nachfolgenden Tabelle den Punkt 4. Du machst sozusagen den gleichen Test wie unter 1.1 nur "von weiter weg" und mit einer etwas anderen "Formulierung" nämlich den Test-Events.

                              Kommunikation (LBS=Logikbaustein, FF=Firefox, IR=Internet Router, LF=Lambda Funktion, "<==>"=Kommunikation):
                              Schritt Kommunikationssrecke Bemerkung
                              1 LBS <= http => FF Kommunikationstest mit Firefox auf lokale IP-Adresse des Homeserver noch ohne SSL-Zertifikat
                              2 LBS <=https => FF Kommunikationstest mit Firefox auf lokale IP-Adresse nach dem hochladen des SSL-Zertifikats in den LBS
                              3 LBS <=https => IR <= https => FF Kommunikationstest mit Firefox über externen Dyndns-Namen nach dem hochladen des SSL-Zertifikats in den LBS und eingerichteter Portweiterleitung
                              4 LBS <=https => IR <= https => LF Kommunikationstest mit AWS-Lambda über externen Dyndns-Namen nach dem hochladen des SSL-Zertifikats in den LBS und eingerichteter Portweiterleitung
                              Erst wenn der Test des vorhergehenden Schritt ok ist, macht es Sinn den nächsten Schritt zu testen.

                              Viele Grüße
                              Werner

                              P.S.: Ich finde es super, dass du noch nicht aufgegeben hast.
                              Zuletzt geändert von wernerL; 10.02.2017, 05:46.

                              Kommentar


                                Hallo Werner,
                                ich danke dir!
                                Ich habe das auch verstanden und habe den Punkt 4 auch testen können und es funktioniert!
                                Mein Appliances sind auch nicht wild, weil es ja erst einmal laufen soll:
                                Code:
                                [{
                                    "room": "Küche",
                                    "appliances": [{
                                        "name": "Deckenleuchte",
                                        "onOff": "1/2/36",
                                        "percent": "1/2/38"
                                    }]
                                }, {
                                    "room": "Wohnzimmer",
                                    "appliances": [{
                                        "name": "Deckenleuchte",
                                        "onOff": "1/2/26",
                                        "percent": "1/2/28"
                                    }]
                                }, {
                                    "room": "Schlafzimmer",
                                    "appliances": [{
                                        "name": "Deckenleuchte",
                                        "onOff": "1/2/21",
                                        "percent": "1/2/23"
                                    }]
                                }]
                                Getestet über: http://jsonlint.com/

                                Dann den Test über AWS-Lamda gemacht, siehe Screenshot!
                                und auch das funktioniert!

                                Dann gehe ich auf alexa.amazon.de und logge mich ein und lasse dann die Geräte suchen, doch da wird dann nichts gefunden.
                                Es ist dort natürlich der Skill aktiviert.
                                Ist auch im Screenshot noch einmal zu sehen.

                                Ich denke, dass jetzt nur noch eine Kleinigkeit falsch läuft!
                                You do not have permission to view this gallery.
                                This gallery has 2 photos.
                                Gruß Ralf

                                Kommentar

                                Lädt...
                                X