Alle Skripte die ich bisher gefunden habe konnte ich mir nicht so hinbauen, dass ich nur die Info habe, dass es klingelt bzw. ein Gespräch geführt wird.
Vielleicht kann mir hier jemand helfen ein passendes Skript zu bauen.
Ich möchte mir nur eine Variable einrichten, die auf True geht, wenn es klingelt und so lange auf True bleibt bis ich aufgelegt habe. Dann auf False umspringt.
Das sollte eigentlich mit der Fritzbox klappen.
Damit kann ich dann meinen Samsung TV auf Pause (Timeshift) oder meinen Radio pausieren lassen.
Hallo, ich habe das auch gemacht, dass die Musik leiser wird bei einem Anruf. Das habe ich mit dem Skript aus dem Beitrag 11 „Rufnummer suchen“ von Rainer gemacht. Vorteil, du brauchst kein Callmonitor!!
In den beiden Case „Ring“ und „Disconnect“ ergänzt du dann die Befehle fürs leiser stellen, bzw. wieder lauter. Ggf. die bisherige Lautstärke zuerst in eine Variable schreiben, dass nach dem Call wieder die bisherige Lautstärke eingestellt werden kann. Du brauchst nicht unbedingt eine Zwischenvariable true/false. Einfach direkt deine Befehle für Samsung eintragen…
Wenns nicht klappt melde dich noch mal.
Nebeneffekt du kanns dir gleich auch den eingehenden Call anzeigen lassen, ansonsten diese Teile aus dem Script löschen. Aber mich begeister es dass sogar Anruferdaten bei Klicktel geholt werden und echt häufig gefunden werden.
Viel Spaß und auch Danke an Rainer und die tollen sonstigen FritzBox Skripte
leider komme ich mit den ganzen Skripten nicht klar. Ich habe es hinbekommen, dass das Anrufjournal angezeigt wird, aber ich habe es nicht hinbekommen, dass mein TV bei eingehenden Ruf auf Pause geht.
Ich habe hier mal mein Script das den TV auf Pause stellt.
Vielleicht kann mir jemand hier etwas helfen, wie ich das hinbekomme.
Hi,
ich weis jetzt nicht welches Anrufjournal du meinst,vielleicht kannst dazu noch was sagen. Aber wenn du das mit dem Skript von Rainer gemacht hast, dann kannst ja in dem Case „RING“ ggf. dein fertiges Skript für die Pause einfach nur aufrufen.
Das machst du mit dem Befehl IPS_RunScript http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscript/
in dem moment wo der RING kommt, wird dann zusätzlich dein Skript gestartet.
Das Skript von Rainer könnte dann z.B. an dieser Stelle so aussehen: (Ich kann das nicht testen und deshalb gibts auch keine Garantie ob das klappt… lt. der Dokumentation sollten ja dann beide Skripte paralell laufen. )
switch($daten[1])
{
case "RING":
// *** hier kommt deine zusätzliche Zeile ***
IPS_RunScript(12345 /*[dein Skript für die Pause]*/); //hier die ID deines Skriptes für die Pause eintragen!
$Rufnummer = $daten[3];
if(in_array($Rufnummer, $array["Nummer"]))
{
$intern = array_search($Rufnummer, $array["Nummer"]);
SetValue(30996 /*[Fritzbox\Anrufe\Eingehender Anruf]*/, "am ".datetime. " von ".$array["Name"][$intern]);
SetValue(27227 /*[Fritzbox\Anrufe\Letzter Anruf]*/, "am ".datetime. " von ".$array["Name"][$intern]);
echo "Anruf am ".datetime. " von ".$array["Name"][$intern];
return;
}
else
{
$Rufnummer = SucheNummer($Rufnummer);
}
break;
Das Script von bruns wertet „nachträglich“ die Anrufliste aus. Es reagiert aber nicht auf eingehende Anrufe. Somit kannst du dein Pause-Kommando dort nicht sinnvoll einbauen.
Das ist so eine art beispielscript, damit kommst nicht weiter. Aber du bist schon näher drann. Gehst in dem Thread weiter nach unten zu nr. 11 „Rufnummern suchen“ und baust das mal ein wie ich es schon weiter oben geschrieben habe.
Auch wenn das etwas verwirrt, das script ist perfect für dein Vorhaben. Glaubs mir!!
Denn das script fängt in diesem Moment, wo ein Anruf kommt zu arbeiten und macht auch am ende wieder etwas. Mit einer kleinen Modifikation ist dein Vorhaben dann erledigt!!
Also schau dir das noch mal an und binde das ein. Wichtig mit Registervariable, Dummymodul, so dass es genau so wie in den beiden Screenshots aussieht, das bekommst bestimmt hin, Schritt für Schritt.
Wenn das dann läuft, wird die Variable eingehender Anruf geändert und du hättest dann sogar schon deine Variable die du willst!!! Und das dann die Nummer noch angezeigt wird ist doch ein schöner Nebeneffekt!!
Den Client Socket hatte ich bereits mit der Fritzbox schon angelegt.
Dann habe ich das Skript angelegt,
dann habe ich 3 Variable angelegt als ~Text Variable
Dann die ganzen IDs der Variablen und des Client Sokets im Skript abgehändert.
Folgenden Fehler erhalte ich:
Notice: Undefined variable: IPS_VALUE in C:\IP-Symcon\scripts\46495.ips.php on line 4
Notice: Undefined offset: 1 in C:\IP-Symcon\scripts\46495.ips.php on line 25
Ich weiss nicht was ich in Zeile 4 Eingeben muss.
Anbei noch einen Screenshot von IPS.
Achja, wo muss sich eigentlich die Benutzerdaten für die Fritzbox eingeben?
Hast du wenn du die Register Variable öffnest als Ziel Skript dein Skript ausgewählt und als übergordnete Instanz dein Client Socket der Fritz box ausgewählt?
Das bedeutet dann wenn die Fritz Box Daten eines Anrufes sendet empfängt das die Registervariable von dem Clientsocket und führt dann dein Skript automatisch aus!! Die Daten der Fritz Box werden in der Variable $IPS_VALUE an dein Skript übergeben und können entsprechend ausgewertet werden. Das macht dann dein Skript.
Da die Fehlermeldung kommt vermute ich du hast das Skript Manuell aufgerufen. Das geht nicht, dann hat das Skript ja die Daten nicht!! Deshalb klappt das ganze dann nur wenn auch wirklich ein Anruf kommt und das Skript dann automatisch startet!!
Also immer mit einem tatsächlichen Anruf testen was passiert!
Wenn du dann die Registervariable noch mal öffnest und auf den Reiter Debug gehst während ein Anruf reinkommt, müßtest du die Daten sehen die von der Fritz Box gesendet werden!
Das ist alles recht kompliziert, aber wenn man mal die Logik drin hat, ist das kein Problem mehr, das dauert immer lang am Anfang. Aber dann machts richtig Spaß… Ich hoffe jetzt ists ein bischen klarer.
langsam komme ich der Sache näher. Also in dem Log von der Register Variable ist was zu erkennen.
Nur in den Variablen Eingehender, Ausgehender und Letzter Anruf steht nix drin. Allerdings die Uhrzeit unter Aktualisiert hat sich geändert. Es steht nur noch bei Letzter Anruf N/A drin.
dann kommen wir der Sache jetzt tatsächlich näher. Die Variable eingehender und ausgehender Anruf ist nur gefüllt während der Aktuelle Anruf ausgeführt wird. Nach dem Beenden (also dem Disconnect Befehle siehe Register Variable, es wird dann das Case " Disconnect" ausgeführt) werden diese beiden Variablen geleert und es steht nur noch etwas in letzter Anruf drin vorausgesetzt die Nummer bzw. der Name wurde gefunden!!.
Also trage mal im Skript fast ganz oben in den Array Zeilen deine eingene Nummer und dein Name ein. Dann sollte dein Name beim Anruf kommen! Das ist sozusagen dein eigenes Telefonbuch wo du Namen hinterlegen kannst die angezeigt werden sollen.
Und da ja dann das Skript läuft, kannst jetzt im Skript direkt nach der Zeile: Case „RING“: deinen Aufruf für dein Pausenskript einfügen: IPS_RunScript(12345 /[dein Skript für die Pause]/);
Gib bescheid ob das soweit klappt.
Gruß Helmut
PS: noch mal zum Verständnis: das skript wird jedesmal wenn die Fritz Box daten an die RegisterVariable sendet ausgeführt. In deinem Log siehst ja was die Fritz Box sendet. Kommt der Befehl RING, dann wird nur das Case"RING" ausgeführt. Kommt der Befehl Disconnect… wird das Skript wieder ausgeführt aber nur das Case"Disconnect" abgearbeitet usw.
trotz eingeschaltetem CallMonitor kommt über den bisher tadellos funktionierenden ClientSocket an 192…1:1012 nichts mehr in der Registervariable an. Liegt das auch am neuen FritzOS 5.5?