TV Mute wenn Snips das Hotword erkennt

Begonnen von loriot, 27 Oktober 2019, 15:18:03

Vorheriges Thema - Nächstes Thema

loriot

Hallo an die FHEM Profis,

Update Ich habe es nun doch gerade ans Laufen gebracht. Somit keine Antworten mehr notwendig. Falls es Jemanden interessiert, hier einmal Problem und jetztige Lösung (vielleicht geht es ja auch noch besser)

Problem
Ich bin ein sehr großer Fan der Kombination aus FHEM und Snips, Danke hier vor allem an @Thyraz für das hervorragende Plugin.

Bei mir läuft aus Prinzip Snips supi mit FHEM, nur erkennt snips das Hotword gut, das Kommando aber sehr schlecht, wenn der Fernseher läuft. Daher möchte ich mein TV via FHEM auf Mute setzen, when Snips zuhört.
Dafür gibt es auch ein Reading im snips Modul / Objekt mit dem Namen "listening_<snips-device>". Der Wert ist hier sauber auf 0, wenn snips idle ist und 1 wenn snips auf ein Kommando wartet. Also Perfekt für meine Zwecke.

Mein Wunsch also: Wenn das Reading auf 1 wechselt mein TV mit der in FHEM integrierten Harmony Fernbedienung auf Mute setzen, und wenn das Signal wieder auf 0 schaltet, das Mute wieder aufheben.

Die Lösung
Ein Notify:
define WZ_SnipsMutesTV notify Snips.listening_raspi|Snips:listening_raspi:.* set <MUTE-Kommando> toggle


  • Snips ist der Name für mein Snips Objekt in FHEM
  • listening_raspi ist das Reading für das Snips Device (raspi der interne Name in Snips)
  • <MUTE-Kommando> ist das Kommando um in FHEM das TV als toggle zu muten/un-muten (bei mir via Harmony)

drhirn

Hehe, genau das hat mich letzte Woche auch beschäftigt. Wie ich festgestellt habe, ist das nur die halbe Lösung ;). Was, wenn nämlich MUTE schon absichtlich ein ist? Du müsstest also noch einen Filter einbauen.

loriot

Da hast Du recht @drhirn
In der Tat ist das der bisher einzige Wermuts-tropfen. Da Mute state-less ist kann man nicht explizit mute an oder aus machen. Trotzdem ist das Ganze bei mir nun schon sehr viel besser als bisher.