Amazon Echo Control Binding

  • btw....akustisches feedback bei licht an ist doch eigentlich überflüssig oder?würde da gleich ein sendcommand off hinschicken.

    Ja aber man weiß ja nicht, ob noch eine andere Person im Schlafzimmer ist, die dann im Dunkeln sitzt. :D

    Edit//
    Habs jetzt trotzdem mal implementiert. Folgende Sachen werden jetzt direkt ausgeschaltet: 2 Fernseher, 1 Pi, 1 Dartautomat, 4 Lampen, 1 Radio. ich bin gespannt wann der erste Gast sagt "Alexa, mach's gut". :D Ist aber halt echt blöd wenn man mit mehreren Personen das nutzt und keine Anwesenheitserkennung hat.

  • Ich hab jetzt folgendes Problem:
    Wenn der Dartautomat angeschaltet ist und ich über Alexa "Mach's gut" ausführe, geht alles aus bis auf das Licht. Problem ist, dass ich für den Dartautomat eine Rule habe, die gleichzeitig das Licht schaltet.

    Wenn der Dartautomat eingeschaltet wird, schaltet das Licht, sodass es optimal zum Spielen ist. Wenn der Dartautomat ausgeschaltet wird, dimmt das Licht aller Lampen auf 25% (Hue_FB_Dim.sendCommand(25)). Problem ist, dass das Licht über einen Zeitraum dimmt. Wenn ich direkt ein Ausschalten (Hue_FB_OnOff.sendCommand(OFF)) hinterher schicke, läuft der Dimmer trotzdem normal weiter und das Ausschalten wird ignoriert. Auch wenn ich ein Dimmen auf 0% (Hue_FB_Dim.sendCommand(0)) sende, hat das keine Wirkung.

    @horschte hast du oder jemand anderes vielleicht eine Idee? Einzige was mir einfällt wäre ein sleep bevor das Licht ausgeschaltet wird, das ist für mich aber nur eine Notlösung.

  • sleep sowieso nicht nutzen, wenn dann immer einen timer.

    Wenn ich direkt ein Ausschalten (Hue_FB_OnOff.sendCommand(OFF)) hinterher schicke, läuft der Dimmer trotzdem normal weiter und das Ausschalten wird ignoriert. Auch wenn ich ein Dimmen auf 0% (Hue_FB_Dim.sendCommand(0)) sende, hat das keine Wirkung.

    also ich hab auch hue im einsatz und off entspricht 0, die lampe müsste eigentlich aus gehen.
    zeig doch mal die rule und was dazu gehört

  • also ich hab auch hue im einsatz und off entspricht 0, die lampe müsste eigentlich aus gehen.

    Das ist mir schon klar. Es geht darum, dass das Dimmen ja nicht hart passiert sondern über Zeit. Wenn während dem Dimmen ein OFF gesendet wird, geht es nicht aus, sondern dimmt weiter.
    1. Machs gut: Licht wird auf 25% gedimmt (Darts-Rule).
    2. Machs gut: Licht wird ausgeschaltet (Darts-Rule triggert nicht, da Automat schon aus ist).

    zeig doch mal die rule und was dazu gehört

    Kann ich machen allerdings erst Donnerstag (vielleicht auch Mittwoch Abend), bin dann erst wieder Zuhause. Aber die relevanten Sachen sind eigentlich enthalten:
    Rule "Machs gut" ruft diese "Dartautomat-Ausschalten"-Rule auf, die das Licht dimmt (auf 25%). Während dem Dimmen wird dann über die "Machs gut" Rule das Ausschalten-Kommando für das Licht gesendet (während dem Zeitpunkt ist er mit Dimmen aber noch nicht fertig).

    Wenn du Zeit und Lust hast, kannst du mal folgendes testen. Diese Befehle direkt hintereinander senden und schauen was das Ergebnis ist:
    Hue_FB_Dim.sendCommand(25)
    Hue_FB_OnOff.sendCommand(OFF)

  • Also in der items file sthen hier 2 Commands dediziert für einen echo - wenn ich jetzt mehrere hab muss das so aussehen richtig ?:


    Code
    String Echo_Kitchen_LastVoiceCommand    "Letztes Sprachkommando"    (Amazon_Echos)    {channel="amazonechocontrol:echo:xxx:lastVoiceCommand"}
    String Echo_Kitchen_TTS                 "Sprachausgabe"             (Amazon_Echos)    {channel="amazonechocontrol:echo:xxx:textToSpeech"}
    String Echo_Bad_LastVoiceCommand    "Letztes Sprachkommando"    (Amazon_Echos)    {channel="amazonechocontrol:echo:xxx:lastVoiceCommand"}
    String Echo_Bad_TTS                 "Sprachausgabe"             (Amazon_Echos)    {channel="amazonechocontrol:echo:xxx:textToSpeech"}
    String Echo_WZ_LastVoiceCommand    "Letztes Sprachkommando"    (Amazon_Echos)    {channel="amazonechocontrol:echo:xxx:lastVoiceCommand"}
    String Echo_WZ_TTS                 "Sprachausgabe"             (Amazon_Echos)    {channel="amazonechocontrol:echo:xxx:textToSpeech"}

    wie sieht dann aber meine Rule aus ?

    Ich bräuchte ja bei "when" eine variable und nicht bei then ? Weil es geht ja darum variabel zu fragen und die die ich Frag soll Antworten oder versteh ich das wieder falsch? Weil in deinem Beispiel frägst du ja dediziert deine Echo Kitchen "Echo_Kitchen_LastVoiceCommand changed to "mach's gut"

    Support ME ! Buy me a Coffee :thumbup:


    Dont Touch ME

    LivingRoom: SilverStone Milo ML03 | Gigabyte B450 | Ryzen 3400G | 250GB NVME | 16GB DDR4-3200| Win10 64 bit | KODI 18 | Logitech Harmony Elite | SONOS Playbar + SUB
    BedRoom: PLAY:3
    Kitchen: PLAY:3
    BathRoom: Play:3

    Einmal editiert, zuletzt von xSaSx (26. März 2019 um 10:08)

  • Also in der items file sthen hier 2 Commands dediziert für einen echo - wenn ich jetzt mehrere hab muss das so aussehen richtig ?:

    nein.
    die channels aller geräte kannst du natürlich so einfügen....ABER:
    die gruppe (Amazon_Echos) darf nur bei den channels "lastVoiceCommand" vorhanden sein, weil du damit in der rule die letzte änderung abfragen möchtest.

    Ich bräuchte ja bei "when" eine variable und nicht bei then ? Weil es geht ja darum variabel zu fragen und die die ich Frag soll Antworten oder versteh ich das wieder falsch? Weil in deinem Beispiel frägst du ja dediziert deine Echo Kitchen "Echo_Kitchen_LastVoiceCommand changed to "mach's gut"

    du kannst "or" oder "member of" nutzen
    beispiel mit "or":

    Brainfuck
    rule "Alexa - Machs gut"
    when
        Item Echo_Kitchen_LastVoiceCommand changed to "mach's gut" or
        Item Echo_Wohnzimmer_LastVoiceCommand changed to "mach's gut" or
        Item Echo_Bad_LastVoiceCommand changed to "mach's gut" or
        Item Echo_Flur_LastVoiceCommand changed to "mach's gut"
    then
    ...................................

    beispiel mit "member of"

    Code
    rule "Alexa - Machs gut"
    when
        Member of Amazon_Echos changed to "mach's gut"
    then
    .............

    "member of" wäre die sauberere lösung, da du dort die gesamte gruppe abfragst und nicht einzelne items. daher oben auch der hinweis, dass nur die "lastVoiceCommand" channels in der gruppe "Amazon_Echos"sein sollen.
    das hält die rules schlank und übersichtlich.

  • Das ist es :) ! Perfekt ! Merci - ich kann weiter machen ;D

    Passt das dann so ?!


    Support ME ! Buy me a Coffee :thumbup:


    Dont Touch ME

    LivingRoom: SilverStone Milo ML03 | Gigabyte B450 | Ryzen 3400G | 250GB NVME | 16GB DDR4-3200| Win10 64 bit | KODI 18 | Logitech Harmony Elite | SONOS Playbar + SUB
    BedRoom: PLAY:3
    Kitchen: PLAY:3
    BathRoom: Play:3

    2 Mal editiert, zuletzt von xSaSx (26. März 2019 um 13:43)

  • Passt das dann so ?!

    fast...wenn du gruppen in items nutzt, dann musst du auch die gruppe dort anlegen...sprich folgenden eintrag noch mit in die items datei.
    Group Amazon_Echos (das gleiche gilt fü die gruppe fenster)

    die gruppe muss dann natürlich idealer weise auch in die persist datei mit rein, da du ja in der rule etwas abfragst was in der vergangenheit liegt (lastvoice channel von welcher alexa hat sich zuletzt geändert)

    Code
    Items {
           Amazon_Echos* : strategy =  restoreOnStartup, everyChange
    }


    die rule sieht soweit gut aus....lässt sich schwer erkennen hier im editor.
    anstatt "Keine Fenster sind offen" kann man auch nehmen "alle Fenster sind geschlossen" :thumbup:

  • Kann ich machen allerdings erst Donnerstag (vielleicht auch Mittwoch Abend), bin dann erst wieder Zuhause. Aber die relevanten Sachen sind eigentlich enthalten:
    Rule "Machs gut" ruft diese "Dartautomat-Ausschalten"-Rule auf, die das Licht dimmt (auf 25%). Während dem Dimmen wird dann über die "Machs gut" Rule das Ausschalten-Kommando für das Licht gesendet (während dem Zeitpunkt ist er mit Dimmen aber noch nicht fertig).

    aaah....jetzt verstehe ich. du nutzt kein dimm-kommando sondern hast da eine rule die langsam das licht runterregelt.
    dann würde ich einfach bei "alexa machs gut" wie bisher nen off befehl an alle lampen senden und in die gleiche rule nen timer mit laufzeit > dein dimmvorgang...der schaltet nach dem dimmen dann aus.
    es gibt sicher noch elegantere lösungen wenn man lange genug drüber grübelt...aber wegen 2 zeilen code für nen timer würde ich da keine kopfschmerzen haben.

  • aaah....jetzt verstehe ich. du nutzt kein dimm-kommando sondern hast da eine rule die langsam das licht runterregelt.

    Doch ich nutze schon das Dimm-Kommando innherhalb der anderen Rule. Allerdings dimmt die Hue nicht hart sondern halt über Zeit (kA wie lang genau) und währenddessen wird scheinbar ein weiterer, ankommender Befehl ignoriert oder intern übeschrieben (kA wie das genau auf der Bridge abläuft).


    dann würde ich einfach bei "alexa machs gut" wie bisher nen off befehl an alle lampen senden und in die gleiche rule nen timer mit laufzeit > dein dimmvorgang...der schaltet nach dem dimmen dann aus.
    es gibt sicher noch elegantere lösungen wenn man lange genug drüber grübelt...aber wegen 2 zeilen code für nen timer würde ich da keine kopfschmerzen haben.

    Hab ich mir auch gedacht. Allerdings gebe ich am Ende halt noch einen TTS-Befehl auf dem Echo-Dot aus. D.h. ich stehe vor dem Ding und warte bis es etwas sagt bevor ich dann das Haus verlasse. Dann zählt hier jede Sekunde :D

  • die gruppe muss dann natürlich idealer weise auch in die persist datei mit rein, da du ja in der rule etwas abfragst was in der vergangenheit liegt (lastvoice channel von welcher alexa hat sich zuletzt geändert)

    Was meinst du mit der Persist Datei ? ! Habe meine Gruppen bisher immer nur in den items Files angelegt

    Support ME ! Buy me a Coffee :thumbup:


    Dont Touch ME

    LivingRoom: SilverStone Milo ML03 | Gigabyte B450 | Ryzen 3400G | 250GB NVME | 16GB DDR4-3200| Win10 64 bit | KODI 18 | Logitech Harmony Elite | SONOS Playbar + SUB
    BedRoom: PLAY:3
    Kitchen: PLAY:3
    BathRoom: Play:3

  • Irgendwas klappt noch nicht:

    echofenster.rules

    rule "Alexa - Fenster offen"
    when
    Member of Amazon_Echos changed to "welche fenster sind offen"
    then
    val currentEcho = Amazon_Echos.members.sortBy[lastUpdate].last
    val OffeneFenster = Fenster.members.filter[ i | i.state == OPEN ].map[ label ].reduce[ s, label | s + ", " + label ]
    if(Fenster.state == OPEN) {
    currentEcho.sendCommand("Achtung, folgende Fenster sind geöffnet. " + OffeneFenster)
    }
    else {
    currentEcho.sendCommand("Keine Fenster sind offen")
    }
    end


    echo.persist

    Items {

    Amazon_Echos* : strategy = restoreOnStartup, everyChange
    }

    echocontrols.items

    Group Amazon_Echos "Amazon Echos"
    Group:Contact:OR(OPEN,CLOSED) Fenster "Fenster [MAP(max.map):%s]" <window>


    String Echo_Kitchen_LastVoiceCommand "Letztes Sprachkommando" (Amazon_Echos) {channel="amazonechocontrol:echo:xxx:lastVoiceCommand"}
    String Echo_Kitchen_TTS "Sprachausgabe" {channel="amazonechocontrol:echo:xxx:textToSpeech"}


    Wenn ich Alexa Frage dann kommt nur Ich habe kein Gerät Namens Fenster

    Support ME ! Buy me a Coffee :thumbup:


    Dont Touch ME

    LivingRoom: SilverStone Milo ML03 | Gigabyte B450 | Ryzen 3400G | 250GB NVME | 16GB DDR4-3200| Win10 64 bit | KODI 18 | Logitech Harmony Elite | SONOS Playbar + SUB
    BedRoom: PLAY:3
    Kitchen: PLAY:3
    BathRoom: Play:3

  • von OH ? Also weder in openhab.[definition='1','0']log[/definition] noch in events.[definition='1','0']log[/definition] steht irgendwas drin nach dem Fragen

    Support ME ! Buy me a Coffee :thumbup:


    Dont Touch ME

    LivingRoom: SilverStone Milo ML03 | Gigabyte B450 | Ryzen 3400G | 250GB NVME | 16GB DDR4-3200| Win10 64 bit | KODI 18 | Logitech Harmony Elite | SONOS Playbar + SUB
    BedRoom: PLAY:3
    Kitchen: PLAY:3
    BathRoom: Play:3

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!