Seite 1 von 1

Probleme mit einer Rule, Sprachsteuerung Alexa

Verfasst: 25. Apr 2020 18:59
von pimp1310
Hallo,

ich habe folgendes Problem, und zwar habe ich im Wohnzimmer einen Echo und eine Kodi Installation, diese Steuer ich per Alexa um mir Livetv Sender zu starten.

das ganze geht auch wunderbar, hier mal der code :

Code: Alles auswählen

rule "schalte auf RTL"
when Item rtl received command
then TV_Kanal.sendCommand("RTL DEUTSCHLAND HD")
end
das item

Code: Alles auswählen

Switch rtl "rtl" ["Lighting"] 

jetzt wollte ich das ganze so erweitern das mein Kodi in der Küche auch per Sprache die Livetv Sender startet, natürlich ist in der Küche auch eine eigene Alexa vorhanden, also die gleiche situation wie im Wohnzimmer. dafür habe ich mir eine rule geschrieben, bzw die alte oben erweitert.

Code: Alles auswählen

rule "schalte auf prosieben" 
when Item prosieben received command 
then
    val currentEcho1 = Amazon_Echos.members.sortBy[lastUpdate].last
    if (currentEcho1 == Alexaechodot1_lastvoicecommand)
        {   TV_Kanal.sendCommand("Pro7 Deutschland HD") }
    if (currentEcho1 == Alexaechodot2_lastvoicecommand)
        {   TV_Kanal_kueche.sendCommand("Pro7 Deutschland HD") }
end

die items dazu


Code: Alles auswählen

Switch prosieben "Prosieben deutschland" (livetvsender) ["Lighting"]

Code: Alles auswählen

String TV_Kanal_kueche "Kanal [%s]" { channel="kodi:kodi:a298e530-5c4a-f18a-1b6b-958af78700ea:pvr-open-tv"}

Code: Alles auswählen

String TV_Kanal "Kanal [%s]" { channel="kodi:kodi:f3e8b3c5-c76c-5411-9fb9-94bb8de0b33a:pvr-open-tv"}

und die Group

Code: Alles auswählen

Group Amazon_Echos "Amazon Echos"
Group Amazon_Echosspeech "Amazon Echos Speech"
Group:Contact:OR(OPEN,CLOSED) Fenster      "Fenster [MAP(fenstersensoren.map):%s]"         <window>
String      Alexaechodot1_lastvoicecommand              "letzer Sprachbefehl"     (Amazon_Echos)      { channel="amazonechocontrol:echo:3e611610:G090XG0793060A9N:lastVoiceCommand" }
String      Alexaechodot3_lastvoicecommand              "letzer Sprachbefehl"          (Amazon_Echos)   { channel="amazonechocontrol:echo:3e611610:G090XG0793351UHL:lastVoiceCommand" }
String      Alexaechodot2_lastvoicecommand              "letzer Sprachbefehl"         (Amazon_Echos)    { channel="amazonechocontrol:echo:3e611610:G6G0XG08943404N0:lastVoiceCommand" }


das Problem ist aber das er egal welchen der beiden echos anspreche und sage

Code: Alles auswählen

schalte Prosieben Deutschland ein
, er immer nur den Befehl an

Code: Alles auswählen

TV_Kanal_kueche
sendet. er nimmt also nie den oberen teil der Rule immer nur dass untere .

Also muss da irgendwo ein Fehler sein, ich finde ihn aber einfach nicht. oder gibt es einen anderen weg?
ich vermute das es mit der Sortierung zu tun hat wo ich entscheide welche alexa angesprochen wurde.

Hoffe das hier jemand eine idee dazu hat :?

Re: Probleme mit einer Rule, Sprachsteuerung Alexa

Verfasst: 28. Apr 2020 07:59
von ibot1989
Klingt sehr interessant die Idee.

Ich wusste bis zu deinem Post nicht, dass man die letzten Sprachbefehle auslesen kann pro Alex.

Nutz du das Alexa Control Binding? Welche Version?

Ich würde das dann bei mir mal versuchen einzurichten.

Gruß iBot

Re: Probleme mit einer Rule, Sprachsteuerung Alexa

Verfasst: 28. Apr 2020 17:21
von udo1toni
Vermutlich greifst Du auf den falschen Wert zu.

Ich gehe davon aus, dass Du wissen willst, von welchem Gerät der Befehl kam.

Code: Alles auswählen

rule "schalte auf prosieben" 
when Item prosieben received command 
then
    val currentEcho1 = Amazon_Echos.members.sortBy[lastUpdate].last.name
    if (currentEcho1 == "Alexaechodot1_lastvoicecommand")
        {   TV_Kanal.sendCommand("Pro7 Deutschland HD") }
    if (currentEcho1 == "Alexaechodot2_lastvoicecommand")
        {   TV_Kanal_kueche.sendCommand("Pro7 Deutschland HD") }
end
Wobei ich inständig hoffe, dass diese Rule nur als Beispiel zu verstehen ist. Oder hast Du für jeden wählbaren Kanal ein eigenes Item?