Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

  • Roho0303
    antwortet
    Ich komme hier nicht weiter. :-( Mir scheint es als ob ich ein Problem mit der Kommunikation zwischen Alexa App und smarthome habe.

    Also: Aus der AWS Lambda Heraus kann ich über einen Test Alexa ansprechen, das wird mir auch im Log des smarthome gezeigt. Somit stimmen die Ports, forwarding und nginx, da ich sonst kein Zugriff von AWS auf Alexa hätte.

    Was nicht funktioniert ist das ich in meinem Skill in der App die in smarthome parametrierten Geräte angezeigt bekomme.

    Folgende Punkte sind mir aufgefallen, die ich aber so nicht als ursächlich für mein Problem sehe (bitte korrigiert mich):
    - ich habe noch die sh Version 1.2 am laufen -> Da aber das Plugin ohne Fehler startet´gehe ich nciht davon aus das dies das Problem ist!?
    - ich habe gelesen das sich die Geräte mit denen Alexa kommuniziert im gleichen Wlan befinden müssen wie Alexa. Nun, mein Smarthome Server hat kein Wlan aktiviert und kmmuniziert über eth -> Das kann aber nicht das Problem sein oder?

    Hier nochmal meine Alexa conf. im sh:

    item:

    Code:
        [[[Tischleuchte]]]
    
                [[[[Ein]]]]
                type = bool
                alexa_device = eg_light_table
                alexa_name = "Esszimmer Tischleuchte"
                alexa_description = "Esszimmer Tischleuchte EG"
                alexa_actions = "turnOn turnOff"
                visu_acl = rw
                knx_dpt = 1
                knx_cache = 1/4/101
                knx_send = 1/1/101
                enforce_updates = true
    Plugin:

    Code:
    [alexa]
        class_name = Alexa
        class_path = plugins.alexa
        #service_host = 192.168.178.168
        #service_port = 9000
    log:

    Code:
    2017-03-28  09:48:29 INFO     Main         Init AVM Plugin
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action turnOn
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action turnOff
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action setTargetTemperature
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action incrementTargetTemperature
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action decrementTargetTemperature
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action setPercentage
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action incrementPercentage
    2017-03-28  09:48:29 DEBUG    Main         Alexa: initializing action decrementPercentage
    2017-03-28  09:48:29 INFO     Main         Alexa: service setup at 0.0.0.0:9000
    2017-03-28  09:48:29 INFO     Main         Init Items
    
    2017-03-28  09:48:34 DEBUG    Main         Alexa: EG.Esszimmer.Tischleuchte.Ein-actions = ['turnOn', 'turnOff']
    2017-03-28  09:48:34 DEBUG    Main         Alexa: EG.Esszimmer.Tischleuchte.Ein-device = eg_light_table
    2017-03-28  09:48:34 DEBUG    Main         Alexa: EG.Esszimmer.Tischleuchte.Ein-name = Esszimmer Tischleuchte
    2017-03-28  09:48:34 DEBUG    Main         Alexa: EG.Esszimmer.Tischleuchte.Ein-description = Esszimmer Tischleuchte EG
    2017-03-28  09:48:34 INFO     Main         Alexa: item EG.Esszimmer.Tischleuchte.Ein supports actions ['turnOn', 'turnOff'] as device eg_light_table
    
    2017-03-28  09:48:38 DEBUG    alexa        Alexa: validating device eg_light_table
    2017-03-28  09:48:38 INFO     alexa        Alexa: service starting
    Zuletzt geändert von Roho0303; 28.03.2017, 09:47.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    gut wäre, wenn es CURL tests gegen die schnittstelle gäbe.. dann kann man erst seine interne it und danach die amazon sachen testen

    Einen Kommentar schreiben:


  • Roho0303
    antwortet
    Sehr gut, das heist es hängt wo anders. Ich gehe das Amazon Zeug nochmal von vorne durch, nicht das da irgend ne EInstellung nicht passt. Wenn ich nicht weiter komme poste ich morgen nochmal mein Set-Up. Danke für eure Unterstützung....

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich kriege bei "TEST" übrigens auch einen 500er mit sowas:

    { "errorMessage": "RequestId: aec1f330-1310-11e7-9579-638e40c5fb97 Process exited before completing request" }

    Es geht aber trotzdem

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    Ich glaube ich muss mal ein sorgentelefon einrichten.... ist aber echt ein komplexes foo geworden.
    ​​​​​​
    muss mal schauen ob ich irgendwo http 500 schmeiße wenn der request kein alexa style ist.

    Bitte nginx conf, plugin conf, items conf und Fritz Port forwarding posten. Am besten gist.github.com, damit hier nicht alles zugemüllt wird

    Einen Kommentar schreiben:


  • Roho0303
    antwortet
    :-) Indem du dich auf der AWS Seite Anmeldest (https://eu-west-1.console.aws.amazon...on=eu-west-1#/) dort deinen SkillAdapter wählst und auf den Tst Button klickst...



    Unbenannt.JPG
    Angehängte Dateien

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Roho0303 wie mache ich einen test?

    Einen Kommentar schreiben:


  • Roho0303
    antwortet
    Hmm.. Das ändert erstmal nichts. Ich glaube es hängt noch irgendwo an der AWS Funbktion. @Psilo: Kannst du mal testen was die AWS Console rausschm,eist wenn du einen Test machst?

    Einen Kommentar schreiben:


  • psilo
    antwortet
    alexa_device habe ich bei mir nicht mal stehen?! ich nutze nur name und actions

    Einen Kommentar schreiben:


  • Roho0303
    antwortet
    Ok, noch ein Stück weiter.

    Ich sehe nun den Zugriff von AWS in meinem Smarthome Log:

    Code:
    2017-03-27  17:06:29 DEBUG    alexa        HTTP/1.0 POST //
    AWS bringt mir nach wie vor einen Fehler und ich finde in der App kein Gerät obwohl ich eines in der Item.cfg angelegt habe -> Ab hier noch jemand ne Idee??

    HTML-Code:
      START RequestId: 5b4a84df-12ff-11e7-848e-65d99a3511ec Version: $LATEST 2017-03-27T15:09:21.854Z	5b4a84df-12ff-11e7-848e-65d99a3511ec	requesting {"key3":"value3","key2":"value2","key1":"value1"} 2017-03-27T15:09:22.242Z	5b4a84df-12ff-11e7-848e-65d99a3511ec	HTTP 500 2017-03-27T15:09:22.245Z	5b4a84df-12ff-11e7-848e-65d99a3511ec	raw response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"         "http://www.w3.org/TR/html4/strict.dtd"> <html>     <head>         <meta http-equiv="Content-Type" content="text/html;charset=utf-8">         <title>Error response</title>     </head>     <body>         <h1>Error response</h1>         <p>Error code: 500</p>         <p>Message: Internal Server Error.</p>         <p>Error code explanation: 500 - 'header'.</p>     </body> </html>  2017-03-27T15:09:22.247Z	5b4a84df-12ff-11e7-848e-65d99a3511ec	SyntaxError: Unexpected token <     at Object.parse (native)     at IncomingMessage.<anonymous> (/var/task/index.js:39:24)     at emitNone (events.js:72:20)     at IncomingMessage.emit (events.js:166:7)     at endReadableNT (_stream_readable.js:905:12)     at nextTickCallbackWith2Args (node.js:437:9)     at process._tickDomainCallback (node.js:392:17) END RequestId: 5b4a84df-12ff-11e7-848e-65d99a3511ec REPORT RequestId: 5b4a84df-12ff-11e7-848e-65d99a3511ec	Duration: 533.36 ms	Billed Duration: 600 ms 	Memory Size: 512 MB	Max Memory Used: 17 MB	 RequestId: 5b4a84df-12ff-11e7-848e-65d99a3511ec Process exited before completing request

    Code:
        [[[Tischleuchte]]]
    
                [[[[Ein]]]]
                type = bool
                alexa_device = EG_EZ_Licht_Tisch
                alexa_name = "Esszimmer Tischleuchte"
                alexa_description = "Esszimmer Tischleuchte"
                alexa_actions = "turnOn turnOff"
                visu_acl = rw
                knx_dpt = 1
                knx_cache = 1/4/101
                knx_send = 1/1/101
                enforce_updates = true



    Im nginx acess.log steht dowas hier:
    Code:
    xxx.xxx.xxx.254 - alexa [27/Mar/2017:17:06:29 +0200] "POST /alexa/ HTTP/1.1" 500 438 "-" "-"

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Roho0303 ja korrekt... das nginx ist zudem der https endpunkt, sh kann ja nur http... ich nutze nginx bspw noch um für geofancy das network plugin zu erreichen.

    Einen Kommentar schreiben:


  • Roho0303
    antwortet
    Ok, das verstehe ich. Macht so auch Sinn. Nun ist es aber für den Moment so, das ich nxing nur für Alexa benötige und aus diesem Grund der Weg über den Forward.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    roho ja aber du solltest gegen NGINX routen, dort wird ja nur das durchgelassen, was durchgelassen werden soll.. nginx ist quasi dein filter für eingehende requests. ich habe das ding sogar auf einem eigenen raspi, um auch die hardware getrennt zu halten

    smarthome hängt dann am ende der kette und wird nur noch auf dem dedizierten alexa port getriggert.

    PS: ich glaube du meinst mit "SmartHome Server" nur die Maschine auf der NGINX läuft... NGINX sollte dann annehmen und auf den port von smarthome routen... für mich war "SmartHome Server" die Software SmartHomeNG, was sich ja wie ein server verhält.

    Einen Kommentar schreiben:


  • Roho0303
    antwortet
    Aber meine Fritze (Router) hängt doch vor meinem Smarthome Server und auf dem läuft NGINX. So gesehen geht das doch nicht anders... Nun kapier ich gar nix mehr..... Meine DNNS geht doch an meine Fritzbox und von dort aus je nach Portforward an die unterliegenden Geräte.
    Zuletzt geändert von Roho0303; 27.03.2017, 15:46.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hä? Im idealen Setting leitet die Fritzbox gar nichts an den SmartHome Server. Bei mir geht alles über 443 gegen NGINX und von dort dann gegen SmartHome... das ist ja auch der Sinn der Sache eines Basic Auth geschützten ReverseProxies

    Einen Kommentar schreiben:

Lädt...
X