Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
so bald jemand an der Tür klingelt, klingelt das angeschlossene Telefon 5 mal.
Besteht irgendwie die Möglichkeit das Telefon nur 1 mal klingeln zu lassen?
so bald jemand an der Tür klingelt, klingelt das angeschlossene Telefon 5 mal.
Besteht irgendwie die Möglichkeit das Telefon nur 1 mal klingeln zu lassen?
Danke & Gruß
Florian
Ich warte bei mir 3 Sekunden, setzte die Klingel GA zurück und leg dann auf, das sieht dann etwa so aus:
Ich hab das ganze bei mir folgendermaßen gelöst.
Das Plugin hört auf die Klingel GA und führt dann ein Skript aus, weil ich nicht wollte, dass das Plugin ein paar Sekunden blockiert.
Plugin:
Code:
# Definitionen
my $klingel_block_ga = "0/0/1";
my $klingel_ga = "0/1/1";
my $fritzscript = "/usr/local/bin/fbbell.pl &";
# Plugin an Gruppenadresse "anmelden"
$plugin_subscribe{$klingel_ga}{$plugname} = 1;
# Nicht zyklisch ausführen
$plugin_info{$plugname.'_cycle'} = 0;
# Nur bei einer gesendeten 1 reagieren
if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $klingel_ga) {
if ($msg{'value'} == "1" ) {
my $klingel_blocked = knx_read($klingel_block_ga,300,"1.001");
if ( $klingel_blocked == "0" ) {
my $pluginforkpid = fork();
if (!$pluginforkpid) {
exec $fritzscript;
# Leichen vermeiden:
return "klingel";
}
}
else {
return "blocked";
}
}
}
Skript:
Code:
#!/usr/bin/perl
#################################################
# Fritz!Box Bell
# This script will call a certain number,
# wait for a defined time and hangs up.
#
# Works only with Fritz OS >= 5.50
#
# (c) 2013 coolrunnings unter the GNU Public License
#################################################
use LWP;
use LWP::Simple;
use Digest::MD5 'md5_hex';
#################################################
# Variable Definition
my $sid = "";
my $user_agent = LWP::UserAgent->new;
my $fritz_ip = 'xxx';
my $fritz_user = "xxx";
my $fritz_pw = "xxx";
#my $call_from = '**51'; #50 ist die vordefinierte Rundruf-Nummer
my $call_to = '**610'; #beliebige Nummer, für intern ** vorwählen
my $pause = 8; # time in seconds between call and hangup
#################################################
# Application
################################################
# Get a valid session ID
&init_session;
my $response = $user_agent->post('http://'.$fritz_ip.'/cgi-bin/webcm',
[
'getpage' => '../html/login_sid.xml',
'sid' => $sid,
'telcfg:settings/UseClickToDial' => 1,
'telcfg:command/Dial' => $call_to,
],
);
sleep($pause);
$response = $user_agent->post('http://'.$fritz_ip.'/cgi-bin/webcm',
[
'getpage' => '../html/login_sid.xml',
'sid' => $sid,
'telcfg:settings/UseClickToDial' => 1,
'telcfg:command/Hangup' => $call_to,
],
);
#################################################
# SUBS
#################################################
# Init Session
# Original from Amaridian
sub init_session {
# Login-Challenge und evtl. vorhandene Session-ID holen
my $http_response = $user_agent->post('http://'.$fritz_ip.'/login_sid.lua',
[
'sid' => defined($plugin_info{$plugname.'_sid'}) ? $plugin_info{$plugname.'_sid'} : '0',
],
);
$http_response->content =~ /<SID>(\w+)<\/SID>\s*<Challenge>(\w+)<\/Challenge>/i and $sid = $1 and $challengeStr = $2;
# Wenn noch eine gültige Session da ist, nehmen wir die
if($sid eq '0000000000000000'){
# Challenge zusammen mit PW hashen laut http://www.avm.de/de/Extern/files/session_id/AVM_Technical_Note_-_Session_ID.pdf
my $ch_Pw = "$challengeStr-$fritz_pw";
$ch_Pw =~ s/(.)/$1 . chr(0)/eg;
my $md5 = lc(md5_hex($ch_Pw)); #warum auch immer AVM hier UTF16LE haben möchte...
my $challenge_response = "$challengeStr-$md5";
# Mit der frisch errechneten Challenge-Response die Session-ID abholen
$http_response = $user_agent->post('http://'.$fritz_ip.'/login_sid.lua?username='.$fritz_user.'&response='.$challenge_response,
[
'getpage' => '../html/de/menus/menu2.html',
],
);
$http_response->content =~ /<SID>(\w+)<\/SID>\s*<Challenge>(\w+)<\/Challenge>/i and $sid = $1 ;
$plugin_info{$plugname.'_sid'} = $sid;
}
}
Danke für die Unterstützung.
Habe gerade mal die Variante von coolrunnings versucht, jedoch scheitert es wohl an dem Script, welches nicht abgearbeitet wird.
So bekomme ich keine Rückmeldung in der Plugin Info:
Code:
if (!$pluginforkpid) {
exec $fritzscript;
# Leichen vermeiden:
return "klingel";
Setze ich das Return vor "exec..." dann schon.
Muss die Variable sid im Script noch angepasst werden?
Ich habe mit dem Dateimanager im webmin die fbbell.pl erzeugt und nachher mit Notepad bearbeitet. Rechte habe ich mal auf 777 gestellt.
Sonst habe ich wieder alles wie im ursprünglichen Plugin eingestellt, welches funktionierte.
Hast du mal probiert mit Putty dich auf das Wiregate zu verbinden und das Skript direkt auszuführen?
Anpassen im Skript musst du lediglich die folgenden Variablen:
Code:
my $fritz_ip = 'xxx';
my $fritz_user = "xxx";
my $fritz_pw = "xxx";
Direkt ausführen funktioniert und ich bekomme es mit 3 Sekunden hin, dass es nur zwei mal klingelt, super.
Übers Plugin (GA) funktioniert es noch nicht. Mir fällt ein, dass ich am Anfang auch mit dem Standard Plugin Probleme hatte, da ich die GA auch noch im Prowl-Plugin verwende. Könnte das ein Grund sein, wenn ich die GA in zwei Plugins verwende?
Puh, von Prowl hab ich keine Ahnung. Aber lässt sich ja relativ einfach testen indem du das andere Plugin kurz mal deaktivierst.
Passt denn auch der Pfad zur script Datei?
Anderer Vorschlag zum Testen wäre mal den Code aus dem Skript in das Plugin kopieren, also die exec Zeile quasi ersetzen.
Ich habe ein kurze Frage bevor ich beginne mich mal mit dem Plugin zu beschäftigen: welches ist denn nun eigentlich die aktuelle Version? Eine der hier im Thread veröffentlichen oder im SVN? Oder kommt das immer auf die FB-Version an? Ich habe eine 7240 mit FRITZ!OS 05.53 + Firmware-Version: 73.05.53.
Mit welcher Version sollte ich mein Glück versuchen?
Nachdem es ja groß in den Nachrichten war, werde ich wohl nicht der Einzige sein der das Sicherheitsupdate eingespielt hat.
Heute als Besuch kam hab ich festgestellt das die Klingel nicht mehr funktioniert, da kam mir das gestirge Update in den Sinn...
Noch jemand die selben Probleme und vielleicht sogar eine Lösung parat?
Hi,
also bei mir wurde am Montag auch das neuste Update von meinem Provider Zwangseingespielt und meine Klingel funktioniert ohne Probleme.
Ich habe mal das Plugin angefügt wie es bei mir läuft.
Code:
##################
# Fritz-Box GA-Wähler#
##################
# Wiregate-Plugin
# (c) 2012 Amaridian under the GNU Public License
# angepasst: KingOlli (KNX-User-Forum) am 02.05.2013
# funktioniert nur mit Fritz OS 5.50 oder höher
use LWP;
use Digest::MD5 'md5_hex';
#Cycle ist unerheblich
$plugin_info{$plugname.'_cycle'} = 86400;
# Definitionen
my $klingel_ga = "8/1/0";
my $fritz_ip = '10.10.1.254';
#Benutzer muss in der Web-Oberfläche der Fritzbox angelegt werden
my $fritz_user = 'DEINUSERNAME';
my $fritz_pw = 'DEINPASSWORD';
#abgehende Rufnummer, funktioniert bei mir aber (noch) nicht!!!
my $call_from = '**50';
#**9 für Rundruf oder **interne Nummer für Direktruf
#in der Fritbox kann dann für Intern ein anderer Klingelton
#gewählt werden
my $call_to = '**610';
#Gruppenadresse "abonnieren"
$plugin_subscribe{$klingel_ga}{$plugname} = 1;
# Nur bei einer gesendeten 1 reagieren
if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $klingel_ga) {
if (int($msg{'data'}) == 1 ) {
# Login-Challenge und evtl. vorhandene Session-ID holen
my $user_agent = LWP::UserAgent->new;
my $http_response = $user_agent->post('http://'.$fritz_ip.'/login_sid.lua',
[
'sid' => defined($plugin_info{$plugname.'_sid'}) ? $plugin_info{$plugname.'_sid'} : '0',
],
);
$http_response->content =~ /<SID>(\w+)<\/SID>\s*<Challenge>(\w+)<\/Challenge>/i and my $sid = $1 and my $challengeStr = $2;
# Wenn noch eine gültige Session da ist, nehmen wir die
if($sid eq '0000000000000000'){
# Challenge zusammen mit PW hashen laut http://www.avm.de/de/Extern/files/session_id/AVM_Technical_Note_-_Session_ID.pdf
my $ch_Pw = "$challengeStr-$fritz_pw";
$ch_Pw =~ s/(.)/$1 . chr(0)/eg;
my $md5 = lc(md5_hex($ch_Pw)); #warum auch immer AVM hier UTF16LE haben möchte...
my $challenge_response = "$challengeStr-$md5";
# Mit der frisch errechneten Challenge-Response die Session-ID abholen
$http_response = $user_agent->post('http://'.$fritz_ip.'/login_sid.lua?username='.$fritz_user.'&response='.$challenge_response,
[
'getpage' => '../html/de/menus/menu2.html',
],
);
$http_response->content =~ /<SID>(\w+)<\/SID>\s*<Challenge>(\w+)<\/Challenge>/i and $sid = $1 ;
}
# den gewünschten Wählbefehl absetzen
$http_response = $user_agent->post('http://'.$fritz_ip.'/cgi-bin/webcm',
[
'getpage' => '../html/login_sid.xml',
'sid' => $sid,
'telcfg:settings/UseClickToDial' => 1,
'telcfg:command/Dial' => $call_to,
'telcfg:settings/DialPort' => $call_from,
],
);
print "Klingel betätigt und Ruf abgesetzt"
}
}
hatte noch eine alte Version in der noch keine Benutzer sondern nur ein Passwort berücksichtigt war...
neuen Benutzer angelegt und aktuelles Script verwendet... schon gehts wieder...
Danke
PS: Welche Rechte müssen in der FritzBox mindestens gesetzt sein um? Habe nämlich einen seperaten Benutzer angelegt und würde nur die notwendigen Rechte vergeben...
PPS: Wollte ein sicheres Passwort verwenden, jedoch scheitert laut Fritz!Box-Log die Anmeldung am Kennwort... Welche Sonderzeichen erlaubt denn das Script bzw. welche machen hier Probleme? Die Box erlaubt laut FAQ folgende: _ - ! " # $ % & ' ( ) * + , . / : ; < = > ? @ [ \ ] ^ ` { | } ~
Edit: Sonderzeichen funktionieren alle, hatte nur die Option "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" nicht aktiviert...
cu Yfkt5A
DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin
Kann mir vielleicht jemand das akuelle Plugin für die FB7390 mit Softwareversion 6.03 posten?
Bekomme die Klingel mit keiner Version zum laufen, werder mit der SVN noch mit den geposteten Versionen(natürlich angepasst)
PS: Welche Rechte müssen in der FritzBox mindestens gesetzt sein um? Habe nämlich einen seperaten Benutzer angelegt und würde nur die notwendigen Rechte vergeben...
Was sind denn nun die notwendigen Rechte?
Edit:
Funktioniert die zuletzt gepostete Version des Plugins überhaupt noch wie angedacht, oder hat sich da mittlerweile von Firmwareseite etwas geändert?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar