Ankündigung

Einklappen
Keine Ankündigung bisher.

Rule bei Eingehendem Anruf?

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

    Rule bei Eingehendem Anruf?

    Hallo,

    ich habe soeben erfolgreich meine Fritzbox in Openhab eingebunden, eingehende Anrufe sowie die Rufnummer wird mir bereits angezeigt.
    Der nächste Schritt wäre nun das bei eingehendem Anruf mein HTPC(bzw XBMC) auf Pause schaltet. Den Befehl zu XBMC werde ich mit dem exec Binding senden, habe aber folgende Fragen:

    1.Habe mir die Demo Rules angeschaut, dort finde ich aber nur Bsp wie "when XY received command....then"
    Was ich bräuchte wäre aber "if command is ON then....."und "else do..."

    Hat jemand ein Bsp wo ich sehen kann wie das realisiert wird?
    Also auf Deutsch: "wenn Incoming_Call auf ON wechselt dann schalte auf Pause" bzw. "wenn Incoming_Call auf Off geht dann wieder Play"

    2.Ist jemand schon weitergekommen mit dem Speichern einer Anruferliste?

    #2
    Hi,
    hier mal meine Rule die bei Eingehendem Anruf ein Licht blinken lässt. Allerdings nur so lange bis man den Anruf angenommen hat:

    Code:
    rule Telefon_klingel_Lichtsignal
    	when 
    		Item PHONE_INCOMMING_CALL changed from OFF to ON // mein Fritzbox Item
    	then
    		logInfo("Phone_Call_Incomming", "Execute Incomming call Rule")
    		if (SD_AN_AUS_EG_ESSEN_SD1.state == ON)
    			{
    			while (PHONE_INCOMMING_CALL.state == ON){ // Führe folgendes solange aus wie es klingelt
    				sendCommand(SD_AN_AUS_EG_ESSEN_SD1, OFF)
    				createTimer(now.plusMillis(500))[|
    					sendCommand(SD_AN_AUS_EG_ESSEN_SD1, ON)
    				]
    				createTimer(now.plusMillis(500))[|
    				]
    			}
    		}
    		else {
    			while (PHONE_INCOMMING_CALL.state == ON){
    				sendCommand(SD_AN_AUS_EG_ESSEN_SD1, ON)
    				createTimer(now.plusMillis(500))[|
    					sendCommand(SD_AN_AUS_EG_ESSEN_SD1, OFF)
    				]
    				
    				createTimer(now.plusMillis(500))[|
    				]
    			}
    		}
    end
    Du brauchst die "while (PHONE_INCOMMING_CALL.state == ON)" Schleife nicht - da du ja auch während es Anrufes ruhe haben willst ;-)

    Deswegen kannst du den Switch auch nicht dazu benutzen um nach dem beenden des Anrufs XMBC wieder zum abspielen zu bewegen - der Switch zeigt dir nur an ob ein Anruf eingeht - nicht ob er noch verbunden ist.
    Das könntest du aber lösen in dem du Prüfst ob das Item PHONE_ACTIVE_CALL noch einen Wert enthält. Wenn dieses Item leer ist, ist auch nix verbunden :-)

    Also:

    Code:
    rule "Mute While Call"
       when
            Item PHONE_INCOMMING_CALL changed from OFF to ON
        then
            sendCommand(MUTE_XMBC, ON)
        end
    Nur noch das XMBC Item anlegen:

    Code:
    Switch   MUTE_XMBC "Mute XMBC on Call "   { exec="ON:/opt/openhab/etc/mute_xmbc.sh" } // oder wie auch immer du das gelöst hast
    Als Referenz noch meine FB Items:

    Code:
    Switch			PHONE_INCOMMING_CALL		"Es klingelt..."											(GRP_PHONE)		{ fritzbox="inbound" }
    Call			PHONE_ACTIVE_CALL			"Verbunden mit [%2$s]"					<phone>			(GRP_PHONE)		{ fritzbox="active"  }
    Call			PHONE_CALL_NUMBER			"Rufnummer [%2$s]"						<phone>			(GRP_PHONE)		{ fritzbox="inbound" }
    Gruß

    Kommentar


      #3
      Hallo,

      dank dir für die Hilfe, werde das heut Abend ausprobieren.

      Habe mittlerweile das XBMC Binding entdeckt, allerdings bekomme ich das nicht zum laufen, werde dazu mal ein neuen Thread erstellen...

      Kommentar

      Lädt...
      X