Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

  • patrickgoll
    antwortet
    Ich habe ein Update gemacht von shng dann ging es aber noch. Dann hat meine Firewall das zeitliche gesegnet. Neue Hardware und neu aufgesetzt und dann neues let's Encrypt Zertifikat auf der Sophos utm im reverse proxy. Seither geht es nicht mehr.

    Einen Kommentar schreiben:


  • Salf
    antwortet
    @patrickg
    Hi, hast du etwas geändert? Bei mir war nginx das Hauptproblem. Jetzt läuft aber alles.

    Frohe Weihnachten

    Einen Kommentar schreiben:


  • Salf
    antwortet
    patrickgoll

    Hi, hast du etwas geändert? Bei mir kamen einige Fehler, es läuft aber jetzt einwandfrei.

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    Tja jetzt hat es wohl auch mich erwischt. Meine Alexa geht nicht mehr und ich hab keinen Schimmer warum. Ich bekomme dieselbe Meldung wie Salf #371
    Code:
      
     "errorMessage": "unable to verify the first certificate"
    Gibt es dafür schon Erkenntnisse was benötigt wird?
    Danke und Grüße und natürlich frohe Weihnachten.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    patrickgoll sind noch ein paar layoutfehler drin, auch habe ich im dev gerade korrigiert, dass man port 80 rausnimmt.. besser ist eine weiterleitung im nginx von http auf https. damit kann man dann ohne rumkonfigurieren die zertifikate nach 3 monaten erneuern

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    Danke psilo sehr geil wirklich!

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Also ich kann nur strikt davon abraten, den RasPi und das darauf laufenden SHNG offen ins Netz zu stellen... Selbst wenn das die einfachere Lösung ist...

    Meine NGINX Anleitung auch mit Alexa Bestandteilen ist übrigens jetzt unter http://smarthomeng.de/user/visualisi...rse_proxy.html abrufbar.
    Zuletzt geändert von psilo; 19.12.2017, 08:34.

    Einen Kommentar schreiben:


  • Salf
    antwortet
    Hallo schorge
    im Prinzip Ja, du musst dein raspberry öffentlich machen. Hier wird es mittels Nein gemacht, weil es recht einfach ist. Also erster Schritt ist gemacht, zweiter Schritt wäre nginx und dyndns oder sowas.

    Einen Kommentar schreiben:


  • schorge
    antwortet
    Ich hab nach langem nixverstehen endlich meinen Skill verknüft!

    WIe verbinde ich das ganze aber jetzt mit meinem SmarthomneNG.

    Also ich habe die aws_lambda.js in meine index.js kopiert und muss nun da die variablen ändern richtig? Ich steig in dem Teil einfach nicht dahinter,
    muss ich meinem Raspberry mit dem smarthomeNG öffentlich machen? Vielen Dank schon mal den helfenden !

    Code:
    /*
    You need to specify the following environmental variables in the lambda function:
    SMARTHOME_HOST
            foobar.dyndns.tld
    - SMARTHOME_PORT
            443 - endpoint must be https enabled!
    - SMARTHOME_PATH
            '/'
    - SMARTHOME_AUTH
            'user:password'
    */
    exports.handler = function(event, context, callback) {
        var data = JSON.stringify(event)
    
        var options = {
            hostname: 'http:\\mydyndns\ip',
            port: '443',
            path: '/',
            method: 'POST',
            auth: 'hansimgluck:12345',
            headers: {
                'Content-Type': 'application/json',
                'Content-Length': Buffer.byteLength(data)
            }
        };
    
        var https = require('https');
        var req = https.request(options, (res) => {
            console.log(`HTTP ${res.statusCode}`);
            res.setEncoding('utf8');
    
            var responseData = '';
            res.on('data', (dataChunk) => {
                responseData += dataChunk
            });
            res.on('end', () => {
                console.log('raw response:', responseData)
    
                var response = JSON.parse(responseData);
                if (res.statusCode == 200) {
                    console.info('OK', JSON.stringify(response))
                    callback(null, response);
                } else {
                    console.error('Failed', JSON.stringify(response))
                    callback('DependentServiceUnavailableError');
                }
            });
        });
        req.on('error', (e) => {
            console.error('request failed', e);
            callback(e);
        });
    
        console.log('requesting', data)
        req.write(data);
        req.end();
    }

    Einen Kommentar schreiben:


  • Salf
    antwortet
    Kann man sich die aktuelle Temperatur eines Raumes ausgeben lassen? Laut actions_temeprature.py ist diese funktion noch nicht implementiert oder übersehe ich etwas?

    Einen Kommentar schreiben:


  • Salf
    antwortet
    Wieder einen Schritt weiter. Keine Ahnung was ich gemacht habe, aber AWS bringt jetzt keine Fehlermeldung. Die App findet aber keine Geräte.

    Code:
     {   "payload": {     "discoveredAppliances": [       {         "actions": [           "turnOff",           "turnOn"         ],         "manufacturerName": "smarthomeNG.alexa",         "modelName": "smarthomeNG.alexa-device",         "isReachable": true,         "applianceId": "wohnzimmer-lampe",         "additionalApplianceDetails": {           "item1": "EG.Wohnzimmer.Licht"         },         "version": "1.3.0.9.0",         "friendlyDescription": "Wohnzimmer Lampe",         "friendlyName": "Wohnzimmer Lampe"       }     ]   },   "header": {     "namespace": "Alexa.ConnectedHome.Discovery",     "name": "DiscoverAppliancesResponse",     "payloadVersion": "2",     "messageId": "3e097bd79dfc44d2899d264690854138"   } }
    EDIT:

    Gelöst, geil, geil geil. Danke für eure Unterstützung.
    Die Lösung für dieses Problem war die Payload auf v2 zu ändern.
    Zuletzt geändert von Salf; 12.12.2017, 09:20.

    Einen Kommentar schreiben:


  • Salf
    antwortet
    Hallo malte ,

    danke für den Hinweis mit den SSL Zertifikaten. Ich hab nun ein wenig geforscht, wo den diese auf der NAS liegen und entsprechend ergänzt. Ich bekomme nun eine andere Fehlermeldung.

    Irgendwie stehe ich bei dem Thema noch etwas im Dunkeln. Hier mal die aktuelle Fehlermeldung.
    Code:
       
     {   "errorMessage": "RequestId: 6c1d05f3-dea9-11e7-b45f-7fcada1d5242 Process exited before completing request" }
    Code:
       
     START RequestId: 6c1d05f3-dea9-11e7-b45f-7fcada1d5242 Version: $LATEST 2017-12-11T19:28:10.328Z	6c1d05f3-dea9-11e7-b45f-7fcada1d5242	requesting {"header":{"payloadVersion":"2","namespace":"Alexa.ConnectedHome.Discovery","name":"DiscoverAppliancesRequest","messageId":"F8752B11-69BB-4246-B923-3BFB27C06C7D"},"payload":{"accessToken":"1"}} 2017-12-11T19:28:12.885Z	6c1d05f3-dea9-11e7-b45f-7fcada1d5242	HTTP 400 2017-12-11T19:28:12.908Z	6c1d05f3-dea9-11e7-b45f-7fcada1d5242	raw response: <html>  <head><title>400 Request Header Or Cookie Too Large</title></head>  <body bgcolor="white">  <center><h1>400 Bad Request</h1></center>  <center>Request Header Or Cookie Too Large</center>  <hr><center>nginx</center>  </body>  </html>   2017-12-11T19:28:12.909Z	6c1d05f3-dea9-11e7-b45f-7fcada1d5242	SyntaxError: Unexpected token <     at Object.parse (native)     at IncomingMessage.<anonymous> (/var/task/index.js:40: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: 6c1d05f3-dea9-11e7-b45f-7fcada1d5242 REPORT RequestId: 6c1d05f3-dea9-11e7-b45f-7fcada1d5242	Duration: 2631.27 ms	Billed Duration: 2700 ms 	Memory Size: 128 MB	Max Memory Used: 25 MB	 RequestId: 6c1d05f3-dea9-11e7-b45f-7fcada1d5242 Process exited before completing request
    Die Nginx Einstellungen legt Synology bei der Einrichtung über DSM automatisch in den Ordner "app.d". Der Nachteil ist aber, dass diese bei jedem Neustart überschrieben werden. Daher schreibe ich später noch ein autostart script. Welche Vorteile hat "/etc/nginx/sites-enabled/your-home"

    Einen Kommentar schreiben:


  • Polecat
    antwortet
    nach langem hin und her habe ich nun endlich alles mit nginx hinbekommen und Alexa scheint per AWS erreichbar zu sein.
    Per AWS Test bekomme ich mein Test Discovery Objekt zu sehen
    Code:
    {
      "header": {
        "payloadVersion": "3",
        "namespace": "Alexa.ConnectedHome.Discovery",
        "name": "DiscoverAppliancesRequest",
        "messageId": "F8752B11-69BB-4246-B923-3BFB27C06C7D"
      },
      "payload": {
        "accessToken": "1"
      }
    }

    Result:
    Code:
     {   "payload": {     "discoveredAppliances": [       {         "manufacturerName": "smarthomeNG.alexa",         "actions": [           "turnOn",           "turnOff"         ],         "friendlyDescription": "Arbeitzimmer Licht",         "isReachable": true,         "additionalApplianceDetails": {           "item1": "EG.Arbeiten.Licht"         },         "modelName": "smarthomeNG.alexa-device",         "version": "1.3.0.9.0",         "friendlyName": "Arbeitszimmer",         "applianceId": "ew_light_arbeitszimmer-alias1"       },       {         "manufacturerName": "smarthomeNG.alexa",         "actions": [           "turnOn",           "turnOff"         ],         "friendlyDescription": "Arbeitzimmer Licht",         "isReachable": true,         "additionalApplianceDetails": {           "item1": "EG.Arbeiten.Licht"         },         "modelName": "smarthomeNG.alexa-device",         "version": "1.3.0.9.0",         "friendlyName": "Licht",         "applianceId": "ew_light_arbeitszimmer"       }     ]   },   "header": {     "name": "DiscoverAppliancesResponse",     "namespace": "Alexa.ConnectedHome.Discovery",     "payloadVersion": "2",     "messageId": "f399992783dd409bac52c2b32d3c914d"   } }
    Nun frage ich mich wieso ich nix bei der Alexa app unter Gerätesuche sehe...

    Item.config in smartvisu
    Code:
    [EG]
        [[Arbeiten]]    
    
            [[[Licht]]]
                type = bool
                knx_dpt = 1
                knx_cache = 1/3/1     #    Status
                knx_send = 1/3/0    #     Schalten
                alexa_device = ew_light_arbeitszimmer
                alexa_name = "Licht"
                alexa_alias = "Arbeitszimmer"
                alexa_description = "Arbeitzimmer Licht"
                alexa_actions = "turnOn turnOff"
    Jemand ne idee.

    Besten Dank.

    EDIT: Gefunden. der Trigger muss ja noch aktiviert werden. Grrr
    Zuletzt geändert von Polecat; 11.12.2017, 19:31.

    Einen Kommentar schreiben:


  • malte
    antwortet
    Hallo Salf ,

    bist du dir sicher, dass du die richtige Config auf dem Synology bearbeitest? Ich habe meine Config für den nginx hier liegen: /etc/nginx/sites-enabled/your-home .

    Ansonsten sehe ich in deiner Config nicht wirklich, wo du denn die Zertifikate aufführst?! Das sollte ja eigentlich ungefähr so aussehen:
    Code:
     
     ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;     ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
    Beste Grüße,
    Malte

    Einen Kommentar schreiben:


  • Salf
    antwortet
    Kann mir bitte jemand helfen. Ich komme mit den Zertifikaten nicht weiter. Die Tipps von SvStefan (Seite 6) habe ich auch befolgt.

    Mein System: Synology NAS
    Da läuft Smartvisu und SmarthomeNG einwandfrei drauf.

    Meine aktuelle Lambda Fehlermeldung:

    Code:
     
     {   "errorMessage": "unable to verify the first certificate",   "errorType": "Error",   "stackTrace": [     "Error (native)",     "TLSSocket.<anonymous> (_tls_wrap.js:1016:38)",     "emitNone (events.js:67:13)",     "TLSSocket.emit (events.js:166:7)",     "TLSSocket._finishInit (_tls_wrap.js:585:8)"   ] }
    Meine NGINX Configuration (/etc/nginx/app.d/server.ReverseProxy.conf)
    Code:
      server {     listen 8090 ssl;     listen [::]:8090;      server_name XXX.SERVERNAME.XXX;      access_log /var/log/nginx/alexa.log combined;     error_log /var/log/nginx/alexa.err debug;     auth_basic "alexa";     auth_basic_user_file /etc/nginx/.htpasswd;      location / {         proxy_set_header        Host                $http_host;         proxy_set_header        X-Real-IP           $remote_addr;         proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;         proxy_set_header        X-Forwarded-Proto   $scheme;         proxy_intercept_errors  on;         proxy_http_version      1.1;          proxy_pass http://192.168.178.40:8090;      }  }

    Einen Kommentar schreiben:

Lädt...
X