Ankündigung

Einklappen
Keine Ankündigung bisher.

Umfrage: Amazon Echo

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

  • patrickgoll
    antwortet
    Okay kann ich verstehen. Nein so intensiv habe ich den Fehler noch nicht debugged, kann ich aber gleich mal machen. Ich hatte das Gefühl, dass das bei mir schon krachte, als ich einfach beide Plugins in der plugin.conf aktiviert hatte und smarthome durchgestartet habe. Aber ich werde das reproduzieren.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    Code:
    Server: nginx
    Date: Sat, 03 Dec 2016 15:19:47 GMT
    Content-Type: application/json
    Content-Length: 942
    Connection: keep-alive
    
    {
      "payload": {
        "discoveredAppliances": [
          {
            "applianceId": "diningroom-lamp",
            "isReachable": true,
            "actions": [
              "turnOff",
              "turnOn"
            ],
            "version": "0.7.0",
            "additionalApplianceDetails": {
              "item2": "root.item_only_on",
              "item1": "root.item_only_off"
            },
            "friendlyName": "Diningroom Lamp",
            "friendlyDescription": "Diningroom Lamp",
            "manufacturerName": "smarthomeNG.alexa",
            "modelName": "smarthomeNG.alexa-device"
          },
          {
            "applianceId": "livingroom_lamps",
            "isReachable": true,
            "actions": [
              "turnOff",
              "turnOn"
            ],
            "version": "0.7.0",
            "additionalApplianceDetails": {
              "item2": "root.livingroom_lamps.main",
              "item1": "root.livingroom_lamps.couch"
            },
            "friendlyName": "Livingroom",
            "friendlyDescription": "Livingroom",
            "manufacturerName": "smarthomeNG.alexa",
            "modelName": "smarthomeNG.alexa-device"
          }
        ]
      },
      "header": {
        "payloadVersion": "2",
        "messageId": "93df4f8d0fb94d3bb1e5313879add892",
        "name": "DiscoverAppliancesResponse",
        "namespace": "Alexa.ConnectedHome.Discovery"
      }
    }

    Einen Kommentar schreiben:


  • psilo
    antwortet
    patrickgoll ich habe den ganzen amazon kram derzeit nicht am laufen und will das auch nicht. es muss euch doch möglich sein, mir zu sagen, wie ich die webschnittstelle lokal aufrufen kann? hast du mal getestet wann das backend bei dir kracht? erst wenn du items hast? erst wenn amazon antwortet? schwer euch zu helfen wenn ich es nicht reproduziert kriege.

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    psilo Vielleicht kann ich dir mit dem Request helfen. Ich habe sowohl das Plugin, als auch einen Echo Dot am laufen. Das heißt mein Service ist voll integriert. Außerdem habe ich das mit dem backend Plugin als erster bemerkt. Ich nutze es nämlich (würde es, wenn es mit alexa kompatibel wäre).

    Hast du den ganzen Thread schon gelesen? Ich habe ein paar mal beschrieben, welchen JSON Discovery man zum Beispiel gegen den Service feuert. Das kann man auch sehr gut aus der aws Konsole von Amazon machen.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    Code:
    POST / HTTP/1.1
    HOST: alexa.FOO
    content-type: application/json
    authorization: Basic FOO==
    content-length: 295
    
    {
        "header": {
            "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2",
            "name": "DiscoverAppliancesRequest",
            "namespace": "Alexa.ConnectedHome.Discovery",
            "payloadVersion": "2"
        },
        "payload": {
            "accessToken": "OAuthTokenFoo"
        }
    }

    Einen Kommentar schreiben:


  • psilo
    antwortet
    hotzen du musst garnichts analysieren, sag mir einfach wie ein standard request inkl http header + url aussieht

    PS: eine gewisse anspruchshaltung (requirements-files, version nach schema, etc). kommt daher, dass wir sonst in 1-2 jahren kunterbuntes chaos haben.. wir sollten die kernthemen schon stringent durchziehen. immerhin ists ja ein smartplugin und das logging ist auch ok. daher sorry wenn das feedback etwas arg meckernd rüberkommt.
    ich sehe das backend ähnlich wie das cli plugin als relativ kernnahen bestandteil. daher ist es mir wichtig. ich habe zudem sicher mehrere wochen zeit in das ding versenkt und werde sicherlich noch einige versenken.

    als Msinn angefangen hat mein enigma2 zu testen, gings mir erst genauso.. aber nur so ist das ding massentauglich geworden. nur für meinen use case hätte ich mir sicher 3 tage entwicklung sparen können
    Zuletzt geändert von psilo; 03.12.2016, 16:19.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    - klar maintaine ich das so wie ich zeit dafür finde
    - das plugin bietet einen json http service, das ist per definition ein webserver - ich kann nirgends erkennen, dass cherrypy als fett, bloatet, aufgeblasen oder sonstwas gilt
    - ich benutze nicht das backend plugin und werde deshalb auch nicht tief und aufwändig analysieren wo die incompat liegt
    - ich werfe nicht cherrypy besseren wissens über bord, nur weil es probleme mit einem anderen plugin gibt, das ebenfalls diese dependency nutzt
    - sofern wir SSL nachrüsten sollten für die reverse-proxy-verächter, ist cherrypy sowieso pflicht
    - apache statt nginx ist eine gute idee, es steht jedem frei das im open-source gedanken in einer apache.md o.ä. zu dokumentieren und beizusteuern

    ich werde mich natürlich bemühen den pull request sauber durchzubekommen aber ich werde hier auf keinen fall jeden feature-wunsch an dieses plugin erfüllen.
    mir ist es auch völlig schleierhaft woher diese anspruchshaltung kommt.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    hotzen das ist schön wenn sie für dich kein problem ist, beim akzeptieren von PRs denke ich normal aber nicht nur an mich
    ehrlich gesagt klingt der tonfall auch eher danach, dass du null lust darauf hast, das ding zu maintainen wenn es bei usern probleme gibt, so lange es bei dir geht.

    gibt mir einen CURL gegen dein Plugin und ich analysiere.. Aktuell kracht es nicht, ich habe aber auch keine Items usw.. nur Plugin "raw" eingebunden. mglw kracht es erst mit items oder wenn requests reinkommen

    einen kanal (und wenns auch nur per reverse proxy mit basic auth ist) auf zu machen, ist für mich auch immernoch der grosse knackpunkt.. dann versuche ich lieber weiter die google voice api auf meinem raspi anzubinden, auch wenn es weniger fancy ist als so einen lautsprecher in der kueche stehen zu haben. aber mal sehen, vielleicht überzeugt ihr mich ja doch noch.
    Zuletzt geändert von psilo; 03.12.2016, 16:05.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    und wenn noch mehr leute keinen reverse Proxy installieren wollen, wozu ich dringend rate, was sehr einfach ist und die Nutzung des Smarthomes echt schön&sicher macht - dann müssen wir ssl direkt im plugin Service unterstützen und spätestens dann ist cherrypy Pflicht weil selbst auf nem Socket aufsetzen ist harakiri.
    aldo weiterhin, ich sehe überhaupt gar keinen Grund cherrypy loszuwerden. Die sporadische? Kompatibilität zu backend-plugin ist für manche ein Problem, für mich nicht, aber bestimmt kein Grund deshalb DIE python dependency über Bord zu werfen. Die Leute mit dem Problem sollten vielmehr mal analysieren warum das kracht, damit man das sauber fixen kann

    Einen Kommentar schreiben:


  • psilo
    antwortet
    hotzen mir ist in dem setting nur nicht klar, warum du einen voll aufgeblasenen webserver brauchst. und wo ausser im backend (wo ein webserver irgendwo ja sinn macht) ist das noch dependency?
    für den reverse proxy fände ich eine anleitung via apache sinnvoller, da den wegen der smartvisu sowieso die meisten am laufen haben.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    Das ist nicht implementiert weil das plugin nicht als oauth Server funktioniert und auch überhaupt nicht notwendig ist. Wir machen ja keinen zentralen cloud Service für das knx user forum, sondern jeder konfiguriert sich das als eigenen Alexa skill. Damit ist die Authentifizierung per oauth reine pro forma, die einfach von Amazon erzwungen wird für das Standard setup: zentraler cloud service vom device Hersteller für alle device Kunden. Und nicht: je smarthome ein custom skill und custom "cloud" endpoint.

    ​​​​​

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    Und genau dafür ist der OAuth Token da. Dieser Mechanismus ist von Amazon so gewollt und implementiert. Deine App wird also mit einem OAuth Provider verknüpft und einmalig legitimiert. Danach kannst du den OAuth Token als "Hash" nehmen um zu verifizieren ob deine Anfrage wirklich von der richtigen Stelle kommt. Dieser Mechanismus ist nur im jetzigen Entwicklungsstand des Alexa Plugins nicht implementiert. Ansonsten sollte das kein Problem sein, was du da beschreibst.

    Einen Kommentar schreiben:


  • hotzen
    antwortet
    Also ich halte wenig davon den Weg cherrypy mit Gewalt rauszunehmen.
    -das ist der de facto Webserver unter python
    -die dependency haben mehrere plugins
    -Hand crafted http foo ist nie besser als das gepflegte framework

    ​​​​​​ich Weiss überhaupt nicht woher diese Abneigung stammt

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    beim Durchlesen der Readme bin ich natürlich auch über den Reverse-Proxy gestoßen. Dabei gefällt mir nicht, dass dies ein externes Programm übernehmen muss. Lässt sich das nicht vermeiden? Ich denke, das wird für Viele eine Hürde.

    Was ich hinsichtlich der Sicherheit nicht verstehe:
    Alexa und Sh.py sind im Heimnetz. Lediglich die Spracherkennung läuft extern. Warum kann Alexa nicht einen Hash o.ä. des Kommandos, welches an die Cloud geht an Sh.py senden. Da dies aus dem lokalen Netz kommt, kann dem getraut werden. Nur wenn jetzt ein Kommando von Amazon kommt, welches diesen Hash auch enthält, wird das Kommando ausgeführt.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    Ja fände ich auch super.

    Einen Kommentar schreiben:

Lädt...
X