Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon-Echo Logikbaustein

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

  • Hightech
    antwortet
    Zitat von wernerL Beitrag anzeigen
    Das Aktivierungswort kannst du später beim Einrichten des Custom-Skill selbst festlegen.
    Genial!
    Hatte ich Dir schon mal gesagt, dass Du mein Held 2016 bist? Hast den Titel auch fast schon für 2017 sicher

    Ich muss da gerade an die Serie Eureka denken - das Haus heißt dort ja "Sarah" - ich durfte mir von meiner besseren Hälfte beim Schauen der Sendung immer anhören "Siehste, das kann unser Haus nicht!" - ich: "noch nicht!" - sie: "Na, wie soll denn unser Haus dann heißen?" Und jetzt ist es dank Deines unermüdlichen Einsatzes bald soweit: es geht an die Namenssuche

    [ironischer Machomodus] Ok, Außenstehende werden sich dann wohl, wenn die uns hören, fragen, warum wir uns noch weitere Frauen ins Haus holen, als ob die eigene nicht anstrengend genug wäre - "Alexa, frag Sarah mal nach der Raumtemperatur in der Küche" [\ironischer Machomodus]

    Und dann noch die Antworten entsprechend aufbauen "Sarah sagt, in der Küche sind es 25 Grad"

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Zitat von wernerL Beitrag anzeigen
    Wenn das Mapping "Fenster/Türstatus"=>Text konfigurierbar sein soll, wäre es den zumutbar, dass der Benutzer dies in der Lambda-Funktion machen muss?

    ...

    Das wäre aus meiner Sicht eigentlich die richtige Stelle, allerdings führt jeder kleine Tippfehler dazu, dass gar nichts mehr geht.
    Ich denke, da man das nur ein einziges Mal bei der Einrichtung tut, wäre das akzeptabel. Und beim Austausch der Ziffern einen Typo reinzuhauen, den man nicht mehr korrigiert bekommt - eher unwahrscheinlich!

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Du hast Recht. Ich lege das vorerst in der Lambda-Funktion über die Datenstruktur so fest. Dann kann man es sich immer noch aussuchen, ob man es bei Bedarf mit einer Minilogik im Homeserver oder über die Datenstruktur in der Lambda-Funktion anpasst.

    Das Aktivierungswort kannst du später beim Einrichten des Custom-Skill selbst festlegen.
    In der Lambda-Funktion stehen aktuell folgende Antwort Texte, welche man aber bei Bedarf noch selbst anpassen könnte:

    Code:
    var languageStrings = {
        "de-DE": {
            "translation": {
                // DISCOVERY
                "DISCOVERY_REQUEST_ERROR":"Bei der Gerätesuche ist ein Fehler aufgetreten.",
                "DISCOVERY_MESSAGE":"Die Gerätesuche wurde erfolgreich abgeschlossen. Es wurden %s Geräte gefunden.",
                "DISCOVERY_0_MESSAGE":"Es wurden keine Geräte gefunden.",
    
                // CONTROL - GET
                // Appliance
                // 3 Parameter
                "VALUE_MESSAGE":"Der %s-Wert im Raum '%s' beträgt %s.",
                "DOOR_WINDOW_STATE_MESSAGE":"Das Objekt '%s' im Raum '%s' ist %s.",
                "ONOFF_MESSAGE":"Das Gerät '%s' im Raum '%s' ist %s.",
                "PERCENT_MESSAGE":"Das Gerät '%s' im Raum '%s' steht auf %s Prozent.",
                "APPLIANCE_TEMPERATURE_MESSAGE":"Die %s-Temperatur im Raum '%s' beträgt %s Grad.",
    
                // 5 Parameter
                "DE_VALUE_MESSAGE":"%s %s %s %s hat den Wert %s.",
                "DE_DOOR_WINDOW_STATE_MESSAGE":"%s %s %s %s ist %s.",
                "DE_ONOFF_MESSAGE":"%s %s %s %s ist %s.",
                "DE_PERCENT_MESSAGE":"%s %s %s %s steht auf %s Prozent.",
                "DE_APPLIANCE_TEMPERATURE_MESSAGE":"%s %s %s %s hat eine Temperatur von %s Grad.",
    
                // Room
                // 2 Parameter
                "TARGET_TEMPERATURE_MESSAGE":"Die Solltemperatur im Raum '%s' beträgt %s Grad.",
                "ACTUAL_TEMPERATURE_MESSAGE":"Die aktuelle Temperatur im Raum '%s' beträgt %s Grad.",
                // 3 Parameter
                "DE_TARGET_TEMPERATURE_MESSAGE":"Die Solltemperatur %s %s beträgt %s Grad.",
                "DE_ACTUAL_TEMPERATURE_MESSAGE":"Die aktuelle Temperatur %s %s beträgt %s Grad.",
    
                "NO_APPLIANCES_ERROR":"Die Geräteliste ist leer. Bitte zuerst die Gerätesuche ausführen.",
    
                "ROOM_PARAM_ERROR":"Der für diese Anfrage benötigte Parameter Raumname fehlt.",
                "ROOM_NOT_FOUND_ERROR":"Ich konnte leider den Raum '%s' nicht finden.",
                "ROOM_REQUEST_ERROR":"Ich konnte leider die gewünschten Informationen zum Raum '%s' nicht ermitteln.",
    
                "APPLIANCE_PARAM_ERROR":"Die für diese Anfrage benötigten Parameter Raumname und/oder Gerätename fehlen.",
                "APPLIANCE_NOT_FOUND_ERROR":"Ich konnte leider das Gerät '%s' nicht finden.",
                "APPLIANCE_REQUEST_ERROR":"Ich konnte leider die gewünschten Informationen zum Gerät '%s' nicht ermitteln.",
                "APPLIANCE_IN_ROOM_NOT_FOUND_ERROR":"Ich konnte leider das Gerät '%s' im Raum '%s' nicht finden.",
                "APPLIANCE_IN_ROOM_REQUEST_ERROR":"Ich konnte leider die gewünschten Informationen zum Gerät '%s' im Raum '%s' nicht ermitteln.",
    
                // CONTROL - SET
                "OK":"Ok",
                "APPLIANCE_CONTROL_ERROR":"Der Befehl wurde leider vom Gerät '%s' im Raum '%s' nicht akzeptiert.",
                "APPLIANCE_COMMAND_ERROR":"Der Befehl wird leider vom Gerät nicht unterstützt.",
    
                //
                "SERVER_ERROR":"Beim Zugriff auf den Gira Homeserver ist leider ein Systemfehler aufgetreten.",
    
                // AMAZON
                "WELCOME_MESSAGE":"Hallo, welchen Wert vom Smart Home soll ich abfragen.",
                "HELP_MESSAGE":"Du kannst zum Beispiel fragen, „Ist das Licht in der Küche an?“ oder „Wie ist die Temperatur im Wohnzimmer?“ oder du kannst „Beenden“ sagen... Was soll ich abfragen?",
                "HELP_REPROMPT":"Welchen Wert vom Smart Home soll ich abfragen?",
                "STOP_MESSAGE":"Auf Wiedersehen!"
            }
        }
    }
    Gruß Werner

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Hi Olaf,

    erstmal danke für deine Ideen.
    Wenn das Mapping "Fenster/Türstatus"=>Text konfigurierbar sein soll, wäre es den zumutbar, dass der Benutzer dies in der Lambda-Funktion machen muss?

    Also z.B.:
    Code:
    var DE_DOOR_WINDOW_STATE = {
        "0":"geschlossen",
        "1":"gekippt",
        "2":"offen"
    }
    Das wäre aus meiner Sicht eigentlich die richtige Stelle, allerdings führt jeder kleine Tippfehler dazu, dass gar nichts mehr geht.

    Gruß Werner

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Noch ne Frage zu dem Aktivierungswort: Kann man das nicht flexibler halten oder zumindest was "natürlicher klingendes" als Smarthome nehmen? Mal ein paar - reines schnelles Brainstorming - Denkanstöße:
    • Alexa, frage mein Zuhause, .....
    • Alexa, frage das Haus...
    • Alexa, frage Deinen Bruder ;-)

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Noch ne andere Idee zu dem Fensterstatus: Du als Herr der Bausteins / Skills gibst das einfach vor, welche Ziffer für welchen der 3 Zustände steht - bei wem das nicht passt, der kann das ja ganz einfach im HS lösen mit einer Minilogik

    iko.fensterstatus.raum -> vergleicherbaustein -> setze iko.fensterstatus.raum.alexa auf Wert x

    Ist vielleicht das einfachste, oder?

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Zitat von wernerL Beitrag anzeigen
    [*]hier habe ich noch das Problem, welcher Wert welchen Zustand wiederspiegeln soll?. Bei meinen Türen/Fenster habe ich nur Reed-Kontakte und leider nur bei wenigen einen getrennten Reed Kontakt für gekippt und geöffnet. D.h. bei manchen Fenstern bedeutet 0=geschlossen und 1=gekippt oder geöffnet und bei manchen 0=geschlossen, 1=gekippt, 3=offen (also Bit 0=1 und Bit 1=1). Können wir uns hier auf ein Schema einigen?
    Das stimmt wohl - ich weiß gerade auch nicht, wie das bei den Fenstergriffen ist, die über Enocean die Position des Griffs zurückmelden - wie wäre es denn, dem Logikbaustein 3 Eingänge zu spendieren, wo man die Werte für auf, zu, gekippt per Initwert selbst eintragen kann? (weiß ja nicht, wie aufwändig das ist, also nur mal so ins Blaue gedacht) Klar, die Gefahr besteht dann, dass nach und nach weitere solcher Spezialfälle hinzukommen. Oder aber den Wert innerhalb der Konfiguration anpassbar machen?

    Grüße

    Olaf

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Danke schon mal für euren Input.
    Marcus, nachdem du dich ja wieder freiwillig gemeldet hast, würde ich dich auch gerne wieder als Betatester einsetzen .

    Olaf, der Smart-Home Skill bleibt weiterhin so erhalten - also kein Aktivierungswort für die Basisfunktionen.

    Bei dem Custom Skill gibt es zusätzlich zum Einzelkommando also z.B.: "Alexa, frage Smart Home ob das Licht im Büro eingeschaltet ist", die Möglichkeit mit dem Kommando "Alexa, starte Smart Home" eine Session zu starten. Hier kann man jetzt eine Reihe von Sprachkommando's absetzen ohne immer wieder das Aktivierungswort oder Alexa sagen zu müssen.

    Beispiel für eine Session:
    Kommando: "Alexa, starte Smart Home"
    Alexa: "Hallo welchen Wert vom Smart Home soll ich abfragen?"
    Kommando: "Ist das Licht im Büro eingeschaltet"
    Alexa: "Das Licht im Büro ist aus"
    Kommando: "Schalte das Licht im Büro ein"
    Alexa: "Ok"
    ...
    Kommando: "Beenden"
    Alexa: "Auf Wiedersehen"

    Um dies zu ermöglichen, müsste der Custom-Skill jedoch auch die Funktionalität vom Smart-Home Skill nachbilden. Sonst muss man zuerst mit dem Kommando "Beenden" den Custom Skill verlassen und im Anschluß mit dem Kommando "Alexa, schalte das Licht im Büro aus" arbeiten. Würde ich ganz gerne so hinkriegen.

    Zu deiner Liste der Vorschläge:
    • Ein/Aus sollte mit V0.3 funktionieren
    • hier habe ich noch das Problem, welcher Wert welchen Zustand wiederspiegeln soll?. Bei meinen Türen/Fenster habe ich nur Reed-Kontakte und leider nur bei wenigen einen getrennten Reed Kontakt für gekippt und geöffnet. D.h. bei manchen Fenstern bedeutet 0=geschlossen und 1=gekippt oder geöffnet und bei manchen 0=geschlossen, 1=gekippt, 3=offen (also Bit 0=1 und Bit 1=1). Können wir uns hier auf ein Schema einigen?
    • % Werte sollten mit V0.3 funktionieren
    • Abfrage der Raumtemperatur (Soll und Ist) sollte mit V0.3 funktionieren
    • Hier wird es kniffelig, zum einen weil die Formulierung der Antwort einigermassen zur Frage passen sollte, also auf die Frage "Wieviele ..." muss eigentlich eine andere Antwort formuliert werden als "Wie ist ..." bzw. "Welchen Wert hat ..."
      Zum anderen ist die JSON-Gerätekonfiguration aktuell sehr Raum bezogen. D.h. "draußen" müsste man irgendwie als Raum oder evtl. über einen Alias definieren. Ich muss mal testen welche Fragen hier noch möglich sind. Aktuell:
      Welchen Wert hat {Article} {Appliance} {Praeposition} {Room}? (z.B.: Welchen Wert hat der Kesseldruck im Pool?)
      Wie ist {Article} {Appliance} Wert {Praeposition} {Room}? (z.B.: Wie ist der ph Wert im Pool?)
      Wie hoch ist {Article} {Appliance} {Praeposition} {Room}?
      (Wie hoch ist der Redox Wert im Pool?)
    • bei diesem Punkt bin ich gerade am testen, ob man das irgendwie hinkriegen könnte. Auch hier gibt es jedoch das Problem, dass die Formulierung der Fragen sehr unterschiedlich sein können. Mein aktueller Ansatz wäre evtl. folgende Fragen zu ermöglichen:
      Wie ist der Status {Article} {Appliance} {Praeposition} {Room}?
      Gib mir einen Statusbericht {Praeposition} {Room}?
      Gib mir einen Statusbericht {Article} {Appliance}?

      Damit könnte man dann Fragen stellen wie z.B.:
      Wie ist der Status der Lichter/Türen/Fenster... im Haus?
      Gib mir einen Statusbericht vom Wohnzimmer/Pool/...
      Gib mir einen Statusbericht der Türen/...


    Gruß Werner

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Hallo Werner!

    Wie schon einige Vorredner fände ich es für die Aktionen, die der Smarthome Skill kann (schalten, Dimmen/Prozentwerte, Temperatur setzen) auch besser, wenn das weiterhin ohne Aktivierungswort funktioniert.

    Für die Ansagen, die Alexa liefern soll / Fragen, auf die Alexa antworten sollte, fällt mir folgendes ein:
    • ein/aus Zustand (muss ja nicht nur Licht sein)
    • Fenster: geschlossen, geöffnet, gekippt / auf Kipp
    • Rollladen- und Dimmerprozentwerte, auch nutzbar für Lautstärke etc. alles, was halt in % angegeben wird
    • Raumtemperatur - "wie ist die Temperatur im Raum xy"?
    • Absolute Zahlenwerte - "wie ist die Außenhelligkeit?", "wie hell ist es draußen?", "wie viele Alarmmeldungen gab es heute?"
    • 14 Byte-Texte vorlesen - "welche Musikquelle läuft gerade im Wohnzimmer?" - keine Ahnung, ob sowas überhaupt geht?

    Viele Grüße

    Olaf

    Einen Kommentar schreiben:


  • tunneltruppe
    antwortet
    [QUOTE=wernerL;n1038861]Ok, Ok ich bin ja schon still .

    Leider hatte ich die letzten 10 Tage keine Zeit an der V0.3 weiterzuarbeiten. Aktueller Stand ist, dass das was umgesetzt ist eigentlich ganz gut funktioniert, aber der Funktionsumfang aus meiner Sicht noch nicht rund und noch nicht allgemeintauglich genug ist. Die Problematik ist aber auch, nachdem mit dem Custom Skill doch relativ viel möglich ist - wann ist der Funktionsumfang abgeschlossen?

    Des Weiteren bin ich mir nicht sicher, ob mein damaliger erster doch recht generischer Entwurf der Sematik der JSON-Gerätekonfiguration wirklich auf Dauer tragfähig ist.
    Also falls jemand diesbezüglich Verbesserungsvorschläge hat, würde mir das auch weiterhelfen.

    Bzgl. der V0.3 mit zusätzlichem Custom Skill würde ich deshalb gerne noch Input von euch sammeln:

    1. Wer von euch hätte überhaupt Interesse daran? Denn zusätzlicher Custom Skill bedeutet auch zusätzlicher Konfigurationsaufwand auf AWS-Console und Amazon-Developer Konsole.

    2. Welche zusätzlichen Services (also Sprachkommando's und Alexa-Antworten) wären für euch wichtig?
    ...

    Moin Werner, (irgenwie errinnert mich das an was...)
    Spaß bei Seite, also ich würde den Aufwand wieder machen um alles neue von Dir abbilden/ steuern zu können.
    Ich lege mir eh ein Muster an, da kann ich immer recht schnell die Änderung/ Erweiterung mit einarbeiten!!
    Also, wie immer, wäre schön wenn Du 0.3 rausbringen könntest!!!
    Das bekommen einer Antwort vom HS eröffent ja ganz neue Projekte!!!
    DANKE DIR!!!
    Gurß Marcus

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Das zweite, also eine verbesserte V0.2 bei der man zusätzlich optional einen Custom-Skill anbinden könnte.

    Einen Kommentar schreiben:


  • joxn
    antwortet
    Hallo Werner,

    nur für mein Verständnis: ist Version 0.3 dann ein reiner Custom Skill oder wäre das dann quasi eine verbesserte 0.2 UND zusätzlich für alle die wollen die Möglichkeit ein Custom Skill zu nutzen? (Falls es nur ein Custom Skill sein sollte, wäre vielleicht ein andere Bezeichnung sinnvoll.)

    Ehrlicherweise finde ich die Funktionen, die Du beschreibst für 0.3 *interessant*, aber ich bin mir noch nicht sicher, ob ich sie so gut finde, dass ich dann immer den Skillnamen zur Aktivierung dazusagen wollte. Denn gerade die kurzen Ansprachen sind, aus meiner Sicht, notwendig, um alltagstauglich zu sein.

    Einen Kommentar schreiben:


  • rostkiel
    antwortet
    Hallo Werner,
    nachdem bei mir Alexa das tut, was ich ihr sage, wäre es tatsächlich schön, wenn sie auch ein paar Antworten geben könnte. Die von dir vorgeschlagene Funktionalität, Fensterzustand Auf/Zu, Lichtzustand An/Aus, Temperaturen halte ich für ausreichend. Den Ansatz, die Antworten im HS zu generieren, finde ich sehr gut, da möglicherweise flexibler.
    Also ich warte schon gespannt auf die Version 0.3....

    Grüße

    Robert

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Ok, Ok ich bin ja schon still .

    Leider hatte ich die letzten 10 Tage keine Zeit an der V0.3 weiterzuarbeiten. Aktueller Stand ist, dass das was umgesetzt ist eigentlich ganz gut funktioniert, aber der Funktionsumfang aus meiner Sicht noch nicht rund und noch nicht allgemeintauglich genug ist. Die Problematik ist aber auch, nachdem mit dem Custom Skill doch relativ viel möglich ist - wann ist der Funktionsumfang abgeschlossen?

    Des Weiteren bin ich mir nicht sicher, ob mein damaliger erster doch recht generischer Entwurf der Sematik der JSON-Gerätekonfiguration wirklich auf Dauer tragfähig ist.
    Also falls jemand diesbezüglich Verbesserungsvorschläge hat, würde mir das auch weiterhelfen.

    Bzgl. der V0.3 mit zusätzlichem Custom Skill würde ich deshalb gerne noch Input von euch sammeln:

    1. Wer von euch hätte überhaupt Interesse daran? Denn zusätzlicher Custom Skill bedeutet auch zusätzlicher Konfigurationsaufwand auf AWS-Console und Amazon-Developer Konsole.

    2. Welche zusätzlichen Services (also Sprachkommando's und Alexa-Antworten) wären für euch wichtig?

    Folgende implementierten Intent's sind kompatibel zur JSON-Gerätekonfiguration V0.2:
    Intent Beispiel JSON-Attribut
    GetOnOffValue Ist das Licht im Wintergarten eingeschaltet? onOff
    GetPercentValue Auf wieviel Prozent steht die Deckenleuchte im Wintergarten? percent
    GetTargetTemperature Wie ist die Solltemperatur im Wintergarten? targetTemperature

    Mit der JSON-Gerätekonfiguration V0.3 kämen nur für den Custom-Skill zusätzliche Attribut dazu:
    Intent Beispiel JSON-Attribut
    GetValue Wie ist der ph Wert im Pool? value
    GetActualTemperature Wie warm ist es im Wintergarten? actualTemperature
    GetApplianceTemperature Wie warm ist das Wasser im Pool? actualTemperature
    GetDoorWindowState Ist das Fenster im Wintergarten geschlossen?
    (aktuell bedeutet 0=geschlossen 1=offen)
    value
    Durch diesen generischen Ansatz würde Alexa aber auch Antworten auf seltsame Fragen geben. z.B.:
    Welchen Wert hat das Fenster im Wintergarten?
    Alexa: Das Fenster im Wintergarten hat den Wert 0.

    Mit welchen KNX-Werten sollte man die Tür/Fensterzustände: "abgeschlossen/geschlossen/gekippt/offen" abbilden?

    3. Wie wichtig wäre es für euch im Custom-Skill auch Schalten, Dimmen, Rollos steuern, usw. zu können?

    4. In der aktuellen Implementierung gibt es nur Services, bei denen der Homeserver einen "Wert" liefert, welcher in der Lambda-Funktion zu einer Antwort von Alexa zusammengesetzt wird. Ich bin am überlegen ob es Sinn machen könnte für manche Services den Homeserver die komplette Antwort liefern zu lassen?

    Viele Grüße
    Werner

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Zitat von wernerL Beitrag anzeigen
    Insgesamt ist die gesamte Einrichtung immer noch ein Graus und nur für Mutige und Masochisten zu empfehlen.
    Hey, Werner, nun mal nicht so bescheiden - dass die Einrichtung mit Amazon Developer und Lambda so tricky ist, nicht zuletzt weil die gegenseitig Werte benötigen, die erst im Laufe der Anlage vergeben werden, ist doch nicht Deine Baustelle....

    ...viel mehr muss ich sagen, dass es Dank Deiner wirklich detaillierten Anleitung trotz der Hürden, die Amazon aufgestellt hat, ziemlich simpel war - für wen das mit so einer guten Anleitung Masochismus ist, für den ist Blümchensex auch schon grenzwertig pervers ;-)

    Also von mir dicken Respekt für das, was Du da auf die Beine gestellt hast! Wenn jetzt noch der Custom Skill mit der Abfrage von Werten oder Meldungen kommt oder einfach Amazon den Smarthome Skill aufbohrt, dann muss ich sehen wo ich so spitze Öhrchen wie Spock bekomme, denn dann fühle ich mich genauso futuristisch

    Einen Kommentar schreiben:

Lädt...
X