FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: cornelius fillmore am 12 Juni 2013, 09:25:01

Titel: FritzBox als Klingel
Beitrag von: cornelius fillmore am 12 Juni 2013, 09:25:01
Hallo Forum,

ich würde gerne die FB als Klingel für die Waschmaschine nutzen.

Jetzt klappt das aber nicht mit dem FB_call.

Ich habe in 99.Utils folgendes hinzugefügt und reloaded:
Zitat#Klingel auf Fritzbox ******************
sub doFB_Call {
 my $ret = "ATD: " . `echo "ATD**123#" | nc 127.0.0.1 1011` ;
 sleep 20 ;
 my $ret = " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;
 $ret =~ s,[\r\n]*,,g;        # remove CR from return-string
 }
1;

und in der fhem.cfg dieses:
Zitat## Test ##
define test FS20 2c27 00
attr test room FS20
define test_notify notify test:on {\
{doFB_Call }\
}

Jetzt bekomme ich ständig im Log die Info:
Zitattest_notify return value: 7

Einer eine Idee was ich falsch mache.

Danke
Titel: Aw: FritzBox als Klingel
Beitrag von: cornelius fillmore am 13 Juni 2013, 16:42:00
Keiner eine Idee??

Ist eine FB 7330 mit Freetz.

Wählhilfe aus Firefox und Thunderbird funktioniert.


Aber ein command via shell kommt nicht an
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 13 Juni 2013, 17:42:03
Hallo cornelius fillmore,

ich habe das so gemacht:

99_myUtils.pm##############################################
#
package main;

use strict;
use warnings;
use POSIX;

sub
FBCall ($)
{
  my ($callnr) = @_;
  $callnr = "ATP3 ATDT".$callnr."#";
  my $ret = "ATD: " . `echo $callnr | nc 127.0.0.1 1011`;
  $ret =~ s,[\r\n]*,,g;
  InternalTimer(gettimeofday()+8, "FBHangOn", "", 0);
  return;
}

sub FBHangOn ()
{
  my $ret = " ATH0: " . `echo "ATH0" | nc 127.0.0.1 1011`;
  $ret =~ s,[\r\n]*,,g;
 return;
}
Mit der "8" in gettimeofday()+8 wird die Rufdauer eingestellt.

Und hier der Auszug aus der fhem.cfg############################################################################
#
# Klingel1
#
define Klingel1 FS20 7e7e 01
attr Klingel1 room MAX
define FileLog_Klingel1 FileLog ./log/Klingel1-%m.log Klingel1
attr FileLog_Klingel1 alias Klingel1
attr FileLog_Klingel1 logtype text
attr FileLog_Klingel1 room Diagramm.log
#
define Klingel1_on notify Klingel1:on {FBCall("**701")}
#
# Klingel
#
define Klingel FS20 7e7e 00
attr Klingel room MAX
define FileLog_Klingel FileLog ./log/Klingel-%m.log Klingel
attr FileLog_Klingel alias Klingel
attr FileLog_Klingel logtype text
attr FileLog_Klingel room Diagramm.log
#
#define Klingel_off notify Klingel:off {FBHangOn("0")}
#
Unter **701 ist in der FB die anzurufende Nummer abgelegt.

Ich habe beide Kanäle des FS20 KSE benutzt, weil sie halt da sind.

Hier (http://forum.fhem.de/index.php?topic=12959.0) wurde das Problem bereits diskutiert.

Vielleicht kannst Du ja damit etwas anfangen. Viele Grüße und viel Erfolg

Harald

Titel: Aw: FritzBox als Klingel
Beitrag von: cornelius fillmore am 13 Juni 2013, 19:00:15
Vielen Dank Harald.

Das funktioniert bei Dir?

Welche FB hast du denn und hast du auf ihr noch irgendwas spezielles freigegeben oder gemacht?

Ich habe es jetzt mal so eingegeben eine eigene KW definiert aber es funzt nicht.
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 13 Juni 2013, 23:32:45
Ich habe eine 7170 mit freetz 1.2 hinter einer 6360 (siehe auch meine Signatur). Freetz ist dazu aber nicht erforderlich. Auch habe ich nichts besonderes freigegeben und es funktioniert prima. Sieh Dir mal die Diskussion im verlinkten Treat an. Da sind einige Infos dazu drin.

Viele Grüße und viel Erfolg

HHarald
Titel: Aw: FritzBox als Klingel
Beitrag von: ThomasL am 14 Juni 2013, 10:58:56
Hallo zusammen,

ich verstehe da Skript nicht so ganz, bzw. hab ne Frage:

sub
FBCall ($)
{
  my ($callnr) = @_;
  $callnr = "ATP3 ATDT".$callnr."#";
  my $ret = "ATD: " . `echo $callnr | nc 127.0.0.1 1011`;
  $ret =~ s,[\r\n]*,,g;
  InternalTimer(gettimeofday()+8, "FBHangOn", "", 0);
  return;
}

Bei mir läuft FHEM auf einer extra Fritzbox hinter der "Hauptbox".
An der Hauptbox hängen die Telefone.
Gibt es da eine Möglichkeit, dass ich den Aufruf an die andere Box weiterleite?


Danke
Thomas
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 14 Juni 2013, 15:05:34
Hallo zusammen,

das hat jetzt (fast) nichts mit fhem zu aber hier die Erklärung, wie ich das gemacht habe.

FB1 (6360 IP .....01) hängt am UM-Netz, FB2 (7170 mit fester IP ....02) übers Heimnetz per Kabel an FB1. FB2 ist in FB1 als VoIP-Telefon (620) angemeldet. In FB2 ist FB1 als Sipserver (620) eingetragen. In FB1 ist die Sip-Nr. eines VoIP-Providers aktiviert. Alle Telefone, die klingeln sollen, sind an diese Sip-Nr. angebunden.
Im Telefonbuch der FB2 ist auf der Kurzwahl **701 diese Sip-Nr. eingetragen.

Wird die Klingel aktiviert, geht der Ruf über die Kurzwahl **701 an den Provider. Der leitet den Anruf zur Sip-Nr. und somit an die FB1. Hier reagieren (also klingeln) die an diese Sip-Nr. angebundenen Telefone. Da innerhalb des Netzes des VoIP-Providers die Telefonate kostenlos sind (jedenfalls bei meinem), kostet der Anruf der Klingel zur FB1 nichts.

Ich hoffe, das ich meine Lösung einigermaßen verständlich erklärt habe. Das hat auch schon früher ohne FHEM, also mit dem Druckerport prima geklappt.

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 17 Juni 2013, 08:54:45
Hallo zusammen,

habe nach Neuaufsetzen meiner FB das Problem gehabt, dass meine Klingelfunktion nicht klappte.

Ursache war, dass der in der FB befindliche Anrufmonitor nicht lief. Folgende Tastenfolgen sind am an die Box angeschlossen Analogtelefon (ob ISDN auch geht, weiß ich nicht) einzugeben:

#96*0*    WLan aus
#96*1*    WLan ein
#96*2*    NetCapi ein
#96*3*    NetCapi aus
#96*4*    Anrufmonitor aus
#96*5*    Anrufmonitor ein

#96*7*    Telnet ein
#96*8*    Telnet aus

Ich hoffe, das ich alle Befehle richtig beschrieben habe. Jetzt klingeln meine Telefone wieder so wie ich das will.

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 17 Juli 2013, 13:00:43
Hallo zusammen,

ich hatte immer wieder das Problem, dass nach dem Einrichten der Klingelfunktion und der Aktivierung das Callmonitors mittels Eingabe von #96*5* über das Telefon das einwandfrei funktionierte, aber nach einiger Zeit (oder Tagen) die Weiterleitung nur nach erneuter Aktivierung übers Telefon klappte. Ich habe gefunden, dass man die Aktivierung auch über die Kommandozeile (z.B. Telnet) mittels Eingabe von /usr/bin/ctlmgr_ctl w telcfg command/Dial '#96*5*' erreichen kann. Ich habe meinen diesbezüglichen Eintrag in der 99_myUtils.pm wie folgt geändert:
#
# Telefone der FB klingeln beim Betätigen der Türklingel
#
sub FBCall ($)
{
  qx(/usr/bin/ctlmgr_ctl w telcfg command/Dial '#96*5*');
 
  my ($callnr) = @_;
  $callnr = "ATP3 ATDT".$callnr."";
    my $ret = "ATDT: " . `echo $callnr | nc 127.0.0.1 1011`;
  $ret =~ s,[\r\n]*,,g;
  InternalTimer(gettimeofday()+8, "FBHangOn","0", 0);
}

sub FBHangOn ($)
{
  my $ret = "ATH0: " . `echo "ATH0" | nc 127.0.0.1 1011`;
  $ret =~ s,[\r\n]*,,g;
}
Damit ist das Problem (hoffentlich) gelöst.

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: blueberry63 am 18 Juli 2013, 16:32:59
Hallo,

bei mir läuft FHEM auf einem Raspberry PI. Funktioniert die Steuerung der FB auch von "remote"? Und was muß dazu auf der FB konfiguriert werden?

Blueberry63
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 19 Juli 2013, 14:18:58
Hallo blueberry63,

da kann ich Dir leider nicht weiter helfen, da fhem bei mir auf einem USB-Stick an der FB läuft. Wie das auf einem Raspberry zu lösen ist, weiß ich nicht. Tut mir leid :(

Übrigens klappt das mit dem "qx (/usr/bin/ctlmgr_ctl w telcfg command/Dial '#96*5*');" bei mir auch noch nicht richtig. Da muss auch noch einiges an Gehirnschmalz rein ;-)

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: blueberry63 am 21 Juli 2013, 21:44:07
Hallo,

kann mir mal jemand sagen, warum hier in den Scripten immer der Port 1011 für die Verbindung zur FB genommen wird? Meines Wissens ist der Standard-Port des Callmonitors doch 1012.
Oder habe ich etwas total falsch verstanden?

Und: gibt es eine Log-Datei für den Callmonitor auf der FB. Bei mir klingelt es nämlich nicht... ;-)

Gruß
Blueberry63
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 22 Juli 2013, 09:42:01
Hallo blueberry63,

sieh Dir das mal an, vllt. hilft Dir das weiter.

http://www.wehavemorefun.de/fritzbox/Port_1011 (//www.wehavemorefun.de/fritzbox/Port_1011)
http://www.wehavemorefun.de/fritzbox/Port_1012 (//www.wehavemorefun.de/fritzbox/Port_1012)

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: Ralph am 22 Juli 2013, 12:34:34
Sehr vereinfacht ist:
1011 zum draufschreiben und
1012 zum auslesen.
Titel: Aw: FritzBox als Klingel
Beitrag von: blueberry63 am 22 Juli 2013, 14:15:44
OK, das habe ich verstanden. Über das Modul FBCallmonitor und Port 1012 kann ich mit FHEMauf die FB zugreifen, aber auf Port 1011 tut sich bei mir nichts. Wie wird denn dieser Port aktiviert?
Blueberry63
Titel: Aw: FritzBox als Klingel
Beitrag von: Ralph am 22 Juli 2013, 14:36:56
Probiere doch mal unter Telnet auf deiner Fritzbox dies aus:

Lege eine Datei namens rundruf im Verzeichnis /var/flash/ an.

# Inhalt der Datei rundruf
#!/bin/sh
echo "ATP2 ATD**9" | nc 127.0.0.1 1011
sleep 15
echo "ATP2 ATH" | nc 127.0.0.1 1011
# End of file rundruf

Starte diese am Prompt # mit sh rundruf
Es sollte auf allen Telefonen ca. 15 Sekunden klingeln.
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 22 Juli 2013, 15:19:06
Hallo blueberry63,

wie der Callmonitor aktiviert wird und wie ich meine Klingel mittels 99_myUtils.pm realisierte, habe ich weiter oben beschrieben.

Das Problem war(hoffentlich), dass die Initialisierung des CallMonitors im Laufe der Zeit verloren ging, sodass das nach einiger Zeit nicht mehr funktionierte.

Deshalb habe ich in der fhem.cfg noch folgendes eingebaut,define CallMonAT at +*01:00:00 {CallMonOn();;} mit dem ich z.Z. noch experimentiere, welche Zeit ich verwenden muss. In der 99_myUtils.pm steht die zugehörige Subsub CallMonOn ()
{
qx (echo '#96*5*' | nc 127.0.0.1 1011);
}
Vllt genügt es ja, das nur 1x/Tag zu machen.

Vielleicht hilft Dir das weiter.

Viele Grüße

HArald
Titel: Aw: FritzBox als Klingel
Beitrag von: blueberry63 am 22 Juli 2013, 17:57:14
Hurra!

Zitatecho "ATP2 ATH" | nc 127.0.0.1 1011

funktioniert - wenn ich das so auf der FB absetze.

Schicke ich exakt denselben Befehl von meinem Raspberry PI ab, wobei ich natürlich die IP-Adresse der FB nehme, passiert nichts. Hat jemand dafür eine Erklärung?

Gruß
Blueberry63
Titel: Aw: FritzBox als Klingel
Beitrag von: blueberry63 am 22 Juli 2013, 23:22:22
Hallo,

ich habe noch eine interessante Lösung gefunden, um den Wähl-Befehl von "remote" (Raspberry PI) zur FB zu schicken, aber mangels Perl-Kenntnisse gebe ich nach 2 Stunden zuerst mal auf:

http://www.perlfect.com/articles/telnet.shtml (//www.perlfect.com/articles/telnet.shtml)

Dabei wird das Perl-Modul "Net::Telnet" benutzt. Folgende Sub-Routine habe ich in die 99_myUtils.pm eingebaut, aber ich bekomme beim Aufruf die Meldung "Undefined subroutine &main::FBCallr called at (eval 25) line 1.":

Zitatsub
FBCallr ()
{
 use Net::Telnet;
  $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
 $telnet->open('192.168.99.11');
 $telnet->waitfor('/password: $/i');
 $telnet->print('xxxxxxx');
 $telnet->waitfor('/\$ $/i');
 $telnet->print('echo ATP2 ATD**620 | nc 127.0.0.1 1011');
 $output = $telnet->waitfor('/\$ $/i'); print $output;
 $telnet->print('exit');
 InternalTimer(gettimeofday()+8, "FBHangOnr", "", 0);
 return;
}

Erklärung:
- "192.168.99.11" ist die IP meiner FB
- 620 ist die Kurzwahl zu meiner 2. FB (VOIP), an der das Telefon klingeln soll
- die Sub-Routine fürs Auflegen habe ich noch nicht eingebaut; wollte zuerst mal das Klingeln testen


Könnte mir jemand mittels Net::Telnet eine FHEM Subroutine basteln, die funktioniert? Kann man überhaupt dieses Telnet-Modul in FHEM verwenden?

Danke
Blueberry63
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 24 Juli 2013, 09:42:36
Hallo zusammen,

es scheint zu klappen! Seit 3 Tg. läuft meine Klingel, ohne dass ich (wie früher) den CallMonitor per Telefon aktivieren musste. Ich habe das so wie im Beitrag #86903 beschrieben gelöst. Lediglich define CallMonAT at +*01:00:00 {CallMonOn();;} habe ich zu define CallMonAT at *00:10:00 {CallMonOn();;}- also nur 1x täglich - geändert.

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: JoWiemann am 24 Juli 2013, 14:21:34
Hallo Blueberry63,

ich habe Deine Sub etwas ergänzt. Bei mir läuft Sie auf dem RPi nach dem ich mit:

sudo apt-get install libnet-telnet-perl

das fehlende Perl-Modul nachinstalliert habe.


sub
FBCallr($$$$$)
{
 use Net::Telnet;
 my $name = "FBCallr";
 my ($Fon,$CallNr,$Duration,$Port,$Password)= @_;
 my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
 Log GetLogLevel($name,4), "$name: Connecting to FritzBox:$Port...";
 $telnet->open($Port);
 $telnet->waitfor('/password: $/i');
 $telnet->print($Password);
 $telnet->waitfor('/# $/i');
 Log GetLogLevel($name,4), "$name: Dialing to FritzBox: from:$Fon to:$CallNr...";
 $telnet->print('echo "ATP'.$Fon.'2 ATD**'.$CallNr.'" | nc 127.0.0.1 1011');
 my $output = $telnet->waitfor('/# $/i'); print $output;
 Log GetLogLevel($name,4), "$name: Dialing:$Duration seconds...";
 sleep($Duration);
 Log GetLogLevel($name,4), "$name: HangOn to FritzBox...";
 $telnet->print('echo "ATH0" | nc 127.0.0.1 1011');
 my $output = $telnet->waitfor('/# $/i'); print $output;
 Log GetLogLevel($name,4), "$name: Disconnecting...";
 $telnet->print('exit');
 return;
}


Der Aufruf erfolgt mit:

FBCallr(Fon,Nummer,Zeit,IP,Passwort)

Fon = Anrufendes Telefon
Nummer = anzurufende Nummer
Zeit: Sekunden bis zum Auflegen
IP: IP der Fritzbox
Passwort: Passwort der Fritzbox

Beispiel:
FBCallr(1,610,10,"192.168.0.1","MyPssW")

Grüße Jörg
Titel: Aw: FritzBox als Klingel
Beitrag von: blueberry63 am 24 Juli 2013, 23:26:33
Hallo Jörg,

genial! So funktioniert es auch, wenn FHEM nicht direkt auf der FB installiert ist.

Die Übergabe-Parameter in Deinem Beispiel stimmen zwar nicht ganz, aber der Programm-Code ist voll in Ordnung. So hat es bei mir funktioniert:

Zitat{ FBCallr(1,620,6,'192.168.99.11');; }


Vielen Dank
Blueberry63
Titel: Aw: FritzBox als Klingel
Beitrag von: blueberry63 am 25 Juli 2013, 14:23:41
Hallo Jörg,

noch eine Frage: wie sollte denn das Logging funktionieren. Bei mir erscheint kein Eintrag in der fhem.log?!

Gruß
Blueberry63
Titel: Aw: FritzBox als Klingel
Beitrag von: JoWiemann am 25 Juli 2013, 17:25:00
Hallo Blueberry63,

habe den Loglevel auf 4 gesetzt, dass heist Du musst in der fhem.cfg verbose auf 4 (siehe auch command.ref) setzen.


attr global verbose 4


Wenn Du das ändern möchtest, dann bitte in den Zeilen mit

Log GetLogLevel($name,4),...

die 4 durch einen anderen Loglevel ersetzen.

Grüße Jörg
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 01 Oktober 2013, 16:23:28
Hallo Jörg,

vielleicht kannst Du mir einen Tipp geben. Bisher lief FHEM auf  einer 7170. Die Telefone sind an der 6360 angeschlossen. Die Telefone klingelten, wenn der Klingeltaster betätigt wurde.

Nun bin ich mit FHEM auf einen Raspberry umgezogen und möchte Dein Script (s.o.) verwenden. Leider klappt das bei mir nicht. Die Telefone klingeln nicht. Folgende Umgebung habe ich:

UM-Kabelnetz----FB6360-----FB7170-----Raspberry
.......................Telefone......Netzwerk.......FHEM

FHEM soll über Raspberry die FB7170 **701 anrufen, die eine SIP-Nr. xxxxx4677 anruft. In der FB6360 reagiern die Telefone auf den Internetanruf auf xxxx4677 und klingeln.

Die IP der FB7170 wird zwar geöffnet, aber der Ruf wird nicht übertragen. Im Logfile steht:2013.10.01 16:12:42 3: FS20 set Klingel1 on
2013.10.01 16:12:42 1: fbcallr: Connecting to FritzBox:192.168.0.2
2013.10.01 16:12:53 3: Klingel1_on return value: pattern match timed-out at ./FHEM/99_myUtils.pm line 64

Dort steht:
 63 $telnet->open($Port);
 64 $telnet->waitfor('/password: $/i');
 65 $telnet->print($Password);
 66 $telnet->waitfor('/# $/i');

Hast Du eine Idee, warum FHEM offensichtlich keine Antwort bekommt?

Der Aufruf in der FHEM.cfg lautet übrigens:  
define Klingel1_on notify Klingel1:on {FBCallr(3,"**701",5,"192.168.0.2","Password")}

Ich würde mich sehr freuen, wenn Du mir helfen könntest. Übrigens libnet-telnet-perl habe ich installiert.

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: bsl02 am 01 Oktober 2013, 21:13:00
>UM-Kabelnetz----FB6360-----FB7170-----Raspberry

Vorschlag bis es mit der großen Lösung klappt:
FHEM auf der FB7170 in einer Mini-Konfiguration weiterlaufen lassen nur für Türklingel auf Telefone, das klappte ja bisher. Das Haupt FHEM (RPi) bei Bedarf mit FHEM2FHEM mit der FB7170 verbinden.
Ähnlich habe ich es noch.

Gruß, Stefan
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 01 Oktober 2013, 22:33:40
Danke Stefan für die Anregung.

Das wäre eine Möglichkeit. Aber ich habe nur einen CUL, der am RPi angeschlossen ist. Ich muss mich mal mit FHEM2FHEM auseinander setzen. Vieleicht ist das ja ein Weg.
Eigentlich hatte ich gedacht, auf die 7170 verzichten zu können, aber auf die 6360 kann man ja nicht via Telnet o.ä. zugreifen :-((

Viele Grüße

Harald
Titel: Aw: FritzBox als Klingel
Beitrag von: Harald am 02 Oktober 2013, 12:53:06
Hallo Jörg,

vielleicht liest Du hier ja mit und kannst mit helfen.

Es scheint so, als ob diese Befehle nicht abgearbeitet werden. Bei $telnet->waitfor() kommt es zum Timeout.

$telnet->open($Port);
$telnet->waitfor('/password: $/i');
$telnet->print($Password);

Was muss ich ändern, damit es klappt?

Viele Grüße

Harald

Nachtrag: Ich hab's geschafft! :-) Im Link von blueberry
http://www.perlfect.com/articles/telnet.shtml (//www.perlfect.com/articles/telnet.shtml) fand ich die nötigen Hinweise. So geht es jetzt.###################################################################
#                für Raspberry Pi
# Telefone der FB klingeln beim Betätigen der Türklingel
#
sub
FBCallr($$$$$$)
{
 use Net::Telnet;
 fhem("sudo bash");
 my $name = "fbcallr";
 my ($Fon,$CallNr,$Duration,$Port,$User,$Password)= @_;
 my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
 Log GetLogLevel($name,1), "$name: Connecting to FritzBox:$Port";
 $telnet->open($Port);
 $telnet->waitfor('/login: $/i');
 $telnet->print($User);
  $telnet->waitfor('/Password: $/i');
 $telnet->print($Password);
 $telnet->waitfor('/# $/i');
 Log GetLogLevel($name,1), "$name: Dialing to FritzBox: from:$Fon to:$CallNr...";
 $telnet->print('echo "ATP'.$Fon.'2 ATD**'.$CallNr.'" | nc 127.0.0.1 1011');
 my $output = $telnet->waitfor('/# $/i'); print $output;
 Log GetLogLevel($name,1), "$name: Dialing:$Duration seconds...";
 sleep($Duration);
 Log GetLogLevel($name,1), "$name: HangOn to FritzBox...";
 $telnet->print('echo "ATH0" | nc 127.0.0.1 1011');
 $output = $telnet->waitfor('/# $/i'); print $output;
 Log GetLogLevel($name,1), "$name: Disconnecting...";
 $telnet->print('exit');
 return;
}
#
###################################################################

und in der FHEM.cfg steht############################################################################
#
# Klingel1
#
define Klingel1 FS20 7e7e 01
attr Klingel1 room MAX
define FileLog_Klingel1 FileLog ./log/Klingel1-%m-%d-%w.log Klingel1:.*
attr FileLog_Klingel1 alias Klingel1
attr FileLog_Klingel1 logtype text
attr FileLog_Klingel1 room Diagramm.log
define Klingel1_on notify Klingel1:on {FBCallr(3,"**701",12,"192.168.0.2","user","password")}
#
######################################################################
Titel: Antw:FritzBox als Klingel
Beitrag von: JoWiemann am 16 Oktober 2013, 22:01:29
Hallo Harald,

sorry, aber war erst im Urlaub und dann ziemlich beschäftigt. Die Änderungen waren wohl notwendig weil AVM mit den neuen Firmwares User eingeführt hat. Somit ist das Einloggen nur per Passwort wohl nicht mehr möglich.

Grüße Jörg
Titel: Antw:FritzBox als Klingel
Beitrag von: MC_Fhem am 16 Juni 2014, 15:31:33
Hallo zusammen,

bin noch recht neu hier. Möchte auch gerne im Notfall telefonisch informiert werden. Habe FBCallr in 99_myUtils.pm kopiert. Versuche mit der Direkteingabe: {FBCallr(3,"**610",12,"192.168.178.11","Ich","Test")} das Telefon klingeln zu lassen.

Leider erhalte ich folgende Fehlermeldung:
pattern match timed-out at ./FHEM/99_myUtils.pm line 224

Im Logfile habe ich folgende Meldung:
2014.06.16 15:20:42 3: sudo bash : Unknown command sudo, try help.
2014.06.16 15:20:42 1: fbcallr: Connecting to FritzBox:192.168.178.11


Fhem ist auf Raspberry installiert und meine Fritzbox ist die 7390.

Kann mir jemand helfen? Oder mir einen Tip gegen wonach ich suchen soll?

Freue mich auf Antwort.

Grüße Toni
Titel: Antw:FritzBox als Klingel
Beitrag von: MC_Fhem am 17 Juni 2014, 01:20:13
Hallo zusammen,

bin jetzt doch noch dahinter gekommen.

Im sub FBCallr habe ich folgende Zeile ausgetauscht:

$telnet->waitfor('/login: $/i');  -->  $telnet->waitfor('/user: $/i');


Meine Fritz-Box fragte nach "user" nicht nach "login" deshalb die Fehlermeldung timed-out.

Ich hoffe ich kann damit auch anderen weiter helfen!

Grüße Toni
Titel: Antw:FritzBox als Klingel
Beitrag von: tagedieb am 11 Juli 2014, 13:15:58
Hallo zusammen
ich habe mal  mit dieser tollen Anleitung, jedoch miot meinem Anfängerwissen versucht, die ganze Sache nachzustellen.
Doch irgendwo habe ich noch einen grossen Denkfehler, denn mir sagt die Log
fbcallr: Connecting to 192.168.x.xx:22
Klingel1_on return value: problem connecting to "192.168.xx.xx", port 23: Connection refused at ./FHEM/99_myUtils.pm line 21
(IP Adresse der FB hier verändert)
und woher kommt der Port 23? - wo wird dieser hinterlegt?
das ist die besagte "line 21"
$telnet->open($Port);
welchen Port müsste ich denn dort eintragen?
die bereits probierten Ports 1011,1012, 22 oder23 - ergeben die Fehlermeldung Klingel1_on return value: unknown remote host:  at ./FHEM/99_myUtils.pm line 21

Ich freue mich über jede Hilfestellung

gruss tagedieb

Titel: Antw:FritzBox als Klingel
Beitrag von: whyte am 23 Juli 2014, 14:31:28
Sorry, dass ich den alten Thread nochmal hoch hole, aber ich bin am verzweifeln ...

Hallo,

ich möchte, wenn bei mir die Haustür aufgemacht wird und noch ein Fenster in der Wohnung offen ist, einen Rundruf auf meine Telefone über die Fritzbox haben. Gesteuert wird es von einem Pi.

Dazu bin ich nach diesem Thread vorgegangen und habe folgendes erstmal gemacht:

Ein Include angelegt und in der fhem.cfg importiert:
include /opt/fhem/FHEM/HaustuerOeffnen.cfg

Im Include "HaustuerOeffnen.cfg" steht folgendes:
# Push wenn Haustür geöffnet, aber Fenster noch offen ist
define FentsterStillOpen notify Haustuer.open {\
FBrcall;;\
}


In der 99_myUtils.pm steht dann dies hier:
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
sub FBrcall {
use Net::Telnet;
my $duration = 10;
my $name = "FBrcall";
my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
my $output = "";
$telnet->open('fritz.box');
$telnet->waitfor('/password: $/i');
$telnet->print('pass!234');
$telnet->waitfor('/# $/i');
$telnet->print('echo "ATP 2 ATD**9" | nc 127.0.0.1 1011');
$telnet->waitfor('/# $/i');
sleep($duration);
$telnet->print('echo "ATH0" | nc 127.0.0.1 1011');
$telnet->waitfor('/# $/i');
$telnet->print('exit');
return;
}
1;


Ich vermute fast, ich sehe den Wald vor Bäumen nicht.
Der Fehler lautet:
2014.07.23 14:23:17 3: FentsterStillOpen return value: pattern match read eof at ./FHEM/99_myUtils.pm line 19
was wohl auf die Zeile:
$telnet->waitfor('/# $/i');

nur ich habe 0 Plan, warum das dem nicht passt.
Einzig, das Passwort mit einem ! wäre hier evtl. verdächtig. Aber ich habe auch schon versucht, es mit einem \ zu maskieren. (Ist ein ausgedachtes Passwort in ähnlicher Konstellation, nicht mein tatsächliches).

Ich bin dankbar für Tipps.
Whyte


Titel: Antw:FritzBox als Klingel
Beitrag von: MC_Fhem am 23 Juli 2014, 19:21:04
Hallo whyte,

ich hatte den gleichen Fehler und hatte meine Lösung oben am 17. Juni 2014 eingestellt!

Im sub FBCallr habe ich folgendes ausgetauscht:

$telnet->waitfor('/login: $/i');  -->  $telnet->waitfor('/user: $/i');


Meine Fritz-Box fragte nach "user" und nicht nach "login" deshalb die Fehlermeldung timed-out.

Ich hoffe es hilft dir weiter.

Grüße

Toni
Titel: Antw:FritzBox als Klingel
Beitrag von: whyte am 30 Juli 2014, 12:05:09
Hallo,
danke für die Rückmeldung, jetzt muss ich auch Rückmeldung geben ;-)

Meine FB fragt nur nach Passwort, von daher habe ich die Zeile bei mir garnicht bei.

Aber ich habe jetzt eine, meiner Meinung nach auch elegantere Lösung gefunden.
Ich nutze jetzt expect:

Das in eine Datei, z.b. /opt/fritzbox/roundcall.expect
#!/usr/bin/expect

spawn telnet fritz.box
expect "password:"
send "meinPasswort\n"
expect "#"
send "echo \"ATP 2 ATD**9\" | nc 127.0.0.1 1011\n"
expect "#"
sleep 15;
send "echo \"ATH0\" | nc 127.0.0.1 1011\n"
expect "#"
send "exit"
exit


und aufgerufen wird das dann in der fhem.cfg mit:
system("/usr/bin/expect /opt/fritzbox/roudcall.expect &");;\

Vorteile:
Man kann die fhem.cfg klein halten, da nur ein Aufruf erfolgt.
Man kann die Datei außerhalb schön editieren und auch einfach testen mit expect <datei>
Der system-Aufruf in der fhem wird in den Hintergrund gesetzt und hält den Ablauf nicht durch den sleep auf.
Titel: Antw:FritzBox als Klingel
Beitrag von: awel am 01 August 2014, 14:07:29
Neue AVM-Versionen ohne NetCat

Hallo,

gibt es auch eine Wählmöglichkeit für die neueren AVM-Firmware-Versionen ohne NetCat?
FHEM läuft auf einem Raspberry, Fritzbox 7390 - und wie gesagt: kein nc auf der Box.

Danke und Gruß
awel
Titel: Antw:FritzBox als Klingel
Beitrag von: fiedel am 01 August 2014, 15:11:35
Hi Awel,

suche mal im Forum und im IP- Phone- Forum nach Fritzbox- API. Damit kannst du die Box dazu bringen Nummern zu wählen.

Gruß

Frank
Titel: Antw:FritzBox als Klingel
Beitrag von: vw2audi am 16 Januar 2015, 01:45:04
Hallo ich habe auch einmal mein Glück versucht, aber bekomme es nicht ganz hin.

Im Log File steht nur dieses:

2015.01.16 01:40:29 3: sudo bash : Unknown command sudo, try help.
2015.01.16 01:40:29 1: fbcallr: Connecting to FritzBox:192.168.178.1
2015.01.16 01:40:30 1: fbcallr: Dialing to FritzBox: from:0 to:**623...
2015.01.16 01:40:30 1: fbcallr: Dialing:10 seconds...
2015.01.16 01:40:40 1: fbcallr: HangOn to FritzBox...
2015.01.16 01:40:40 1: fbcallr: Disconnecting...

schaut ja aus, als ob es geht, aber es passier nichts :-(
Titel: Antw:FritzBox als Klingel
Beitrag von: fiedel am 16 Januar 2015, 08:15:50
Sieh dir mal dieses Modul (http://forum.fhem.de/index.php/topic,29725.0.html) an, damit sollte das und vieles Andere funktionieren. Voraussetzung ist ein geöffneter Telnet- Port auf der FB.

Gruß

Frank
Titel: Antw:FritzBox als Klingel
Beitrag von: Heiner am 21 März 2015, 18:01:29
Hi, ich komme nicht weiter. Mein Code funktioniert zwar im Prinzip, aber meine FB will nicht.

Laut: http://www.ip-phone-forum.de/showthread.php?t=272463 (http://www.ip-phone-forum.de/showthread.php?t=272463)

scheint meine Fritzbox 7390 mit letzter Firmware 6.23 nicht mehr über nc und netcat zu verfuegen.
Keine Ahnung ob das von Fritz so gewollt ist oder ob nur meine Box spinnt, ich weiss auch nicht wie ich nc und netcat wieder da drauf bekomme. Hat jemand Rat? :-[

und damit geht der Befehl unter Telnet and der Fritzbox
echo "ATD**9" | nc 127.0.0.1 1011 auch nicht !!!

Nach dem anlegen des Files wie im Link beschrieben funktioniert nun aber dieser code:
sh /var/tmp/dialer.sh **9 :)

Nur, wie muss ich nun meine myUtils99.pm verändern? :-[
Titel: Antw:FritzBox als Klingel
Beitrag von: jkriegl am 21 März 2015, 19:47:20
wie fiedel schrieb geht das mit dem Fritzbox-Modul sehr einfach.
z.B. Fenster offen Erkennung beim HM-Thermostat
define Terrassentueroffen DOIF ([HM_WoZi_Clima:desired-temp] eq "12.0") (set myfritz ring 610 45 show:Terrassentuer)
Klingelt u. zeigt den Text an.