Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Custom Skill für EDOMI (LBS 19000646 und 19000647)

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

  • shortyle
    antwortet
    Nun habe ich mich den ganzen Tag eingelesen, war mir auch ganz sicher das ich es hinbekomme, und schon auf Abends aufs Ausprobieren gefreut aber ich komm nicht wirklich weiter mit Raspbian Stretch scheint es wirklich etwas anders beim Zertifikat zu sein.

    Zuerst zur Hardware: RPi2 mit Raspbian Stretch lite 2017-09-07
    Die Installation lief problemlos durch.
    NO-IP als DDNS Dienst

    Zitat von fehling Beitrag anzeigen

    Allerdings hänge ich am nächsten Punkt beim SSL Zertifikat für den nginx:


    "Had a problem while installing Python packages.

    pip prints the following errors:..."
    Ich scheitere ebenfalls an dieser Stelle...
    allerdings komm ich auch mit dieser Vorgehensweise (https://certbot.eff.org/#debianstretch-nginx) nicht weiter.

    Nun zu den Problemen

    mit dem Befehl
    Code:
    sudo certbot certonly --webroot -w /etc/letsencrypt/live/<DYNDNS_NAME> -d <DYNDNS_NAME>
    arbeitet er etwas aber es erscheint folgende Fehlermeldung

    Code:
    Waiting for verification...
    
    Cleaning up challenges
    
    Failed authorization procedure. <DYNDNS_NAME> (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://<DYNDNS_NAME>/.well-known/acme-challenge/BUCHSTABENUNDZAHLENKOMBINATION: Error getting validation data
    
    
    
    
    [B]IMPORTANT NOTES:[/B]
    
     - The following errors were reported by the server:
    
       Domain: <DYNDNS_NAME>
       Type:   connection
       Detail: Fetching
       http://<DYNDNS_NAME>/.well-known/acme-challenge/BUCHSTABENUNDZAHLENKOMBINATION:
    
       Error getting validation data
    
       To fix these errors, please make sure that your domain name was
       entered correctly and the DNS A record(s) for that domain
       contain(s) the right IP address. Additionally, please check that
       your computer has a publicly routable IP address and that no
       firewalls are preventing the server from communicating with the
       client. If you're using the webroot plugin, you should also verify
       that you are serving files from the webroot path you provided.
    Zuletzt geändert von shortyle; 16.10.2017, 19:52.

    Einen Kommentar schreiben:


  • eriche
    antwortet
    da ich den Fehler nicht fand, legte ich das Skill komplett neu an und ließ es erneut von Amazon zertifizieren.
    Dannach klappte es.
    Ich schätze einmal, dass wir uns irgendwo vertippt haben?

    Einen Kommentar schreiben:


  • webasti321
    antwortet
    Hallo zusammen,

    ich habe auch nach langer Pause (Bauzeit) mich jetzt nochmals an Alexa gewagt.
    Den Custom-Skill habe ich schon am Laufen und funktioniert gut.

    Wollte jetzt den SH-Skill noch nachtragen, bis jetzt aber ohne Erfolg.
    Habe alles nach Anleitung erstellt und schon bestimmt zehn mal nach Fehlern durchsucht.
    Bei der Lambda-config bin ich mir absolut nicht sicher ob das alles passt, da die gesamte Oberfläche anders gestaltet wurde (als in der Anleitung) und ich auch kein .ZIP file im anhang des Receiver LBS finde. Habe den Code direct rein Kopiert. Beim Test der lambda bekomme ich immer den Fehler:
    "Unable to import module 'edomi-aws-lambda-skill-adapter". Allerdings ohne sauberes Test-Event da ich da schon wieder komplett aussteige.


    Unbenannt1.PNGUnbenannt4.PNGUnbenannt5.PNG
    Unbenannt2.PNG
    Unbenannt3.PNG




    im Edomi Log nur den Eintrag "No OAUTH Access Token received"

    phpinfo.php ist ereichbar.

    Wer kann mir Helfen?

    eriche Du hattest auch selben Fehler, aber nie gesagt was bei dir falsch war. Vielleicht hast du einen Hinweis für mich.

    gruß Basti

    Einen Kommentar schreiben:


  • fehling
    antwortet
    Die Meldung kam vom Reverse Proxy.

    War ein dämlicher Fehler von mir. Hatte in der SSL Konfiguration die IP des RPi und nicht vom Edomi-Rechner drin.
    War wohl zu spät gestern ;-)

    Jetzt läufts

    Danke nochmal & schönen Sonntag.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    haste die phpinfo.php auch erzeugt und auch im richtigen Verzeichnis?
    Von welchem Server kommt die 404 Meldung? vom Edomi oder vom Reverse Proxy?

    Einen Kommentar schreiben:


  • fehling
    antwortet
    Danke abermals.

    Das Vorgehen nach der Certbot-Anleitung und Webroot-Plugin hat dann funktioniert.

    Bin soweit gut durchgekommen, B-Rating, aber der Aufruf des Testskripts (https://<MeineDDNS.net-Domäne>/edomi/phpinfo.php) geht nicht und bringt "404 Not Found" :-(

    Gruß,
    Felix

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Könnte ein bug im letsencrypt sein. Welche Version verwendest du?

    Kannst mal folgendes machen:

    Code:
    Modify /etc/pip.conf and add the below line item
    
    extra-index-url=[URL="https://www.piwheels.hostedpi.com/simple/zope.components"]https://www.piwheels.hostedpi.com/si...ope.components[/URL]
    Vielleicht hilft das.

    Grundsätzlich solltest du bei Raspbian "stretch" so vorgehen:

    https://certbot.eff.org/#debianstretch-nginx

    Einen Kommentar schreiben:


  • fehling
    antwortet
    Danke Andre,

    beide Probleme beseitigt.

    Allerdings hänge ich am nächsten Punkt beim SSL Zertifikat für den nginx:


    "Had a problem while installing Python packages.

    pip prints the following errors:..."


    Die gesamten pip prints habe ich in einen Anhang gepackt.

    Bisher gab es hier nur einen andere Post, der an derselben Stelle Probleme hatte. Da war es zu wenig Speicher. Meine Fehlermeldung sieht aber anders aus.


    Jemand, v.a. Andre, ne Idee?

    Gruß,
    Felix


    Angehängte Dateien

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ich würde auf der Fritzbox unter Internet->Freigaben->Fritz!Box-Dienste den Zugriff von außen via HTTPS abschalten. Danach sollte Port 443 für die Weiterleitung
    verfügbar sein.

    Screenshot from 2017-10-06 17-12-16.png

    SSH? Auf dem RPI? Sollte eigentlich aktiv sein. Wenn nicht, dann über das Programm raspi-config aktivieren.

    5-Interfacing Options => P2 SSH

    Früher war es unter Advanced Options => SSH zu finden. Hängt also von deiner Raspbian Version ab.

    Einen Kommentar schreiben:


  • fehling
    antwortet
    Hallo,

    ich hätte eine Frage zum Pkt. 4 der Anleitung, der Port-Weiterleitung:

    Was sind meine Optionen, wenn der Port 443 von der Fritzbox selbst verwendet wird und daher nicht zur Weiterleitung an den RPI eingerichtet werden kann?

    Des Weiteren: Muss man SSH mittels der Konsole erst noch aktivieren? Putty kann sich bei mir nicht mit der angegebenen IP verbinden.

    Danke vorab für die Hilfe an einem ziemlichen Linux-Einsteiger.

    Gruß,
    Felix

    Einen Kommentar schreiben:


  • benji
    antwortet
    BTW:

    Sonos hat am Mittwoch eine Beta in Verbindung mit Alexa veröffentlicht. Die Sonos Lautsprecher lassen sich somit als Gerät in Alexa integrieren und mit Befehlen wie "Alexa spiele Musik im Wohnzimmer" gestartet werden.

    Gruß benji

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    ZIP-File zum LBS ist jetzt aktualisiert und sollte jetzt die alexa-config.php Datei enthalten.
    Danke woda für den Hinweis.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Okay, schau ich gleich mal nach und werde ein Update hochladen.
    Wer nicht warten möchte: Es muss seinfach nur das Array $echoIDs aus dem obigen Screenshot ergänzt werden.

    Einen Kommentar schreiben:


  • woda
    antwortet
    Hallo jonofe,
    im ZIP fehlt die zu aktualisierende alexa-config.php.

    Gruß
    Wolfgang

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    N'abend zusammen,

    Es gibt ein Update für den Alexa Receiver v0.7 und den Alexa Custom Command Validator 0.7.

    Neues Feature ist nun die Erkennung des Echo Devices, von dem ein Voice Befehl empfangen wurde.

    Damit ist es nun möglich mit demselben Befehl an unterschiedlichen Echo Devices unterschiedliche Befehle auszuführen:

    Bsp mit 3 Echos:
    1. Echo Dot im Büro
    2. Echo im Wohnzimmer
    3. Echo Dot im Schlafzimmer

    Mit dem Befehl "Alexa starte Edomi-Smarthome und schalte das Licht ein" kann man nun im Büro das Bürolicht, im Wohnzimmer das Wohnzimmerlicht und im Schlafzimmer das Schlafzimmerlicht einschalten. Edomi-Smarthome ist hier der Invocation Name meines Custom Skills.

    Diese neue Feature funktioniert nur mit dem Custom Skill und es sind folgende Dateien zu updaten (aus aktueller ZIP-Datei entnehmen):
    1. LBS 19000646 - Alexa Receiver v0.7 in EDOMI importieren
    2. /usr/local/edomi/www/admin/lbs/alexa/edomi-custom-skill.php
    3. /usr/local/edomi/www/admin/lbs/alexa/alexa-config.php
    4. LBS 19000647 - Alexa Custom Command Validator v0.7 in EDOMI importieren
    Wie muss nun die Erkennung des Devices konfiguriert werden?

    Beim Receiver zunächst darauf achten, dass sich die Ausgänge um 1 verschoben haben (E6 - Custom Echo ID ist neu). Hier müssen die Ausgänge, des Smarthome Skills angepasst.
    Meistens wird es vermutlich nur den Ausgang SH Event betreffen, der vorher A7 war und jetzt A8 ist. Die weiteren Ausgänge A9-A13 sind vermutlich nicht belegt, zumindest nicht, wenn man den Alexa Smarthome Command Validator LBS verwendet.

    Zusätzlich sollte man zu Debug Zwecken eine 16-fach Klemme einfügen und alle Ausgänge des Alexa Receivers damit verbinden. Insbesondere sollte der Ausgang A6 damit in der Liveansicht sichtbar gemacht werden.

    Wenn das gemacht ist, Projekt neu aktivieren.

    Dann nacheinander an jedem Echo Device einen normalen Sprachbefehl ausführen. Nach jedem Sprachbefehl in die Liveansicht des Alexa Receivers wechseln und die Custom Echo ID an A6 (beginnt mit amzn1.ask.device.######) in die Datei alexa-config.php kopieren und zwar in das Array $echoIDs (

    Screenshot from 2017-09-23 19-27-10.png
    Als Index kann man den Echos dann sprechende Namen geben, hier 'Wohnzimmer', 'Büro', 'Schlafzimmer'.
    Danach sollte dann die alexa-config.php mit alles Echos und den IDs bestückt sein und kann gespeichert werden.

    Jetzt kann der Alexa Custom Command Validator dazu verwendet werden, um die Echo ID auszuwerten. Dazu einfach an E10 den Namen des Echos angeben, für den der Befehl gelten soll. Ist E10 leer, funktioniert der LBS wie bisher ohne Echo ID Prüfung, d.h. es wird auf alles Echos gleich ausgewertet.

    Ist an E10 ein Wert vorhanden, dann ist die Validierung nur erfolgreich, wenn der Befehl genau von diesem Echo empfangen wurde. Es kann auch eine Komma-separierte von Echos angegeben werden.

    Die Umsetzung des o.g. Licht Befehls würde also so aussehen:

    Screenshot from 2017-09-23 19-30-28.png
    Der erste LBS triggert nur, wenn der Befehl über den Echo im Büro abgesetzt wird. Die Ausgangsbox schaltet entsprechend das Büro-Licht.
    Der zweite LBS triggert nur, wenn der Befehl über den Echo im Wohnzimmer abgesetzt wird. Die Ausgangsbox schaltet entsprechend das Wohnzimmer-Licht.
    Der dritte LBS triggert nur, wenn der Befehl über den Echo im Schlafzimmer abgesetzt wird. Die Ausgangsbox schaltet entsprechend das Schlafzimmer-Licht.

    Hoffe das dies verständlich war. Ansonsten Fragen gerne hier ...

    Vielleicht schon mal die Antwort auf die naheliegende Frage, ob das auch mit dem Smarthome Skill geht? Nein, das gibt die Amazon API derzeit nicht her.

    Viel Spaß damit...

    Einen Kommentar schreiben:

Lädt...
X