Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon-Echo Logikbaustein

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

    HS/FS Amazon-Echo Logikbaustein

    Hallo,

    nachdem ich immer noch auf eine Einladung zum Kauf eines Amazon-Echo's warte, habe ich zwischenzeitlich doch an der Anbindung über einen Gira Homeserver Logikbaustein weitergearbeitet.

    Um den Baustein allgemeingültig zu machen, suche ich aktuell noch nach einer Lösung dem Baustein mehrer "textuelle Konfigurationen" als Parameter zu übergeben.
    So braucht der Baustein z.B.: für die Kommunikation über Https ein SSL-Zertifikat welches ich aktuell im Baustein hardcodiert habe.

    Die einzige Möglichkeit die mir bis jetzt eingefallen ist:
    Nachdem der Baustein einen Https-Server bereitstellt, könnte man eine Konfigurations-Webseite bauen in der man die benötigten Konfigurationsdateien über FileUpload hochladen kann.
    Einfacher umzusetzen wäre es jedoch über den "Gira Experten", aber über die Bausteineingänge kommt man hier nicht weiter - oder habe ich da etwas übersehen?

    Viele Grüße
    Werner

    Update 16.01.2017
    Neue Version V0.3 des Logikbausteins auf https://github.com/Picpol/HS-AmazonEcho hochgeladen.

    Vielen Dank auch wieder an Marcus alias tunneltruppe, das er sich als Versuchskaninchen bereit erklärt hat.

    !!!Beim Update des Logikbausteins von Version V0.2 auf V0.3 geht die JSON-Gerätekonfiguration im Gira Homeserver verloren und muss deshalb im Anschluß neu "hochgeladen" werden!!!

    Änderungen von V0.2 auf V0.3:
    • zusätzliche Möglichkeit über den Custom-Skill Werte vom KNX-Bus abzufragen
    • in der JSON-Konfiguration können jetzt Javascript-Kommentare verwendet werden
    • statt der Angabe des "onOff" Attributes, kann jetzt ein "on" und/oder "off" Attribut verwendet werden um eine 1-Bit KNX-Gruppenadresse anzugeben. Damit kann man festlegen, ob ein Gerät mit dem jeweiligem Sprachkommando nur ein oder ausgeschaltet werden darf.
    • die maximale Länge Bytes (Zeichen) der JSON Konfiguration ist jetzt 50.000 - bislang nur 10.000
    • "Favicon-Requests" der Browser werden nicht mehr als unautorisierte Zugriffe gezählt
    • im Log wird für die Set-Percentage und Set-Temperature Requestes auch der gesendete Wert ausgegeben
    • kleinere Fehlerbehebungen und Verbesserungen



    Update 17.12.2016:
    Neue Version V0.2 des Logikbausteins auf https://github.com/Picpol/HS-AmazonEcho hochgeladen.

    Hinweis: Auch hier gilt "Never change a running System". Falls es also läuft und man nicht die Solltemperatur eines Raumes per Sprachkommando steuern möchte, oder die Appliance-ID's vorgeben möchte, gibt es keinen zwingenden Grund upzudaten.

    Änderungen von V0.1 auf V0.2:
    • Unterstützung der "Temperature Control Messages" des Amazon "Smart Home Skill API "
      D.h. auf Raumebene kann optional mit dem Schlüsselwort "targetTemperature":"X/Y/Z" eine KNX Gruppenadresse für die Solltemperaturvorgabe des Raumes angegeben werden
    • auf Raumebene und Geräteebene kann optional mit dem Schlüsselwort "id": die Appliance-ID vorgegeben werden. Der ID darf nur aus Buchstaben und Ziffern bestehen, da Alexa sonst damit nicht klarkommt. Für die Aliasenamen wird zusätzlich automatische eine laufende Nummer angehängt.
    • Log-Ausgabe mit der Möglichkeit diese über die Homeserver Debug-Seite einzusehen
    • Die Fehlerbehandlung sollte besser geworden sein
    • Das Character-Encoding sollte besser gehandhabt werden z.B.:
      korrekte Darstellung der Umlaute nach dem abspeichern der Konfiguration
      korrekte Behandlung von Umlauten im im Access-Token
    • sonstige kleinere Änderungen
    • das erste Gerät in der Appliance-Liste wird nicht mehr unter dem Raumnamen an Alexa gemeldet.
    • das optionale Schlüsselwort "value" zur Vorgabe des Einschaltwertes wurde umbenannt in "onValue"


    Zum Update von V0.1 auf V0.2: muss man sowohl die GiraHS.js als auch den Logikbaustein updaten.
    Die Ein- und Ausgänge des Bausteins haben sich allerdings geändert:
    • zwei zusätzliche Eingänge zur Steuerung der Log-Ausgabe (am besten erstmal Default-Werte verwenden)
    • der bisherige Textausgang A1 (Systemlog) entfällt und muss durch einen Zählerausgang ersetzt werden.
      Dieser protokolliert die Anzahl der Zugriffe ohne gültiges Access Token.



    Update 6.12.2016:
    Der Logikbaustein hat zwischenzeitlich die offizielle Bausteinnummer 13626 bekommen und wurde in die Rubrik "Weitere Bausteine" einsortiert. Verweise auf die alte Bausteinummer 10013 sind bitte entsprechend mit 13626 zu ersetzen.
    Den Baustein und alle weiteren zur Anbindung nötigen Dokumente findet man unter https://github.com/Picpol/HS-AmazonEcho

    Vielen Dank auch nochmal an tunneltruppe für die Unterstützung beim Test und der Dokumentation.

    Hinweis: Ich bin kein Python-Profi und auch kein SSL-Guru, also falls jemand Hinweise oder Verbesserungsvorschläge hat, nehme ich diese gerne entgegen. Des Weiteren ist die Einrichtung relativ umfangreich und nicht ganz ohne (siehe auch Kommentare im Projektforum: Smarthome.py zur Einrichung der Amazon-Konfiguration)
    Zuletzt geändert von wernerL; 16.01.2017, 13:56.

    #2
    Hallo Werner!
    Ein SSL-Zertifikat ist nichts anderes als Text. Das kannst Du in einem Editor öffnen, kopieren und im Experten in ein Text-Objekt als Init-Wert legen. Das Objekt verbindest Du dann mit einem Eingang Deines Bausteins, der dann diese Infos beim Durchlaufen zur Verfügung hat.
    Allerdings finde ich jetzt gerade in der API nicht die Stelle, die ein vom HTTPS-Protokoll separates Zertifikat benötigt. Wie setzt Du den Baustein denn um? Soweit ich die API überblicke ist das mit den Standard-Bordmitteln der offiziellen HS-Logik-Doku nur mit äußerstem Aufwand möglich...

    Kommentar


      #3
      Erstmal Danke für deinen Tipp.
      Mein Versuch den Text des SSL-Zertifikats über einen Bausteineingang dem Programm zu übergeben klappt leider nicht.
      Egal ob über den Init-Wert eines ausgelagerten 14-Byt Text Kommunikationsobjekts oder als Default-Wert am Bausteineingang selbst.
      Es wird von dem mehrzeiligen Text des SSL-Zertifikats nur die erste Zeile "-----BEGIN PRIVATE KEY-----" übernommen.
      Evtl. könnte man vieleicht tricksen, wenn man die Zeilenumbrüche im Text des SSL-Zertifikats unter Berücksichtigung des Escaping's im Text durch z.B.: "\n" ersetzt und dann vom Logikbaustein wieder in Zeilenumbrüche zurück umwandelt. Zu diesem Test komme ich allerdings erst nächste Woche, da ich jetzt erstmal bis Dientstag unterwegs bin.

      Zu deinen Fragen:
      Mir ist leider nicht klar welche API du meinst.
      Den "Baustein" habe ich mit dem Python Logikgenerator von NilsS entwickelt, wobei das Ganze mit einem klassischen Logikbaustein eigentlich nicht mehr viel zu tun hat.
      Es ist wohl eher ein eigenständiges HTTPS-Webservice Modul bestehend aus mehreren Python-Klassen was man in einen Logikbaustein verpackt hat um es mit dem Gira Homeserver zu nutzen.

      Gruß Werner

      Kommentar


        #4
        Ich meine die Amazon Alexa API, welche u. a. die Schnittstelle zu Amazon Echo zur Verfügung stellt. Oder gegen welche Schnittstelle entwickelst Du Deinen Baustein?

        Gruß
        Stephan

        Kommentar


          #5
          Hallo Stephan,

          die Anbindung läuft aktuell über den Alexa Smart Home Skill mit einer AWS-Lambda-Funktion quasi als Zwischenschicht.
          Allerdings habe ich mich noch nicht um die "Temperature Control Messages" gekümmert, weil ich dafür momentan noch keinen Anwendungsfall habe.

          Nachdem die Möglichkeiten mit dem Smart Home Skill im Augenblick doch noch sehr eingeschränkt sind, werde ich wohl die weiteren Funktionen die ich gerne hätte, parallel über einen Custom-Skill anbinden.

          Gruße
          Werner

          Kommentar


            #6
            Das klingt interessant! Wenn Du da etwas hast würde mich das definitiv interessieren.

            Gruß
            Stephan

            Kommentar


              #7
              Bin wie gesagt ein paar Tage unterwegs. Wenn ich wieder da bin melde ich mich wieder bei dir.

              Gruß
              Werner

              Kommentar


                #8
                Hallo Stephan,

                der Logikbaustein hätte jetzt einen Stand wo ein anderer User diesen testen könnte.

                Allerdings umfasst die komplette Einrichtung bis zur funktionierenden Sprachsteuerung eine ganze Reihe von teilweise nicht trivialen Konfigurationsschritten. Ein gewisser Teil der "externen" Konfiguration läuft zwar analog wie z.B.: bei FHEM Punkte 1.3 - 1.6 ab siehe (http://www.fhemwiki.de/wiki/Alexa-Fhem) allerdings existiert (noch) keine eigene vollständige Dokumentation hierfür. Genau für diesen Punkt würde ich auch noch jemanden suchen, der das übernehmen könnte.
                Nachdem die Resonanz allerdings bis jetzt nicht sehr groß ist, wärst du vielleicht auch der Einzige der diese Dokumentation dann verwenden würde.

                Also falls du Interesse hast und dir das zutraust gib mir Bescheid.

                Gruß Werner

                Kommentar


                  #9
                  Wie weit sind die Funktionen des Bausteins? Nur an/aus oder auch %? Habe noch keinen Echo. Gira Hs wäre vorhanden.

                  Kommentar


                    #10
                    Im aktuellen Stand sind von der Smart Home Skill API die "Discovery Messages", "On/Off Messages" und die "Percentage Messages" umgesetzt.
                    Die Konfiguration der steuerbaren "Geräte" kann aktuell entweder:
                    a) über eine zusätzliche Kennzeichnung ([Switchable] bzw. [Lighting]) im Namen des Kommunikationsobjekts im Gira Experten oder
                    b) über eine textuelle Konfiguration erfolgen.

                    Beispiel für a)
                    GrpAdr="1/2/3" Bezeichnung="Küche [Switchable]" Datentyp="1-bit Schalt..."
                    GrpAdr="1/2/4" Bezeichnung="Diele Wandleuchte [Lighting]" Datentyp="8-bit (0..100%/EIS6)"

                    Alexa schalte das Licht in der Küche ein
                    Alexa dimme das Licht in der Diele auf 70%

                    Beispiel für b)
                    Code:
                    [
                      {"room" : "Windfang", "appliances" : [{"name" : "Deckenleuchte", "onOff" : "1/0/1", "aliases":["Eingang"]}]},
                      {"room" : "Diele", "appliances" : [
                        {"name" : "Wandleuchten", "onOff":"1/0/10", "percent":"1/0/11"},
                        {"name" : "Deckenleuchte", "onOff":"1/0/12"},
                        {"name" : "Vitrine", "onOff":"1/0/13", "aliases" : ["Deko Diele", "Dekobeleuchtung Diele"]}
                      ]},
                      {"room" : "Lichtszene", "appliances" : [
                        {"name" : "Essen", "onOff":"2/7/41", "value":"0"},
                        {"name" : "Küche", "onOff":"2/7/41", "value":"1"},
                        {"name" : "Deko", "onOff":"2/7/41", "value":"2"}
                      ]}
                    ]
                    Alexa schalte die Deckenleuchte im Windfang ein
                    Alexa dimme die Wandleuchten in der Diele auf 70%
                    Alexa starte die Lichtszene Essen

                    Wie sich herausgestellt hat, ist Variante a) eigentlich nur für einen ersten kurzen Test mit ein paar Geräten geeignet. Zum einen ist es unschön in den Namen der Kommunikationsobjekte rumzupfuschen, zum anderen ist man in der Konfiguration zu sehr eingeschränkt.

                    Variante b) ist erstmal ein erster Entwurf. (Beim schreiben ist mir gerade aufgefallen, dass es vielleicht eher "group" statt "room" heissen sollte.)

                    Gruß Werner

                    Kommentar


                      #11
                      Zitat von wernerL Beitrag anzeigen
                      Hallo Stephan,

                      der Logikbaustein hätte jetzt einen Stand wo ein anderer User diesen testen könnte.

                      Allerdings umfasst die komplette Einrichtung bis zur funktionierenden Sprachsteuerung eine ganze Reihe von teilweise nicht trivialen Konfigurationsschritten. Ein gewisser Teil der "externen" Konfiguration läuft zwar analog wie z.B.: bei FHEM Punkte 1.3 - 1.6 ab siehe (http://www.fhemwiki.de/wiki/Alexa-Fhem) allerdings existiert (noch) keine eigene vollständige Dokumentation hierfür. Genau für diesen Punkt würde ich auch noch jemanden suchen, der das übernehmen könnte.
                      Nachdem die Resonanz allerdings bis jetzt nicht sehr groß ist, wärst du vielleicht auch der Einzige der diese Dokumentation dann verwenden würde.

                      Also falls du Interesse hast und dir das zutraust gib mir Bescheid.

                      Gruß Werner
                      Guten Abend Werner,
                      ich habe meinen noch nicht bekommen, aber würde mich anbieten Dir bei der Doku zu helfen.
                      Ich lese mich erstmal bei fhem ein. Wenn Du noch Daten/ Teile der Instalation oder was auch immer
                      hast kannst Du die mir per PM zukommen. Wie und welchen Style die Doku haben soll, kannst Du mir
                      sagen.
                      Laß uns einfach anfangen und keinen Druck gegenseitig aufbauen!!!
                      Ggf. machen wir erstmal ein Word Dokumment zum hin und hersenden!!
                      Ggf. muss Du mir aber auch halt helfen....
                      Also wenn Du hilfe brauchst melde Dich!!!
                      Gruß Marcus

                      Kommentar


                        #12
                        Hi. Ich biete mich auch sehr gern zum Testen an. Bin Informatiker und besitze auch einen Gira HS. Leider scheitert es bei mir ebenso am Echo.

                        Kommentar


                          #13
                          Hi
                          ich hätte einen HS und auch den Echo. Steuere momentan über die ha-bridge und dem HS. Also wenn ich es mal testen soll....

                          Gruß
                          Olli

                          Kommentar


                            #14
                            Moin in die Runde!!!

                            Werner und ich sitzen jetzt seit einigen Abenden dran den Baustein zu testen.
                            Vorab hatte ich die meiste Arbeit mit der Anmeldung bei Amazon.
                            Aus diesem Grund hatte ich mal meine Anmeldung in einem Dokument zusammengetragen
                            was Werner dann immer kontrolliert und verbessert hat.
                            Anbei nun das erste Dokument zum Thema.
                            Ich werde ggf. noch ein Dokument zum HS Baustein machen und zum Themas SSL- Zertifikat.
                            Also wenn Ihr euch auch noch bei Amazon anmelden müsst, dann hilft euch das vielleicht ja auch!!
                            Gruß Marcus.
                            P.S. Werner hat das Dokument auch hier hochgeladen, bzw. hier findet ihr noch mehr Info:
                            https://github.com/Picpol/HS-AmazonEcho
                            Achtung:
                            Leider ist die .pdf Datei sehr groß, so dass ich hier nur eine "schlechtere" Auflösung hochladen konnte,
                            im Github- Projekt ist eine bessere Auflösung vorhanden!!!
                            Einrichtung eines Amazon Account für Nutzung eines Echos oder Dots _V2.1a.pdf

                            Kommentar


                              #15
                              Vielen Dank erstmal für eure Arbeit....

                              Aktuell warte ich nur noch auf mein Echo...was ich normalerweise in den nächsten Tagen erhalten soll.
                              Ich hab alles mal soweit eingerichtet wie in der PDF beschrieben.... Was mir noch fehlt ist das Thema SSL Zertifikat ....

                              Kann ich jetzt schon irgendwie testen ob alles funktionieren würde ???
                              greetz Benni

                              Kommentar

                              Lädt...
                              X