Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Smarthome Skill (Payload Version 3)

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

    Du hast schon recht.
    Ich würde es mir eher als zusätzliches Programm welches auf dem Server läuft vorstellen.
    Anbindung an edomi dann über mqtt oder ähnliches.
    Da der Sourcecode auf github liegt müsste sich das auch in ein normales linux programm portieren lassen.
    Z.B. C++ oder python

    Kommentar


      Guten Morgen und frohe Ostern.

      Erst einmal vielen Dank für den LBS und die Anleitung... hab zwar einige Versuche gebraucht aber jetzt hört wenigstens eine Frau im Haus auf mich.

      Wo ich jetzt noch Probleme habe ist der Proxi und zwar funktioniert es bei mir nur mit "Require all" ind der 000-default-le-ssl.conf.
      Sobald ich das ändere gehts nicht.

      so gehts:
      Code:
      ...
      <Location />
      <RequireAll>
      # Erlaubt Zugriff von überall
      Require all granted
      # Folgende Zeile erlaubt Zugriff aus dem eigenen Netzwerk
      # (192.168.0.0/24) und von Amazon-Alexa (54.240.197.0/24)
      # Require ip 192.168.0.0/24 54.240.197.0/24
      </RequireAll>
      </Location>
      ...

      so nicht:
      Code:
      ...
      <Location />
      <RequireAll>
      # Erlaubt Zugriff von überall
      # Require all granted
      # Folgende Zeile erlaubt Zugriff aus dem eigenen Netzwerk
      # (192.168.0.0/24) und von Amazon-Alexa (54.240.197.0/24)
      Require ip 192.168.0.0/24 54.240.197.0/24
      </RequireAll>
      </Location>
      ...
      ich hab dann im Apache2-Log eine andere IP von Amazon gefunden:

      Code:
      3.249.95.28 - - [10/Apr/2020:09:09:35 +0100] "POST /edomi/edomi-smarthome-skill-PLv3.php HTTP/1.1" 200 5404 "-" "python-requests/2.22.0"
      da dachte ich mir ich versuch es mal so:
      Code:
      ...
      <Location />
      <RequireAll>
      # Erlaubt Zugriff von überall
      # Require all granted
      # Folgende Zeile erlaubt Zugriff aus dem eigenen Netzwerk
      # (192.168.0.0/24) und von Amazon-Alexa (54.240.197.0/24)
      Require IP 192.168.0.0/24 3.249.95.0/24
      </RequireAll>
      </Location>
      ...
      oder auch so:
      Code:
      ...
      Require IP 192.168.0.0/24 3.249.95.28
      ...

      Code:
      ...
      Require IP 3.249.95.28
      ...
      Was mach ich falsch?

      Viele Grüße

      Jürgen

      Kommentar


        Das wird schwierig. Wurde auch hier schon mal diskutiert.

        Man müsste entweder alle IP Adress Ranges von Amazon freigeben oder irgendwie herausfinden, welche davon zum Alexa Service gehören.
        Ist fast unmöglich. Oder alternativ die IPs, die von außen zugreifen für eine gewisse Zeit aufzeichnen und diese dann berechtigen (Das werden dann wohl die von Amazon Alexa sein). Aber es kann halt immer sein, dass diese sich ändern, bzw. neue hinzukommen. Ich verwende bei mir auch "Require all granted".

        Kommentar


          ja ich habs dann aufgegeben und alles durchgeleitet

          Kommentar


            Hallo Zusammen,
            ist die aktuelle Version im DL-Bereich für Python 2.7 oder 3.6 gedacht?
            In der Doku steht nämlich noch 2.7, aber das zip file ist in Version 0.3 was auf python 3.6 hindeutet.
            VG,

            Kommentar


              Hi zusammen!
              ich komme einem Problem nicht auf die Schliche: immer wenn ich die Alexa App aufmache, steht bei mehreren Geräten „Gerät reagiert nicht“.
              Ich kann im Log aber sehen, dass für diese Geräte entsprechend der Abfrage ein Status zurückgegeben wird.
              Die LBS sind die aktuellsten, das Skript auch. Alle stehen auf proactive und retrievable. Jedes Gerät hat auch einen Status auf dem Eingang und am Ausgang steht „verified“ und es gibt eine Rückgabe, die sauber aussieht. Keine Errors im Log (was mich ne Weile gekostet hat, wegen den ganzen Statuswerten).
              Trotzdem immer wieder Geräte auf „reagiert nicht“. Hat jemand eine Idee?
              Ach ja: wenn ich auf das jeweilige Gerät gehe und kurz warte funktioniert es plötzlich. Dann ein paar Minuten später wieder einige andere Geräte nicht.
              Ich hab schon aus Verzweiflung die „uncertainty“ von 500ms auf 1500ms hochgestellt. Hatte aber auch keinen Effekt....

              Grüsse
              Rico
              Angehängte Dateien

              Kommentar


                Liegt eventuell daran, das Amazon die Rückmeldung innerhalb einer relativ kurzen Zeit erwartet.
                Wenn die Zeit vom Amazon Server zum PHP script, weiter zu Edomi und wieder den Weg zurück, zu lange braucht, kann das passieren.

                Ich habe mir parallel zu Edomi nun noch Node-red installiert.
                Dort gibt es eine Library welche einen Hue Hub emuliert und komplett lokal ohne Server und ohne komplizierte Einrichtung funktioniert (node-red-contrib-amazon-echo).
                Befehle werden dadurch viel schneller verarbeitet.
                Geht allerdings nur für Leuchten (Ein/Aus, %, Farbe) und mit Prozentwerten auch für Jalousien.

                Für TV und anderes verwende ich weiterhin diesen LBS.

                Zitat von Zaschii Beitrag anzeigen
                ist die aktuelle Version im DL-Bereich für Python 2.7 oder 3.6 gedacht?
                Es scheint mit allen Python Versionen 2.7, 3.6 und auch 3.8 zu funktionieren.
                Läuft bei mir jetzt mit 3.8
                Zuletzt geändert von philipp900; 15.04.2020, 11:00.

                Kommentar


                  Zitat von Dawaterman Beitrag anzeigen
                  Trotzdem immer wieder Geräte auf „reagiert nicht“. Hat jemand eine Idee?
                  Ich habe ca. 30 Geräte mit entsprechender Rückmeldung. Alle liefern den korrekten Status an die Alexa App.
                  Wie viele Geräte hast du insgesamt?

                  Zitat von Zaschii Beitrag anzeigen
                  ist die aktuelle Version im DL-Bereich für Python 2.7 oder 3.6 gedacht?
                  Es sollten alle Python Versionen funktionieren.

                  Kommentar


                    Zitat von jonofe Beitrag anzeigen
                    Wie viele Geräte hast du insgesamt?
                    So um die 15. Also nix wildes eigentlich.
                    Wo kann ich denn am besten erkennen, ob der „proactive“ -Weg funktioniert? Das hab ich bisher noch nicht verifiziert...

                    Kommentar


                      Zitat von Dawaterman Beitrag anzeigen
                      Wo kann ich denn am besten erkennen, ob der „proactive“ -Weg funktioniert?
                      Man kann sich bei Amazon für erweiterte Debug Infos freischalten lassen, welche man dann im Alexa Portal sieht.
                      Dort kann man dann genau sehen, ob der Status Abruf funktioniert. Das Ganze sieht dann so im Portal aus:

                      alexa.PNG

                      Das DeepQuery=True zeigt dann an, dass der Status auf einem expliziten Abruf durch den Alexa Service beruht.

                      Der Zugang zu diesen Debug Infos ist hier beschrieben:
                      Ist schon ziemlich lange her, dass ich den Alexa Smart Home Live Debugger genutzt habe, aber grundsätzlich bekommt man damit eine ganz gute Transparenz über die Kommunikation.

                      Kommentar


                        Hi,

                        gibt es eigentlich eine Möglichkeit ein Smarthome Device mit Zeitwert zu schalten?



                        Würde gerne sowas sagen wie : "Alexa stelle Gerät X für/um X (Minuten) an"

                        Kann ich da irgendwas "missbrauchen"?

                        Würde gerne mit Alexa meine Haustürklingel für den Zeitfaktor X stumm schalten ;-)
                        Der zeitwert sollte individuell einstellbar sein.

                        Danke euch!
                        Jean-Luc Picard: "Things are only impossible until they are not."

                        Kommentar


                          Mit einem variablen Zeitwert geht sowas nur mit einem Custom Skill.

                          Ansonsten könntest du Versuchen dir ein Gerät mit dem Namen "10 Minuten Verzögerung der Haustürklingel" definieren und dann

                          "Alexa, schalte 10 Minuten Verzögerung der Haustürklingel ein."

                          Kommentar


                            Ich habe von Let's Encrypt eine Mail bekommen. Mein Zertifikat läuft in 20 Tagen ab.
                            Jetzt habe ich versucht, mein Zertifikat von Hand zu erneuern. das versuche ich mit folgendem Befehl:
                            $ sudo service apache2 start und dann:
                            /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
                            Dabei bekomme ich folgende Meldung: -bash: /var/log/le-renew.log: Permission denied.
                            Was mache ich falsch

                            Kommentar


                              du musst es als "root" machen

                              Kommentar


                                Was meinst du ? Ich dachte das ein Sudo vor dem Befehl reicht . Wie melde ich mich als root an ?

                                Kommentar

                                Lädt...
                                X