*#**9 als FritzBoxCallnr benutzen

Begonnen von wing350, 26 Mai 2013, 18:06:13

Vorheriges Thema - Nächstes Thema

wing350

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.
FHEM auf Ubuntu VM/QNAP, FHEM-Native, CUL868, RFTRX433 und Jeelink auf RPi über ser2net an VM angebunden, PCA301/LaCrosse-Gateway (WLAN), FHTs, FS20-Aktoren, FBDECT, div. HM- und HMIP-Komponenten, Raspberrymatic VM auf QNAP, Signalduino für Somfy, optolink-WLAN für Viessmann, div. Shelly

Ralph

Du könntest die Anwahlprozedur in ein separates Shellscript auslagern und dieses von FHEM aus aufrufen.
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

wing350

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')\
}

FHEM auf Ubuntu VM/QNAP, FHEM-Native, CUL868, RFTRX433 und Jeelink auf RPi über ser2net an VM angebunden, PCA301/LaCrosse-Gateway (WLAN), FHTs, FS20-Aktoren, FBDECT, div. HM- und HMIP-Komponenten, Raspberrymatic VM auf QNAP, Signalduino für Somfy, optolink-WLAN für Viessmann, div. Shelly

Ralph

Ach so, ich vergaß ...
Die Methode des Script-Aufrufs findest Du hier:
Link
und den Telefonie-Aufruf baust Du einfach in die aaa.scr ein.
Bin unterwegs und kann Dir das hier nicht vordenken.
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

wing350

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
FHEM auf Ubuntu VM/QNAP, FHEM-Native, CUL868, RFTRX433 und Jeelink auf RPi über ser2net an VM angebunden, PCA301/LaCrosse-Gateway (WLAN), FHTs, FS20-Aktoren, FBDECT, div. HM- und HMIP-Komponenten, Raspberrymatic VM auf QNAP, Signalduino für Somfy, optolink-WLAN für Viessmann, div. Shelly

wing350

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

FHEM auf Ubuntu VM/QNAP, FHEM-Native, CUL868, RFTRX433 und Jeelink auf RPi über ser2net an VM angebunden, PCA301/LaCrosse-Gateway (WLAN), FHTs, FS20-Aktoren, FBDECT, div. HM- und HMIP-Komponenten, Raspberrymatic VM auf QNAP, Signalduino für Somfy, optolink-WLAN für Viessmann, div. Shelly

heinzfo

Hallo

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

Beste Grüße
Heinz