Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

    Hi Danny,

    ja, das ist der Fall:
    Zitat von Robert Beitrag anzeigen
    [*]im Alexa-Universum (App etc.), im Hue-Universum (App etc.), in smarthome und smartVISU sind die Zimmer definiert
    Daher funktioniert ja auch "Alexa, schalte das Licht an" wenn ich z.B. in "Emmas Zimmer" steht - dann geht auch wirklich nur da das Licht an und nicht z.B. in "Johannas Zimmer".

    Kommentar


      Zitat von danny Beitrag anzeigen
      Aber hasst du evtl. schon mal in der Alexa App Räume angelgt (Emma ,Johannes) und da die "Geräte" eingefügt die in den Räumen sind. Hatte gemeint das irgendwo mal gelesen zu haben. Die passende Alexa muß dem Raum natürlich auch in der App zugewiesen werden.
      Wie legt man denn Räume an und weist den Geräten und Echos Räumen zu? Das wäre ja super!

      Gruß,
      Hendrik

      Kommentar


        Geht relativ einfach:

        Webbrowser: https://alexa.amazon.de/spa/index.html#smart-home // dann auf "Gruppen" // "Gerätegruppen" // dann einfach auf "Gruppe erstellen" z.b.Küche // da alle Geräte in der Gruppe + Alexa auswählen und fertig. (Alexa sollte dann auch Küche heißen)

        Anderer Weg ist über die Android App:

        unten rechts auf "Geräte" // dann oben rechts auf "+" // Gruppe hinzufügen // Name vergeben und "Weiter" // dann wieder Alexa und Geräte auswählen und "Speichern" klicken.

        Hoffe das hilft ein bischen weiter mit Alexa.

        Gruß Danny

        Kommentar


          Danke.
          Das probiere ich!

          Kommentar


            Hallo,

            da ich das Problem hatte, dass die Alexa-App einen neu hinzugefügten RGB-Controller nicht gefunden habe, habe ich mich in der Amazon-Entwicklerkonsole angemeldet. (Vorher hatte ich mich auch kurz unter https://developer.amazon.com angemeldet, aber ich glaube das ist hier nicht relevant)
            Da musste ich statt Nodejs 4.x 8.10 wählen und speichern.
            Gleichzeitig habe ich auf den aktuellen Code aus https://raw.githubusercontent.com/sm.../aws_lambda.js aktualisiert.

            Wenn ich jetzt aber das in https://github.com/smarthomeNG/plugi...d%20Lambda.pdf erklärte Test-Event starte, bekomme ich die Meldung
            Response:
            {
            "errorMessage": "2019-11-25T17:41:52.033Z 027e5477-b3de-4b7b-9dc4-1690bc22b96f Task timed out after 5.01 seconds"
            }

            Request ID:
            "027e5477-b3de-4b7b-9dc4-1690bc22b96f"

            Function Logs:
            START RequestId: 027e5477-b3de-4b7b-9dc4-1690bc22b96f Version: $LATEST
            2019-11-25T17:41:47.110Z 027e5477-b3de-4b7b-9dc4-1690bc22b96f INFO requesting {"header":{"messageId":"F8752B11-69BB-4246-B923-3BFB27C06C7D","name":"DiscoverAppliancesRequest"," namespace":"Alexa.ConnectedHome.Discovery","payloa dVersion":"2"},"payload":{"accessToken":"1"}}
            END RequestId: 027e5477-b3de-4b7b-9dc4-1690bc22b96f
            REPORT RequestId: 027e5477-b3de-4b7b-9dc4-1690bc22b96f Duration: 5005.14 ms Billed Duration: 5000 ms Memory Size: 512 MB Max Memory Used: 25 MB
            2019-11-25T17:41:52.033Z 027e5477-b3de-4b7b-9dc4-1690bc22b96f Task timed out after 5.01 seconds
            Im Haus reagiert leider auch kein Smarthome Gerät mehr.

            Wie mache ich mich jetzt auf die Fehlersuche?
            In 30 min kommt meine Frau nach Hause ;-)

            Edit:
            Ich bin einen Schritt weiter:
            Das Plugin reagiert einfach nicht. Das liegt aber nicht an meinen Aktionen an den Amazon-Konsolen, sondern an meinen Yaml-Änderungen. Ich sehe im Log:
            Code:
            2019-11-25  20:15:08 INFO     avdevice     Initializing avdevice: Created response commands, including 20 entries.
            --
            2019-11-25  20:15:08 ERROR    Alexa4P3     Plugin 'alexa4p3' exception in run() method: Alexa: invalid device Lina_Lichterschlauch
            Traceback (most recent call last):
              File "/usr/local/smarthome/lib/plugin.py", line 674, in run
                self.plugin.run()
            --
                raise ValueError("Alexa: invalid device {}".format(device.id))
            ValueError: Alexa: invalid device Lina_Lichterschlauch
            Aber was mag er am Device nicht?

            Code:
                        Farbwert_RGB:
                            type: list
                            alexa_device: Lina_Lichterschlauch
                            alexa_description: Lichterschlauch Lina Fenster
                            alexa_color_value_type: RGB
                            alexa_actions: SetColor
                            alexa_retrievable: True
                            alexa_color_value_type: RGB
                            on_change:
                              - og.Lina.FensterFarb.R.Dimmwert = list[0]
                              - og.Lina.FensterFarb.G.Dimmwert = list[1]
                              - og.Lina.FensterFarb.B.Dimmwert = list[2]
                              - og.Lina.FensterFarb.sequencer = 0
            Edit: Es fehlte glaube ich das alexa_name.

            Dennoch: Ich denke, das ist ein Bug. Das Plugin sollte dadurch nicht crashen.
            https://github.com/smarthomeNG/plugins/issues/300


            Gruß,
            Hendrik
            Zuletzt geändert von henfri; 25.11.2019, 20:28.

            Kommentar


              Hallo,

              nachdem ich das o.g. Problem habe lösen können, bleibt mein ursprüngliches Problem:
              Nicht alle Szenen werden von Alexa gefunden. Woran kann das liegen?
              Ich habe in der Yaml sieben sehr änliche Szenen definiert:
              Code:
                        Morgen:
                          on_update: og.Lina.Szene = 1
                          alexa_item_turn_on : 1
                          alexa_icon : "SCENE_TRIGGER"
                          alexa_name:  Lena Morgen
                          alexa_actions: "turnOn"
                          alexa_device: lina_szene_morgen
                          alexa_description: Szene Lina Morgen
                          enforce_updates: true
                          alexa_actions : "Activate"
                          alexa_retrievable : false
                        Abend:
                          on_update: og.Lina.Szene = 2
                          alexa_item_turn_on : 2
                          alexa_icon : "SCENE_TRIGGER"
                          alexa_name:  Lena Abend
                          alexa_actions: "turnOn"
                          alexa_device: lina_szene_Abend
                          alexa_description: Szene Lina Abend
                          enforce_updates: true
                          alexa_actions : "Activate"
                          alexa_retrievable : false
                          Nacht:
                          on_update: og.Lina.Szene = 3
                          alexa_item_turn_on : 3
                          alexa_icon : "SCENE_TRIGGER"
                          alexa_name:  Lena Nacht
                          alexa_actions: "turnOn"
                          alexa_device: lina_szene_Nacht
                          alexa_description: Szene Lina Nacht
                          enforce_updates: true
                          alexa_actions : "Activate"
                          alexa_retrievable : false
                        Hausaufgaben:
                          on_update: og.Lina.Szene = 4
                          alexa_item_turn_on : 4
                          alexa_icon : "SCENE_TRIGGER"
                          alexa_name:  Lena Hausaufgaben
                          alexa_actions: "turnOn"
                          alexa_device: lina_szene_Hausaufgaben
                          alexa_description: Szene Lina Hausaufgaben
                          enforce_updates: true
                          alexa_actions : "Activate"
                          alexa_retrievable : false
                          Spielen:
                          on_update: og.Lina.Szene = 5
                          alexa_item_turn_on : 5
                          alexa_icon : "SCENE_TRIGGER"
                          alexa_name:  Lena Spielen
                          alexa_actions: "turnOn"
                          alexa_device: lina_szene_Spielen
                          alexa_description: Szene Lina Spielen
                          enforce_updates: true
                          alexa_actions : "Activate"
                          alexa_retrievable : false
                          Chillen:
                          on_update: og.Lina.Szene = 6
                          alexa_item_turn_on : 6
                          alexa_icon : "SCENE_TRIGGER"
                          alexa_name:  Lena Chillen
                          alexa_actions: "turnOn"
                          alexa_device: lina_szene_Chillen
                          alexa_description: Szene Lina Chillen
                          enforce_updates: true
                          alexa_actions : "Activate"
                          alexa_retrievable : false
                          AllesAus:
                          on_update: og.Lina.Szene = 7
                          alexa_item_turn_on : 7
                          alexa_icon : "SCENE_TRIGGER"
                          alexa_name:  Lena Alles Aus
                          alexa_actions: "turnOn"
                          alexa_device: lina_szene_Alles_Aus
                          alexa_description: Szene Lina Alles Aus
                          enforce_updates: true
                          alexa_actions : "Activate"
                          alexa_retrievable : false
              Davon findet Alexa aber nur
              -Hausaufgaben
              -Morgen
              -Alles Aus
              -Nacht

              Woran kann das liegenß

              Gruß,
              Hendrik

              Kommentar


                Wie sieht das denn im Item Tree aus? Bei dem was Du gepostet hast wäre (aufgrund der Einrückungen) Nacht: ein SubItem von Abend: und hat keine Attribute. Dafür werden die "Nacht-Attribute" die Attribute von Abend: überschreiben.
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar


                  Hallo,

                  danke, manchmal sitzt man zu nah am Bildschirm.
                  Das wird es gewesen sein.

                  Gruß,
                  Hendrik

                  Kommentar


                    Hallo henfri,

                    das mit dem "alexa_name" hab ich mir angeschaut.
                    Das Problem liegt darin, dass die Prüfung der Alexa-items noch mit der "alten" P2-Logik erfolgt. Da hatte ich nichts geändert/überarbeitet.
                    Hier wird auf noch auf logger.error geloggt. Die Ausgabe ist dann nicht vollständig. (Sonst würde im Log stehen : ""Alexa-Device {}: empty name".format(self.id)")
                    Ein Fehler an dieser Stelle wird mit "raise" abgefangen und führt zum Abbruch. Sehr unschön
                    Da ich im Moment eh am erweitern überarbeiten des Plugins bin, nehm ich das mal auf die Todo-Liste.
                    Das mit den nicht gefundenen Szenen sehe ich so wie Msinn. (Falls die vorgeschlagene Lösung keine Abhilfe schafft kurze Info, dann werde ich das auch prüfen.)

                    In Deiner zuletzt geposteten item-config kommt der Lichterschlauch von Lina nicht mehr vor, tut der jetzt nachdem er einen alexa_name hat ?
                    Der Color-Controller ist bisher nach meinem Wissen wenig (bzw. gar nicht genutzt worden), ich selbst habe kein Color-Gerät, habe immer mit virtuellen Devices getestet :-(

                    Hierzu eine Rückmeldung wäre schön

                    Gruss Andre

                    Kommentar


                      Hallo Andre,

                      vielen Dank.
                      Der Lichterschlauch funktioniert. Ich hatte ihn nur in dem Teil der Konfiguration nicht gepostet, weil er nicht relevant ist.
                      Der Color-Controller funktioniert. Das kann ich bestätigen.
                      Hier die Konfiguration:
                      Code:
                              FensterFarb:      
                                  Farbwert_RGB:
                                      type: list
                                      alexa_device: Lina_Lichterschlauch
                                      alexa_description: Lichterschlauch Lina Fenster
                                      alexa_icon: "LIGHT"
                                      alexa_name:  Lina Lichterschlauch
                                      alexa_icon: LIGHT
                                      alexa_color_value_type: RGB
                                      alexa_actions: SetColor
                                      alexa_retrievable: True
                                      alexa_color_value_type: RGB
                                      on_change:
                                        - sh.og.Lina.FensterFarb.R.Dimmwert = list[0]
                                        - sh.og.Lina.FensterFarb.G.Dimmwert = list[1]
                                        - sh.og.Lina.FensterFarb.B.Dimmwert = list[2]
                                        - sh.og.Lina.FensterFarb.sequencer = 0
                      Das Beispiel in der Readme ist nicht so schön, weil da
                      - R_WERT = list[0]
                      steht.
                      Besser wäre
                      - sh.R_WERT = list[0]

                      oder noch besser: wenn die R/G/B Items im Beispiel Item enthalten würden und dann on_change relativ adressiert würden:
                      - sh..R_WERT = list[0]

                      Gruß,
                      Hendrik

                      Kommentar


                        Hallo,

                        neuer Post für ein weiteres Problem:
                        Es tauchen nicht alle Geräte, die ich in den Yamls definiert habe in der Alexa-App auf. Auch nachdem ich nach neuen Geräten gesucht habe.
                        Ich habe in den Yamls nach alexa_name gesucht: 51 Ergebnisse.
                        Ein Read-Request unter
                        https://eu-west-1.console.aws.amazon.com/
                        ergibt 50 Ergebnisse. Der ganze Output hier:
                        https://1drv.ms/t/s!AvbzKdYzkh6gkgWT...ddMdN?e=P4xaeo
                        In der Alexa-App finden sich nur 29 Geräte aus sh.py.
                        Allerdings reagieren auch Geräte, die nicht in der App sind (z.B. "Ecklampe") mit dem Bestätigungston, schalten aber nicht.
                        Ich meine aber dass es auch Geräte gibt, die nicht in der App sind, aber normal funktioniern.

                        Woran kann das liegen?

                        Gruß,
                        Hendrik

                        Kommentar


                          Hallo henfri ,

                          das der Lichterschlauch funktioniert ist schonmal gut, Deine Hinweise zur Doku nehme ich auf.
                          Zu Deinem Problem. Ich vermute Du hast Deinen Skill auf Payload 3 umgestellt (sonst würde ja der Lichterschlauch nicht funktionieren).
                          Dein Discovery-Response auf OneDrive ist noch in Payload V2, ich denke Du hast in der Lambda Testfunktion das Discovery noch mit Payload V2 abgesetzt.
                          Der Response zeigt Actions aus Payload V2 (V2 = turnOn / V3 = TurnOn). Ich denke wenn Du alle Actions auf V3 umstellst hast Du alle
                          Geräte auch in der App.

                          Da das Plugin beim Validieren (erfolgt beim Start von smarthomeNG) der Devices im Moment nicht weiß welcher Payload beim Skill eingestellt ist kann hier keine Prüfung erfolgen.
                          Man könnte einen zusätzlichen Parameter in etc /etc/plugin.yaml einführen um dann zu prüfen ob alle Actions für die richtige Payload-Version parametriert sind.

                          Meinungen zum zusätzlichen Parmeter ?

                          Gruss Andre

                          Kommentar


                            Hallo Andre,
                            Vielen vielen Dank ich dachte ich hätte alle erwischt. Mir ist nicht ganz klar warum Amazon hier nicht für eine abwärtskompatibilität gesorgt hat das wäre ja recht einfach gewesen.
                            Ich spreche jetzt mal ins unreine:
                            Mein Vorschlag wäre dass sobald ein V3 Parameter erkannt wird V3 angenommen wird und dann eine Warning oder ein Error gemeldet wird wenn auch noch V2 auftaucht.

                            Ein zusätzlicher Parameter bringt wieder das Problem mit dass die Frage ist was der Default sein soll.
                            Die meisten werden den Parameter gar nicht setzen.
                            Ich denke heute sollte default V3 sein. aber dann bekommen natürlich alle die noch nicht umgestellt haben meine warning die gar nicht nötig ist.
                            wenn man V2 als Default macht bekommen alle die das Plugin neu einrichten und den Parameter nicht setzen eine warning.

                            Daher mein Vorschlag. Mein Vorschlag ist also quasi ein autodetect.

                            Viele Grüße und noch einmal vielen Dank für das tolle plugin,
                            Hendrik

                            Kommentar


                              Hallo Andre,

                              ich habe jetzt noch mal alle turnOn und turnOff mit einem großen T versehen und neu gestartet.
                              Damit wurden jetzt vier weitere Geräte gefunden.
                              Was mich wundert:

                              Wenn ich in
                              https://eu-west-1.console.aws.amazon...=configuration
                              Code:
                              {
                                "header": {
                                  "messageId": "F8752B11-69BB-4246-B923-3BFB27C06C7D",
                                  "name": "DiscoverAppliancesRequest",
                                  "namespace": "Alexa.ConnectedHome.Discovery",
                                  "payloadVersion": "3"
                                },
                                "payload": {
                                  "accessToken": "1"
                                }
                              }
                              Also payloadVersion: "3" konfiguriere und abschicke, bekomme ich:

                              Code:
                              </head>
                                  <body>
                                      <h1>Error response</h1>
                                      <p>Error code: 400</p>
                                      <p>Message: Bad Request.</p>
                                      <p>Error code explanation: 400 - unknown `header.namespace` 'Alexa.ConnectedHome.Discovery'.</p>
                                  </body>
                              </html>
                              
                              2019-12-01T16:04:11.923Z    551d8fef-8e7d-416e-81d0-9c23a2a3dd25    SyntaxError: Unexpected token < in JSON at position 0
                                  at JSON.parse (<anonymous>)
                                  at IncomingMessage.res.on (/var/task/index.js:39:24)
                                  at emitNone (events.js:111:20)
                                  at IncomingMessage.emit (events.js:208:7)
                                  at endReadableNT (_stream_readable.js:1064:12)
                                  at _combinedTickCallback (internal/process/next_tick.js:138:11)
                                  at process._tickDomainCallback (internal/process/next_tick.js:218:9)
                              END RequestId: 551d8fef-8e7d-416e-81d0-9c23a2a3dd25
                              REPORT RequestId: 551d8fef-8e7d-416e-81d0-9c23a2a3dd25    Duration: 144.56 ms    Billed Duration: 200 ms    Memory Size: 512 MB    Max Memory Used: 21 MB    
                              RequestId: 551d8fef-8e7d-416e-81d0-9c23a2a3dd25 Process exited before completing request
                              In https://github.com/smarthomeNG/plugi...d%20Lambda.pdf steht auch nur V2 (daher ist bei mir im Test-Event V2 spezifiziert).


                              Mal ganz unabhängig vom Test-Event: Muss ich bei Amazon in der Konsole irgendwo V3 spezifizieren?

                              Ich denke aber, dass ich das richtige Plugin nutze:
                              alexav3.PNG

                              Gruß,
                              Hendrik

                              Kommentar


                                Hallo henfri,

                                das Discovery für Payload V3 ist etwas anders aufgebaut, bei mir sieht das so aus :
                                Code:
                                {
                                  "directive": {
                                    "header": {
                                      "namespace": "Alexa.Discovery",
                                      "name": "Discover",
                                      "payloadVersion": "3",
                                      "messageId": "abc-123-def-456"
                                    },
                                    "payload": {
                                      "scope": {
                                        "type": "BearerToken",
                                        "token": "access-token-from-skill"
                                      }
                                    }
                                  }
                                }
                                Dann bekomm ich auch den richtigen Response.

                                Kurzer Spoiler zum nächsten Release, dann mit Web-Interface :
                                Anzeige aller Alexa-Devices mit zugeordneten Actions und entsprechendem shNG-Item
                                Action mit Payload V2 = rot, mit Payload V3 = grün, summarisch im Kopf grün wenn nur eine Payload-Version verwendet wurde, rot wenn zwei Payload-Versionen verwendet wurden.

                                2019-12-01-173124_1280x1024_scrot.png

                                Gruss Andre

                                Kommentar

                                Lädt...
                                X