FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Carstenb am 01 Dezember 2016, 23:21:50

Titel: Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Carstenb am 01 Dezember 2016, 23:21:50
Hallo,
ich versuche mich gerade daran einen Notify zu erstellen der auf den FB_Callmonitor reagiert. Bei einem Anruf soll geprüft werden ob KODI etwas abspielt und dann auf Pause gedrückt werden und wenn der Anruf fertig ist soll wieder Play gedrückt werden.

define notKodi notify Anrufliste:event:.*{\
if (ReadingsVal("KODI", "playStatus", "") eq "playing"){\
if (ReadingsVal("Anrufliste", "event", "") eq "ring"){\
fhem("set KODI pause");;}\
if (ReadingsVal("Anrufliste", "event", "") eq "disconnect"{\
fhem("set KODI play");;}\
}\
fhem("set KODI pause")\
}
attr notKodi room Ereignisse


Kodi spielt aber bei einem Anruf einfach weiter, im Monitor sehe ich auch nichts vom Notify. Was hab ich vergessen? Kodi und Fritzbox status sind OK.

Danke für jeden Tip, bin ein Anfänger

lg
Carsten
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: viegener am 01 Dezember 2016, 23:29:32
Anrufliste:event:.*{

Ist da wirklich kein Leerzeichen zwischen .* und {, dann könnte das die Erklärung sein?
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Carstenb am 01 Dezember 2016, 23:33:59
Hallo,
Habs so oft geändert, da war in der Tat kein Leerzeichen mehr, aber das war leider nicht der Grund *snief*

lg
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: viegener am 01 Dezember 2016, 23:38:39
Ich würde Schritt für Schritt vorgehen:


define notKodi notify Anrufliste:event:.* { Debug "Hallo" }


Wenn das im Log File einen Eintrag erzeugt:


define notKodi notify Anrufliste:event:.* { Debug ReadingsVal("KODI", "playStatus", "") }


und so weiter, also erstmal den ersten if
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Carstenb am 01 Dezember 2016, 23:52:47
Danke schonmal für die Hilfe... Die beiden Debugs funktionieren allerdings ist der playStatus =playStatusDatumundUhrzeit ohne Leerzeichen, ist das evtl. das Problem? Gibts den Operator begins oder like?
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Carstenb am 01 Dezember 2016, 23:59:57
so Sieht das ganze aus:
2016.12.01 23:59:02 1 : DEBUG>playing2016-12-01 23:59:02 FB_CALLMONITOR Anrufliste event: ring
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: viegener am 02 Dezember 2016, 00:07:45
ja es gibt so etwas wie begins oder like, allerdings erfordert das einen regexp - regular expressions / reguläre ausdrücke - =~

in deinem Fall sollte etwas wie

if (ReadingsVal("KODI", "playStatus", "") =~ /playing/){

helfen (ungetestet)
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Carstenb am 02 Dezember 2016, 00:24:56
Supergenial. Zumindest macht er schon mal Pause
Anrufliste:event:.* {
if (ReadingsVal("KODI", "playStatus", "") =~ /playing/){
if (ReadingsVal("Anrufliste", "event", "") eq "ring"){
fhem("set KODI pause");}
}
}


Das wieder starten ist mir jedoch noch nicht gelungen...
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: uniqueck am 02 Dezember 2016, 00:39:40
Hierzu solltest du dir den Status beim Klingeln des Telefons deiner Anlage merken.
Also wird gerade ein Lied abgespielt, denn wenn sie nicht gerade läuft, dann brauchst du ja nach dem Auflegen auch nicht wieder auf resume schalten.

Hierzu einfach einen Dummy anlegen AVR.PlayStatus, diesen dann auf den entsprechenden Wert setzen. Sobald du dann ein disconnect beim Telefon bekommst, also aufgelegt wurde, hierfür entweder ein extra notify definieren, oder in diesem separat abhandeln, den Wert des Dummies abfragen und entsprechend dem Wert ein Resume oder halt auch nicht einleiten.

Gruß Constantin
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: TomLee am 02 Dezember 2016, 01:15:48
Hi,

es gibt für Kodi ein Addon mit dem Namen Fritzbox Callmonitor. Damit sollte doch dein Vorhaben elegant und ganz einfach realisiert werden können.

Grüße

Thomas
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Ellert am 02 Dezember 2016, 07:10:39
Alternativ mit geht`s mit DOIF  etwas simpler
FriBo = FB_CALLMONITOR
## 1
(([FriBo:event] eq "ring" or [FriBo:event] eq "connect") and [?FriBo:direction] eq "incoming")
   (set KODI pause)
## 2
DOELSEIF ([FriBo:event] eq "disconnect" and [?FriBo:direction] eq "incoming")
   (set KODI play)
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Carstenb am 02 Dezember 2016, 09:49:16
Vielen Danke für die wertvollen Tipps. Mit DoIf habe ich noch nicht gearbeitet, bin erst seit einer Woche dabei :-)
Schaue ich mir aber gleich heute Abend mal an....

Viele Grüße
Carsten
Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: uniqueck am 03 Dezember 2016, 14:38:26
Wobei hier nicht berücksichtigt wird, ob Kodi gerade läuft oder nicht, das heißt es würde danach dann spielen, obwohl es davor nicht lief.

Zitat von: Ellert am 02 Dezember 2016, 07:10:39
Alternativ mit geht`s mit DOIF  etwas simpler
FriBo = FB_CALLMONITOR
## 1
(([FriBo:event] eq "ring" or [FriBo:event] eq "connect") and [?FriBo:direction] eq "incoming")
   (set KODI pause)
## 2
DOELSEIF ([FriBo:event] eq "disconnect" and [?FriBo:direction] eq "incoming")
   (set KODI play)

Titel: Antw:Kodi pausieren wenn Fritzbox Anruf kommt
Beitrag von: Ellert am 03 Dezember 2016, 19:09:43
Zitat von: uniqueck am 03 Dezember 2016, 14:38:26
Wobei hier nicht berücksichtigt wird, ob Kodi gerade läuft oder nicht, das heißt es würde danach dann spielen, obwohl es davor nicht lief.
Ja, das habe ich vereinfacht gelöst, in der Praxis hatte ich noch keine unerwartete Abspielung, während Kodi pausierte, könnte jedoch passieren.