FRITZBOX - Fritz!Box und Fritz!Fon sprechen - Jetzt auch ohne Telnet

Begonnen von tupol, 28 November 2014, 23:46:54

Vorheriges Thema - Nächstes Thema

snickers2k

#1260
Vielen Dank für das Modul, tupol

Ich frage mich jedoch, ob es eine Möglichkeit gibt, über "set <name> ring <intNummern> [Dauer [Klingelton]]" einen custom-Ringtone abzuspielen? Bei custom-Ringtones kommt bei mir kommt leider immer die Meldung, dass der Ringtone (auf nem C4) nicht gefunden werden konnte. Obwohl er dort unter "eigene Klingeltöne" aufgelistet ist - und auch funktioniert. Sowohl mit "<customerRingTone>" und "<NAME>" (des custom-Ringtones) wird der Klingelton, der auf dem Telefon ausgewählt ist, genommen.

Auch habe ich gerade say:xxx und play:http:pfad/zur/.mp3 mit dem C4 ausprobiert. Klappt leider auch nicht. Fritzbox 7490 mit neustem OS.

Sollte doch eigentlich funktionieren... Kann es sein, dass sich etwas an der FritzBox API verändert hat?
Danke.

tupol


AndreasB

Hallo,

wenn ich das richtig verstanden habe, soll doch show den entsprechenden Text auf dem Display anzeigen, oder?

Als Anzeige auf dem Display erscheint nur Wählhilfe / Rundruf.

Andreas

tupol

Zitat von: AndreasB am 08 März 2016, 09:56:10
Hallo,

wenn ich das richtig verstanden habe, soll doch show den entsprechenden Text auf dem Display anzeigen, oder?

Als Anzeige auf dem Display erscheint nur Wählhilfe / Rundruf.

Andreas
Ja-Aber. Auszug aus der commandref: Die Parameter Klingelton, show:, say: und play: benötigen die API Telnet oder webcm. :(

snickers2k

Zitat von: tupol am 08 März 2016, 12:50:27
Ja-Aber. Auszug aus der commandref: Die Parameter Klingelton, show:, say: und play: benötigen die API Telnet oder webcm. :(

Also das scheint ja das gleiche Problem zu sein, wie bei mir.
Muss webcm erst aktiviert werden? Wenn ja, wie? Finde diesbezüglich leider nichts.

Vielen Dank.

volschin

Hallo zusammen,
ich habe bei mir das FB-Modul um ein paar zusätzliche Infos erweitert.

Ab Zeile 1251:
   if ( int(time/3600) != $hash->{fhem}{lastHour} || $hash->{fhem}{LOCAL} != 0) {
         FRITZBOX_Log $hash, 4, "Start update of slow changing device readings.";
      FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->lastHour", int(time/3600);
   # Box model
      my $host = AttrVal( $name, "fritzBoxIP", "fritz.box" );
      my $url = "http://$host/cgi-bin/system_status";
     
      my $agent    = LWP::UserAgent->new( env_proxy => 1, keep_alive => 1, protocols_allowed => ['http'], timeout => 10 );
      my $response = $agent->get ($url);
      my $content  = $response->content;
      $content=$1    if $content =~ /<body>(.*)<\/body>/;
     
      my @result = split /-/, $content;
      # http://www.tipps-tricks-kniffe.de/fritzbox-wie-lange-ist-die-box-schon-gelaufen/
      # 0 FritzBox-Modell
      # 1 Annex/Erweiterte Kennzeichnung
      # 2 Gesamtlaufzeit der Box in Stunden, Tage, Monate
      # 3 Gesamtlaufzeit der Box in Jahre, Anzahl der Neustarts
      # 4+5 Hashcode
      # 6 Status
      # 7 Firmwareversion
      # 8 Sub-Version/Unterversion der Firmware
      # 9 Branding, z.B. 1und1 (Provider 1&1) oder avm (direkt von AVM)
      FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_model",  $result[0];
      FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_oem",    $result[9];
      FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_lifetime",    int(substr($result[3],0,2)) .' Jahre, '. int(substr($result[2],4,2)).' Monate, '. int(substr($result[2],2,2)).' Tage, '. int(substr($result[2],0,2)). ' Stunden';
      FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_restarts",    int(substr($result[3],2,4));
   } 

# TODO TR-064 Werte

   my @tr064CmdArray;
   if ($hash->{SECPORT}) { #ring with TR-064
# WANPPPConnection:1 wanpppconn1 GetStatusInfo
   push @tr064CmdArray, ["WANPPPConnection:1", "wanpppconn1", "GetStatusInfo"];
   my @result = FRITZBOX_TR064_Cmd( $hash, 1, \@tr064CmdArray );
   my $tmp = Dumper (@result);
   $tmp =~ /'NewConnectionStatus' => '(.*?)'/;
   FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "internet_status",  $1;
   $tmp =~ /'NewUptime' => '(.*?)'/;
   FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "internet_uptime",  $1;
   my $uptime_text = int($1/(24*60*60)) .' Tage, '.int(($1/(60*60))%24).' Stunden, '.int(($1/60)%60).' Minuten';
   FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "internet_uptime_text",  $uptime_text;

   # DeviceInfo:1 deviceinfo GetInfo
   push @tr064CmdArray, ["DeviceInfo:1", "deviceinfo", "GetInfo"];
   my @result = FRITZBOX_TR064_Cmd( $hash, 1, \@tr064CmdArray );
   $tmp = Dumper (@result);
   $tmp =~ /'NewUpTime' => '(.*?)'/;
   FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_uptime",  $1;
   $uptime_text = int($1/(24*60*60)) .' Tage, '.int(($1/(60*60))%24).' Stunden, '.int(($1/60)%60).' Minuten';
   FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_uptime_text",  $uptime_text;

   # WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo
   push @tr064CmdArray, ["WANDSLInterfaceConfig:1", "wandslifconfig1", "GetInfo"];
   my @result = FRITZBOX_TR064_Cmd( $hash, 1, \@tr064CmdArray );
   $tmp = Dumper (@result);
   $tmp =~ /'NewStatus' => '(.*?)'/;
   FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "dsl_status",  $1;
   $tmp =~ /'NewDownstreamCurrRate' => '(.*?)'/;
   my $dsl_rate =$1.' / ';
   $tmp =~ /'NewUpstreamCurrRate' => '(.*?)'/;
   $dsl_rate .= $1;
   FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "dsl_rate",  $dsl_rate;

   # WANDSLInterfaceConfig:1 wandslifconfig1 GetStatisticsTotal
   # 'NewInitTimeouts' => '0',
   # 'NewLinkRetrain' => '0',
   # 'NewLossOfFraming' => '0',
   # 'NewATUCHECErrors' => '0',
   # 'NewHECErrors' => '0',
   # 'NewTransmitBlocks' => '0',
   # 'NewInitErrors' => '0',
   # 'NewErroredSecs' => '0',
   # 'NewATUCFECErrors' => '24301',
   # 'NewSeverelyErroredSecs' => '0',
   # 'NewCellDelin' => '0',
   # 'NewATUCCRCErrors' => '3',
   # 'NewFECErrors' => '39205',
   # 'NewReceiveBlocks' => '0',
   # 'NewCRCErrors' => '0'
#  push @tr064CmdArray, ["WANDSLInterfaceConfig:1", "wandslifconfig1", "GetStatisticsTotal"];
#  my @result = FRITZBOX_TR064_Cmd( $hash, 1, \@tr064CmdArray );
#   $tmp = Dumper (@result);
#   $tmp =~ /'NewFECErrors' => '(.*?)'/;
   }


Vielleicht sucht ja der ein oder andere etwas ähnliches.
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

octek0815

Zitat von: tupol am 02 März 2016, 15:18:10
Eventuell kannst Du Dir dafür mit Hilfe der get-Befehle ein eigenes Userreading basteln.

Hallo tupol,

das würde mir auch reichen, aber ich hab nicht wirklich bisher den richtigen Get Befehl dafür gefunden.
Hast du nen Tipp?

Grüße
Olli



tupol

Zitat von: snickers2k am 08 März 2016, 16:40:16
Also das scheint ja das gleiche Problem zu sein, wie bei mir.
Muss webcm erst aktiviert werden? Wenn ja, wie? Finde diesbezüglich leider nichts.
Nein. Geht nicht. Sie ist da oder eben nicht.

no_Legend

#1268
Kann man von einer Kabel Fritzbox mit FW 6.04 folgende Infos Abrufen:
1. Ausgehandelter Downlink Speed
2. Ausgehandelter Uplink Speed
3. Verbindungsstatus der VOIP Anschlüsse

Edit:

Wenn ich probiere wie folgt daten abzurufen,
get FritzBox tr064Command WANCommonInterfaceConfig:1 wancommonifconfig1 NewLayer1UpstreamMaxBitRate
bekomme ich immer folgende Fehlermeldung
Wrong number of arguments, usage: get


Danke und Gruß Robert
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

Tommy82

Hallo, also irgendwie komme ich nicht weiter, ich will das ich einen Anruf beim Alarm bekomme, wenn der Rauchalarm ausgelöst wird, bekomme ich über dieses notify eine Email, das klappt auch ohne Probleme:
Internals:
   DEF        Rauchmelder_Btn1:smoke-Alarm.* { DebianMail('FHEM Feueralarm',$NAME.' Meldet Alarm' ) }
   NAME       Raucharalm
   NOTIFYDEV  Rauchmelder_Btn1
   NR         70
   NTFY_ORDER 50-Raucharalm
   REGEXP     Rauchmelder_Btn1:smoke-Alarm.*
   STATE      active
   TYPE       notify
   Readings:
     2016-02-24 21:06:05   state           active
Attributes:


Jetzt möchte ich ja noch den Anruf, dafür gibt es dann diese sub in meiner 99myUtils.pm
sub Rauchmelderalarm () {
my $ausgeloester_Melder = ReadingsVal("Rauchmelder_Btn1","smoke_detect","leer");
       DebianMail('xxx\@googlemail.com','FHEM Feueralarm',$ausgeloester_Melder.'Meldet Alarm' );
       fhem ("set FritzBox7490 call 0123345566 say:Feuer");
}


das notify dazu:
Internals:
   DEF        Rauchmelder_Btn1:smoke-Alarm.* { Rauchmelderalarm() }
   NAME       Rauchalarm_Anruf
   NOTIFYDEV  Rauchmelder_Btn1
   NR         71
   NTFY_ORDER 50-Rauchalarm_Anruf
   REGEXP     Rauchmelder_Btn1:smoke-Alarm.*
   STATE      active
   TYPE       notify
   Helper:
     Dblog:
       State:
         Mydblog:
           TIME       1456861773.072
           VALUE      active
   Readings:
     2016-03-01 20:49:33   state           active
Attributes:


Wieso klappt die Mail und der Anruf nicht?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

volschin

Funktioniert der Anruf denn, wenn Du es manuell auslöst?
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

snickers2k

#1271
Zitat von: tomster am 20 Januar 2016, 13:25:10
Ich spiel mich immer noch mit dem Versuch die "Es gibt Anrufe in Abwesenheit" (also genau wie die blinkende LED z.B. am FritzFon Mobilteil) Benachrichtigung auszulesen. Leider sagt mir die Dokumentation von AVM herzlich wenig, wonach ich überhaupt suchen muss...

Mein Versuch mit:


get Fritzbox tr064Command X_AVM-DE_OnTel:1 x_contact GetMessageStatus NewFoncalls Foncalls

bringt nur eine Fehlermeldung:

Service='X_AVM-DE_OnTel:1'   Control='x_contact'   Action='GetMessageStatus'
Parameter1='NewFoncalls' => 'Foncalls'
----------------------------------------------------------------------
$VAR1 = {
          'UPnPError' => {
                           'errorCode' => '401',
                           'errorDescription' => 'Invalid Action'
                         }
        };



Kann mich vielleicht jemand in die richtige Richtung schubsen?


Genau danach habe ich auch gerade gesucht.

Ich habe es so versucht:
Zitatget FritzBox tr064Command X_AVM-DE_OnTel:1 x_contact GetCallList
So weit so gut.

Jetzt kommt allerdings
Zitat
Service='X_AVM-DE_OnTel:1'   Control='x_contact'   Action='GetCallList'
----------------------------------------------------------------------
$VAR1 = {
          'GetCallListResponse' => {
                                   'NewCallListURL' => 'https://192.168.178.1:49443/calllist.lua?sid=d1184cf2131f85e0'
                                 }
        };

Keine Ahnung, was ich damit anfangen soll :D

Die URL im Browser aufgerufen ergibt
Zitat
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>606</errorCode>
<errorDescription>Action Not Authorized</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Jemand eine Idee?

tupol

Die sid gilt für die fhem-Server-IP. Du musst die Adresse über fhem auslesen.

GetMessageStatus gibt es in der aktuellen TR064-Version nicht mehr. Die Schnittstellenbeschreibung auf AVM.de wird leider nicht gepflegt.

Tommy82

Zitat von: volschin am 09 März 2016, 22:46:57
Funktioniert der Anruf denn, wenn Du es manuell auslöst?

Hm, irgendwie nicht richtig,
wenn ich ein set FritzBox7490 cal "meine Handynummer" durchführe, klingelt das Haustelefon welches über Fon1 an die FB angeschlossen ist, für ca. 40 Sekunden, anschließend da das Handy, und wenn ich daran gehe kommt immer die Meldung" Ihre Verbindung wird gehalten"

Aber vom grundsatz scheint es zu funktionieren, nur halt nicht wie ich es gerne haben würde über das notify/die sub damit ich bei Alarm den anruf bekomme.

Was mache ich noch falsch?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

volschin

Wenn das
set FritzBox7490 call 0123345566 say:Feuer
ohne notify nicht funktioniert, wird es auch im notify nicht klappen.

Also zuerst Problem 1 lösen und nicht unnötig verkomplizieren.
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge