FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wing350 am 26 Mai 2013, 18:06:13

Titel: *#**9 als FritzBoxCallnr benutzen
Beitrag von: wing350 am 26 Mai 2013, 18:06:13
Hallo,
ich habe FHEM auf einer FB7240 laufen, die als WLAN-Repeater und als DECT-Repeater für eine FB7270 konfiguriert ist.
Zusätzlich kann die 7240 einen Rundruf auch an die Telefone senden, die an der anderen FB hängen.
Das geschieht über '*#**9'.
Per Analogtelefon funktioniert das auch, nur FHEM meckert mit einem "unknown command"-Fehler, weil es die Raute als Kommentarbeginn interpretiert. Rundrufe innerhalb der FHEM-Fritzbox mit '**9' funktionieren einwandfrei.

Trotz stundenlanger Suche im Internet komme ich hier nicht weiter.
Titel: Aw: *#**9 als FritzBoxCallnr benutzen
Beitrag von: Ralph am 26 Mai 2013, 18:18:56
Du könntest die Anwahlprozedur in ein separates Shellscript auslagern und dieses von FHEM aus aufrufen.
Titel: Aw: *#**9 als FritzBoxCallnr benutzen
Beitrag von: wing350 am 26 Mai 2013, 18:27:17
Zitat von: Ralph schrieb am So, 26 Mai 2013 18:18Du könntest die Anwahlprozedur in ein separates Shellscript auslagern und dieses von FHEM aus aufrufen.

Die Idee ist gut, nur bin ich damit etwas überfordert, was perl- und shellscripte betrifft. Ich habe den eigentlichen Anwahlprozess wie im WIKI beschrieben in der 99_myUtils.pm

##############################################
# $Id: 99_Utils.pm 1932 2012-10-06 20:15:33Z ulimaass $

package main;
use strict;
use warnings;
use POSIX;

sub
Utils_Initialize($$)
{
  my ($hash) = @_;
}

sub
FritzBoxCallnr ($)
 {    
    my ($callnr) = @_;
    $callnr = "ATDT".$callnr."#";
    my $ret = "ATD: " . `echo $callnr | nc 127.0.0.1 1011` ;
    InternalTimer(gettimeofday()+10, "FritzBoxHangOn", "", 0);
    return
 }

sub
FritzBoxHangOn ()
 {
    my $ret = " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;
    $ret =~ s,[\r\n]*,,g;        # remove CR from return-string
    return
 }

1;

##########################################################################

und in der fhem.cfg

define KlingelNotify notify Sim_LED_Leiste:on {\
FritzBoxCallnr ('*#**9')\
}

Titel: Aw: *#**9 als FritzBoxCallnr benutzen
Beitrag von: Ralph am 26 Mai 2013, 18:40:46
Ach so, ich vergaß ...
Die Methode des Script-Aufrufs findest Du hier:
Link (http://forum.fhem.de/index.php?topic=12838.msg77760#msg77760)
und den Telefonie-Aufruf baust Du einfach in die aaa.scr ein.
Bin unterwegs und kann Dir das hier nicht vordenken.
Titel: Aw: *#**9 als FritzBoxCallnr benutzen
Beitrag von: wing350 am 27 Mai 2013, 16:57:44
Ich muss meinen Wunsch wohl aufgeben:

Nachdem auch eine direkte Eingabe per Telnet dieses Wählcodes nicht funktioniert, muss es am Betriebssystem der FB liegen.

Wahl am analogen Telefon (Rundruf zur anderen Fritzbox) mit '*#**9' klappt.
per Telnet mit echo "ATDT*#**9" | nc 127.0.0.1 1011 klappts nicht, wohl aber mit echo "ATDT**9" | nc 127.0.0.1 1011

Ein Quick 'n Dirty wäre der Eintrag der eigenen (externen) Telefonnummer im Telefonbuch und deren Anwahl mit der Kurzwahlnummer aus fhem (klappt).
Der Eintrag von '*#**9' im Telefonbuch und Anwahl über Kurzwahlnummer klappt dagegen auch nicht.

Ein Netcat-aufruf an die entfernte FB scheitert an 'Connection refused'.

Vielleicht hat ja doch noch einer eine zündende Idee?

Gruß
Reimer
Titel: Aw: *#**9 als FritzBoxCallnr benutzen
Beitrag von: wing350 am 09 Juni 2013, 13:12:54
Problem doch gelöst!

Bei einem Rundruf innerhalb einer FB reicht der normale Rundrufbefehl. Bei einer Slave-FB muss der Rundrufnummer die "Line-Out"-Vorwahl (bei mir *122#) vorangestellt werden:

sub
FritzBoxTuer ()
{  
  my $ret = "ATD: " . `echo "ATD*122#*#**9#" | nc 127.0.0.1 1011` ;
  InternalTimer(gettimeofday()+20, "FritzBoxHangOn", "", 0);
  return
}

sub
FritzBoxHangOn ()
{
  my $ret = " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;
  $ret =~ s,[\r\n]*,,g;
  return
}

Allerdings hatte ich Probleme, diese lange Rufnummer als Variable für FritzBoxCallnr() zu übergeben. Deshalb habe ich die Nummer direkt in die 99_myUtils.pm gepackt und "HEUREKA....". Es klappt.
Stören tut jetzt nur die relativ lange Latenzzeit von 7 sec zwischen Klingelknopf-drücken und Anrufsignalisierung.

Gruß
Reimer

Titel: Antw:*#**9 als FritzBoxCallnr benutzen
Beitrag von: heinzfo am 15 Juni 2016, 15:37:32
Hallo

Wie kann ich das mit der FB7390 verwenden wenn FHEMauf einem Raspberry läuft?

Beste Grüße
Heinz