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

  • jonofe
    antwortet
    Noch als weiteren Hinweis:

    Man kann mit dem Skill-Skript alexa.php auch die empfangenen Befehle an mehrere EDOMI Instanzen verteilen:

    Dazu die $targets Definition am Beginn des alexa.php Files wie folgt anpassen:

    PHP-Code:
    $targets = array(
        array(
            
    'ip' => '192.168.1.111',
            
    'protocol' => 'tcp',
            
    'port' => 8000
        
    ),
        array(
            
    'ip' => '192.168.1.33',
            
    'protocol' => 'tcp',
            
    'port' => 8001
        
    )
    ); 
    IP und Port Werte entsprechend ändern.
    IP ist jeweils die IP eines EDOMI Servers und Port den konfigurierte Port des Alexa Receiver LBS.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von webasti321 Beitrag anzeigen
    Hi,
    bin hier auch am start. Alexa hört soweit gut. Schalten, Dimmen funktioniert.
    Woran ich momentan noch scheitere sind Scenen über den Command Validator auszuwerten.
    Scenenbefehl wird von Alexa empfangen und das Intent wird auch gesendet:

    {"group":"Szene","name":"fernsehen","value":"ferns ehen"}

    Allerdings bleibt der Ausgang am LBS immer leer.

    Habt ihr Scenen schon getestet? Funktioniert das bei euch?
    Du hast recht, da ist noch ein Bug in der Validierung von Group, Name, Location und Value.
    Update kommt ...

    Zitat von webasti321 Beitrag anzeigen
    jonofe Übringens, sehr tolle arbeit. Dein Howto ist super erklärt, so kann das jeder schaffen. Du schaffst es immer die richtigen LBS für mich zu erstellen. Onkyo, Telegram, Milight, Yeelight und jetzt Alexa. Danke dafür.
    Das freut mich zu hören

    Einen Kommentar schreiben:


  • webasti321
    antwortet
    Hi,
    bin hier auch am start. Alexa hört soweit gut. Schalten, Dimmen funktioniert.
    Woran ich momentan noch scheitere sind Scenen über den Command Validator auszuwerten.
    Scenenbefehl wird von Alexa empfangen und das Intent wird auch gesendet:

    {"group":"Szene","name":"fernsehen","value":"ferns ehen"}

    Allerdings bleibt der Ausgang am LBS immer leer.

    Habt ihr Scenen schon getestet? Funktioniert das bei euch?

    jonofe Übringens, sehr tolle arbeit. Dein Howto ist super erklärt, so kann das jeder schaffen. Du schaffst es immer die richtigen LBS für mich zu erstellen. Onkyo, Telegram, Milight, Yeelight und jetzt Alexa. Danke dafür.

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Kurzer Querverweis - ich denke es könnte einige interessieren:
    https://knx-user-forum.de/forum/proj...er-lautstärke

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    So, war mein Fehler, ich habe gleich die fünf Prozent-Schritte in alexa.php ergänzt und einmal statt => nur ein = stehen gehabt

    Fazit: deine Anleitung habe ich zwar nicht zu 100% nachvollzogen, weil ich schon vieles vorher fertig hatte, aber Fehler sind mir bisher keine aufgefallen. Gute Arbeit

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Das mit der Zertifikatserneuerung ist ein guter Hinweis. Das nehme ich noch in die Doku auf. Hatte es bei mir auch eingerichtet, nur vergessen es zu dokumentieren. Danke dafür

    Hast du mal das alexa.php von extern, d.h. aus dem Internet heraus aufgerufen?

    EDIT: mach zusätzlich mal auf dem EDOMI Server in einem Terminal

    Code:
    tail -f /usr/local/edomi/www/data/log/alexa.log
    Und dann die Ausgabe hier posten. Versuch zuerst mal mit "starte edomi" im Service Simulator.

    In der Alexa App hast den Skill aber aktiviert, oder?
    Und die ApplicationID haste auch im alexa.php eingetragen, oder?
    Zuletzt geändert von jonofe; 22.12.2016, 21:08.

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    jonofe vielen Dank für die super Anleitung!

    Ich habe die durchgearbeitet und hat auch soweit geklappt, nur die FritzBox hat ärger gemacht und wollte den Port 443 nicht weiterleiten, aber jetzt geht es. Ich habe auch einen Raspberry Pi 2 mit nginx am laufen. Das letsencrypt Zertifikat ließ sich nicht im standalone modus generieren, dass habe ich dann über webroot hinbekommen.

    Ergänzt habe ich noch die automatische Erneuerung des Zertifikats über einen cronjob (sudo crontab -e):
    Code:
    30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
    35 2 * * 1 /bin/systemctl reload nginx
    Aber der letzte Schritt der Anleitung (Service Simulator) funktioniert bei mir nicht, beim Test wird der Service Request generiert, aber alexa.php antwortet nicht (The remote endpoint could not be called, or the response it returned was invalid.)
    Wenn ich das alexa.php direkt im Browser aufrufe wird keine Ausgabe erzeugt (vermutlich i.O.), setze ich ein echo "Test"; in das PHP wird dieses ausgegeben, also das Skript läuft prinzipiell von extern. Das Zertifikat hat ein Rating von A+, sollte auch i.O. sein.
    Aber was könnte ich noch prüfen? Hat jemand eine Idee?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ein Update des Alexa Receivers ist jetzt verfügbar.

    Änderungen:

    - LBS Hilfe ergänzt
    - LBS lässt sich jetzt durch Senden einer 0 auf E1 stoppen

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von Teutone Beitrag anzeigen
    Moin jonofe , top Arbeit, allerdings habe ich bis jetzt die eine Anmeldung für den Echo dot. Bin aber froh das du das schon am laufen hast.
    Wahnsinn was hier passiert und was du für Arbeit da lässt, aber dir geht es wahrscheinlich wie vielen, es ist Hobby^^
    Ja, so ist es.

    Zitat von Teutone Beitrag anzeigen
    Eine Frage zum Invocation Name...Ist der Fix gesetzt oder kann ich den ersetzen durch einen eigenen Namen?
    Den Invocation Name kannst du wählen wie du willst. Der spielt für die weitere Implementierung und die Edomi LBS keine Rolle.
    Ist tatsächlich nur für die Invocation, dass Amazon deinen Sprachbefehl an den richtigen Skill weiterleitet.

    Einen Kommentar schreiben:


  • Teutone
    antwortet
    Moin jonofe , top Arbeit, allerdings habe ich bis jetzt die eine Anmeldung für den Echo dot. Bin aber froh das du das schon am laufen hast.
    Wahnsinn was hier passiert und was du für Arbeit da lässt, aber dir geht es wahrscheinlich wie vielen, es ist Hobby^^

    Eine Frage zum Invocation Name...Ist der Fix gesetzt oder kann ich den ersetzen durch einen eigenen Namen?

    Gruß

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von asto Beitrag anzeigen
    Ich hab ehrlich gesagt erst ab Kap. 9 richtig angefangen zu lesen. ReverseProxy und CustomSkill hatte ich durch meinen eigenen Proof of Concept schon fertig und musste echt nicht viel umstellen.
    Über die 10er Schritte beim Dimmen war ich auch kurz gestolpert, das Raster war aber für mich ok.
    Okay. Klingt gut.
    Das mit den Prozenten hatte ich zunächst mit einem vordefinierten Datentyp gemacht (AMAZON.Number), aber da ist die Erkennung im Moment sehr schlecht. Zu viele Zahlen, die sich ähnlich anhören. Es gab immer wieder Verwechslungen, insbesondere, 17 und 70 und 15 und 50, etc. Daher bin ich zu 10er schritten mit eigenem Custom Type. Da kann man auch noch problemlos die 5er Zwischenschritte ergänzen.

    Was echt schade ist, dass man in der Amazon Dev Console noch keine Skill Konfiguration als Ganzes, z.B. JSON File hochladen kann. das würde die Konfiguration extrem vereinfachen und die Doku um 50% reduzieren.

    Einen Kommentar schreiben:


  • asto
    antwortet
    Ich hab ehrlich gesagt erst ab Kap. 9 richtig angefangen zu lesen. ReverseProxy und CustomSkill hatte ich durch meinen eigenen Proof of Concept schon fertig und musste echt nicht viel umstellen.
    Über die 10er Schritte beim Dimmen war ich auch kurz gestolpert, das Raster war aber für mich ok.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von asto Beitrag anzeigen
    Kurze Rückmeldung: Schalten und Dimmen läuft schonmal perfekt!

    Vielleicht kannst du in der Doku zum LBS19000647 - Alexa Command Validator noch kurz schreiben, dass man mit |-getrennt mehrere Begriffe/Optionen in den Feldern E3, E4, E5 und E6 zur Validierung eintragen kann, damit der Befehl ausgeführt wird. Dieses Feature macht die Konfiguration zur Steuerung deutlich einfacher und sollte auch zu diesem frühen Stadium schon beschrieben werden.

    Ansonsten nochmal - vielen Dank! Ich bin begeistert!
    Ich hatte eigentlich erwartet, das niemand so schnell so weit kommt, nicht, weil ich es keinem zutraue, sondern weil ich Fehler/Lücken in meiner Doku vermutet hatte.

    Hast du es komplett mit Reverse Proxy umgesetzt? Ohne irgendwelche Lücken in der Doku?
    Aber cool, dass es auf Anhieb funktioniert hat. Wenn du weiteres Feedback hast, dann her damit.

    Ich werde kurzfristig die beiden LBS dokumentieren. Wollte es einfach schon mal vorab veröffentlichen, um euch die Chance zu geben schon mal damit zu starten. Dunhast es aber richtig erkannt, die Eingänge können mit den erwarteten Werten belegt werden. Mehrere Möglichkeiten werden mit | getrennt. Wenn der Value am Eingang frei bleibt, dann wird der Wert, der ankommt auf den Ausgang gegeben.
    Prozente werden in 10er Schritten unterstützt, d.h. 10, 20, 30,...,100. Am Value Ausgang kommt i.d.R. direkt ein Wert an, den man in Edomi weiter verwenden kann, d.h. kein 'ein', 'aus', 'an' sondern 0 und 1 bzw. kein "vierzig" sondern 40. Das macht auch das Skill Skript. Und es sendet per tcp socket an den Receiver LBS, so dass, das Skillskript auch ohne viel Aufwand für andere Logik Engines wie smarthome.py oder HS verwendet werden kann. Es muss lediglich ein Listener vorhanden sein, der die Nachrichten empfängt und dann zur Auswertung bereitstellt.

    Soweit für heute ... morgen mehr zur LBS Doku ....
    Zuletzt geändert von jonofe; 21.12.2016, 06:08.

    Einen Kommentar schreiben:


  • asto
    antwortet
    Kurze Rückmeldung: Schalten und Dimmen läuft schonmal perfekt!

    Vielleicht kannst du in der Doku zum LBS19000647 - Alexa Command Validator noch kurz schreiben, dass man mit |-getrennt mehrere Begriffe/Optionen in den Feldern E3, E4, E5 und E6 zur Validierung eintragen kann, damit der Befehl ausgeführt wird. Dieses Feature macht die Konfiguration zur Steuerung deutlich einfacher und sollte auch zu diesem frühen Stadium schon beschrieben werden.

    Ansonsten nochmal - vielen Dank! Ich bin begeistert!

    Einen Kommentar schreiben:


  • saegefisch
    antwortet
    Zitat von jonofe Beitrag anzeigen

    Ich habe das mal zum Anlass genommen und das HowTo um nginx zu erweitern. So kann jetzt jeder das nehmen, was ihm besser "gefällt".

    Wenn du also jetzt Kapitel 3,4,5,7 umsetzt, dann hast du einen nginx Reverse Proxy auf den EDOMI Server.

    Update des HowTo's ist im ersten Post zu finden.
    Danke André! Mit Michaels und Deinem Input wird's sogar für mich und mein "interessiertes Laientum" vermutlich möglich sein, den nginx als RevProxy sicher zum fliegen zu bringen. Aber ganz sicher nicht auf dem edomi-Server selber; er kommt auf die andere (ubuntu-)Kiste. Aber wie gesagt - in der Reihe steht es gerade nicht ganz vorne auf der Prio-Liste: x'max/Familie, Steuer, LAN-Party, Dias, nginx, visu,.... Geb dann aber auf jeden Fall Rückmeldung. Ihr seid beide wirklich Gold wert und bewundere Euer Können und tiefe Kenntnis. Jetzt aber Schluss mit meiner Lob-huddelei... ...zumindest für 2016

    Ich finde, dafür dürft Ihr Euch beide zum Fest noch was schönes gönnen. Einfach mal selbst beschenken! Da schauen die Partner immer so...ähm...lustig , wenn das fetteste Geschenk von einem selber kommt...
    Zuletzt geändert von saegefisch; 20.12.2016, 21:31.

    Einen Kommentar schreiben:

Lädt...
X