Funktionierende Scripts für FRITZ!OS 05.50 7390

dann lass dir doch Reports zuschicken, kannst ja granular nach Host / User u.a auswählen…

Moin,

hat jemand Lust das zu testen ? Das Skript liefert ein Array mit den Werten des Onlinezählers aus der Box.
Empfangen und Gesendet jeweils in MB.

<?
include "fritzbox.php";
$t=ARRAY();

$StatusPage = file_get_contents('http://fritz.box/internet/inetstat_counter.lua?sid='.$SID);

// Heute empfangen
$high=substr(strstr($StatusPage,'["inetstat:status/Today/BytesReceivedHigh"]'),47,5);
$high=substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/Today/BytesReceivedLow"]'),46,15);
$low=substr($low,0,strpos($low,'"'));
$t['heute'] ['empfangen']=lowhigh($low,$high);

// Heute gesendet
$high=substr(strstr($StatusPage,'["inetstat:status/Today/BytesSentHigh"]'),43,5);
$high=substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/Today/BytesSentLow"]'),42,15);
$low=substr($low,0,strpos($low,'"'));
$t['heute'] ['gesendet']=lowhigh($low,$high);
$calls=substr(strstr($StatusPage,'["inetstat:status/Today/OutgoingCalls"]'),43,5);
$calls=substr($calls,0,strpos($calls,'"'));
$t['heute']['Outgoing_calls']=$calls;

// Gestern empfangen
$high=substr(strstr($StatusPage,'["inetstat:status/Yesterday/BytesReceivedHigh"]'),51,5);
$high=(int) substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/Yesterday/BytesReceivedLow"]'),50,15);
$low=(int) substr($low,0,strpos($low,'"'));
$t['gestern'] ['empfangen']=lowhigh($low,$high);

// Gestern gesendet
$high=substr(strstr($StatusPage,'["inetstat:status/Yesterday/BytesSentHigh"]'),47,5);
$high=(int) substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/Yesterday/BytesSentLow"]'),46,15);
$low=(int) substr($low,0,strpos($low,'"'));
$t['gestern'] ['gesendet']=lowhigh($low,$high);
$calls=substr(strstr($StatusPage,'["inetstat:status/Yesterday/OutgoingCalls"]'),47,5);
$calls=(int) substr($calls,0,strpos($calls,'"'));
$t['gestern']['Outgoing_calls']=$calls;

// Woche empfangen
$high=substr(strstr($StatusPage,'["inetstat:status/ThisWeek/BytesReceivedHigh"]'),50,5);
$high=(int) substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/ThisWeek/BytesReceivedLow"]'),49,15);
$low=substr($low,0,strpos($low,'"'));
$t['woche'] ['empfangen']=lowhigh($low,$high);

// Woche gesendet
$high=substr(strstr($StatusPage,'["inetstat:status/ThisWeek/BytesSentHigh"]'),46,5);
$high=substr($high,0,strpos($high,'"'));
$low =substr(strstr($StatusPage,'["inetstat:status/ThisWeek/BytesSentLow"]'),45,15);
$low =substr($low,0,strpos($low,'"'));
$t['woche'] ['gesendet']=lowhigh($low,$high);
$calls=substr(strstr($StatusPage,'["inetstat:status/ThisWeek/OutgoingCalls"]'),46,5);
$calls=substr($calls,0,strpos($calls,'"'));
$t['woche']['Outgoing_calls']=$calls;

// Diesen Monat empfangen
$high=substr(strstr($StatusPage,'["inetstat:status/ThisMonth/BytesReceivedHigh"]'),51,5);
$high=substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/ThisMonth/BytesReceivedLow"]'),50,15);
$low=substr($low,0,strpos($low,'"'));
$t['monat'] ['empfangen']=lowhigh($low,$high);

// Diesen Monat gesendet
$high=substr(strstr($StatusPage,'["inetstat:status/ThisMonth/BytesSentHigh"]'),47,5);
$high=substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/ThisMonth/BytesSentLow"]'),46,15);
$low=substr($low,0,strpos($low,'"'));
$t['monat'] ['gesendet']=lowhigh($low,$high);
$calls=substr(strstr($StatusPage,'["inetstat:status/ThisMonth/OutgoingCalls"]'),47,5);
$calls=substr($calls,0,strpos($calls,'"'));
$t['monat']['Outgoing_calls']=$calls;

// Letzten Monat empfangen
$high=substr(strstr($StatusPage,'["inetstat:status/LastMonth/BytesReceivedHigh"]'),51,5);
$high=substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/LastMonth/BytesReceivedLow"]'),50,15);
$low=substr($low,0,strpos($low,'"'));
$t['letzter_monat'] ['empfangen']=lowhigh($low,$high);

// Letzten Monat gesendet
$high=substr(strstr($StatusPage,'["inetstat:status/LastMonth/BytesSentHigh"]'),47,5);
$high=substr($high,0,strpos($high,'"'));
$low=substr(strstr($StatusPage,'["inetstat:status/LastMonth/BytesSentLow"]'),46,15);
$low=substr($low,0,strpos($low,'"'));
$t['letzter_monat'] ['gesendet']=lowhigh($low,$high);
$calls=substr(strstr($StatusPage,'["inetstat:status/LastMonth/OutgoingCalls"]'),47,5);
$calls=substr($calls,0,strpos($calls,'"'));
$t['letzter_monat']['Outgoing_calls']=$calls;

IF ($_IPS['SENDER']=="Execute" )
{
	print_r($t);
}

function lowhigh($l,$h)
{
	$res=$l+($h*pow(65536,2));
	$res=round($res/1000000,0);
	return($res);
}
?>

So etwas in der Art sollte da raus kommen.

Array
(
    [heute] => Array
        (
            [empfangen] => 5999
            [gesendet] => 149
            [Outgoing_calls] => 1
        )

    [gestern] => Array
        (
            [empfangen] => 4462
            [gesendet] => 220
            [Outgoing_calls] => 9
        )

    [woche] => Array
        (
            [empfangen] => 15485
            [gesendet] => 552
            [Outgoing_calls] => 14
        )

    [monat] => Array
        (
            [empfangen] => 15485
            [gesendet] => 552
            [Outgoing_calls] => 14
        )

    [letzter_monat] => Array
        (
            [empfangen] => 0
            [gesendet] => 0
            [Outgoing_calls] => 0
        )

)

Gruß
Walter

Danke Walter…

… das Skript funzt auf meiner 7390 mit aktueller Firmware. Bekomme den richtigen Verbrauchswerte angezeigt!

Gruß,
Peter

Getestet und läuft.

Moin,

habe eine etwas andere Art der Steuerung für die Rufumleitung realisiert als auf der ersten Seite beschrieben. Die Umleitungen können hier direkt einzeln angesprochen werden.
Voraussetzung ist, dass sie schon manuell angelegt wurden.

Beispiel: Rufumleitung aller ankommenden Rufe ohne Rufnummer auf den AB1:

<?
include "fritzbox.php";
$nr='0';   	 // Nummer der Umleitung. Nr.1 = 0, Nr. 2 = 1
$active='1'; // An oder Aus
$nummer='';  // Welche eingehende Nummer soll umgeleitet werden ( * für alle, "" für unbekannt ohne Rufnummer )
$ziel='600'; // Zielrufnummer ( 600 für AB 1 etc. )

$StatusPage = file_get_contents('http://fritz.box/fon_num/rul_edit.lua?sid='.$SID);
$ch = curl_init('http://fritz.box/fon_num/rul_edit.lua');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&telcfg:settings/CallerIDActions$nr/Active={$active}");
curl_exec($ch);
curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&telcfg:settings/CallerIDActions$nr/CallerID={$nummer}");
curl_exec($ch);
curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&telcfg:settings/CallerIDActions$nr/Destination={$ziel}");
curl_exec($ch);
curl_Close($ch);
?>

Gruß
Walter

Moin,

Wecker in der Fritzbox aktivieren / einstellen :

<?
// Wecker einschalten

include "fritzbox.php";
$ein='0';     		    // 1= EIN / 0 = AUS
$zeit="1130"; 		    // Zeit = 11:30 Uhr
$name="Guten Morgen"; // Text
 
curl_action("sid={$SID}&telcfg:settings/AlarmClock0/Active={$ein}");
curl_action("sid={$SID}&telcfg:settings/AlarmClock0/Time={$zeit}");
curl_action("sid={$SID}&telcfg:settings/AlarmClock0/Active={$ein}");
curl_action("sid={$SID}&telcfg:settings/AlarmClock0/Name={$name}");

function curl_action($line)
{
	$ch = curl_init('http://fritz.box/fon_devices/alarm.lua');
	curl_setopt($ch, CURLOPT_POSTFIELDS, $line);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_exec($ch);
	curl_close($ch);
	return;
}
 ?>

mit

 $wert=$_IPS['VALUE'];
    include "fritzbox.php";
    $StatusPage = file_get_contents('http://fritz.box/wlan/wlan_settings.lua?sid='.$SID);
    $ch = curl_init('http://fritz.box/wlan/wlan_settings.lua');
    curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&wlan:settings/guest_timeout={$wert}");
    curl_exec($ch);
    curl_Close($ch); 

stellt man die Zeit ein wie lange der Gastzugang laufen soll.
Wie muss der Bereich aussehen wenn man wissen will wie lange der Gastzugang noch läuft?

nAbend,

ich hätte eine Frage an die Fritz-Box Experten. Ich habe derzeit die FritzBox 7312.

Ist es möglich in die Datein der BOx zu verbinden und dort z.B den Startscreen in Fritz-Box ändern.

Oder sind die Datein verschlüsselt, wenn ja kann man die entschlüsseln. Kann man bestimme Bereiche an der Verwaltungsoberfläche ändern?

Vielen dank schonmal

Hallo ,
ich hab’s schon mit dem „alten scriptt“ versucht (fritzbox_api.class.php von sschnake) .
Funktioniert nicht wegen der Firmware und Anmeldung (lua).
Kann mir das jemand umbiegen:

<?

require_once('fritzbox_api.class.php');
 try
 {
    $fritz = new fritzbox_api('password', '192.168.x.x');
    $formfields = array(
     'getpage'                  => '../html/de/menus/menu2.html', // the getpage parameter is mandatory
     'telcfg:settings/UseClickToDial' => 1, // enables the first answering machine, any POST-field from the Web-UI can be used
     "telcfg:command/Dial"=>"**2#9",
     "telcfg:settings/DialPort"=>"1"
  );
  $fritz->doPostForm($formfields);   // send the command
  $fritz = null;                     // destroy the object to log out
}
catch (Exception $e)
{
  echo $e->getMessage();             // schow the error message in anything failed
}

?>

gruß Konny

Versuch das mal:

<?
include "fritzbox.php";
$nummer="**2#9";
$ch = curl_init('http://fritz.box/fon_num/dial_foncalls.lua');
curl_setopt($ch, CURLOPT_URL, "http://fritz.box/fon_num/dial_foncalls.lua?sid={$SID}&dial=$nummer");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);
?>

Gruß
Walter

Würde ich über einen Timer in IPS steuern. Bei Aktivieren über das Webfront, wird eine Startzeit gesetzt, die Du dann abfragen kannst. Die max. Zeitspanne hast Du ja…

Gruß
Walter

oder aus der Box :

include "fritzbox.php";
$StatusPage = file_get_contents('http://fritz.box/wlan/guest_access.lua?sid='.$SID);
$rest = substr(strstr($StatusPage,'["wlan:settings/guest_time_remain"] ='),39,10);
$rest = (int) substr($rest,0,strpos($rest,'"'));
SetValue(22386 /*[Telefon u. Internet\FritzBox\WLan\Gäste WLAN\Restzeit GUEST LAN]*/,$rest );

Danke Walter,

soweit funktioniert schon mal etwas, aber anders als gewünscht:
Die Klingel ist die Nebenstelle 2, mit a/b-Anschluß an der Fritzbox (auerswald Dialog103)

$nummer="**2#9"

hebt die Nebenstelle 2(Klingel) ab und läutet an den anderen Telefonen.

Ich brauche aber eine angeklingelte MSN die abhebt und „#9“ sendet oder
eine Nichtangerufene, die abhebt und den Code „**2#9“ zur Nebenstelle schickt.

Vielleicht hab ich da noch einen Denkfehler…

Gruß Konny

ich hätte eine Frage an die Fritz-Box Experten. Ich habe derzeit die FritzBox 7312.

Ist es möglich in die Datein der BOx zu verbinden und dort z.B den Startscreen in Fritz-Box ändern.

Oder sind die Datein verschlüsselt, wenn ja kann man die entschlüsseln. Kann man bestimme Bereiche an der Verwaltungsoberfläche ändern?

Vielen dank schonmal

ich glaube, das ist das falsche Forum für Dein Anliegen. Hier geht es weniger darum, die Oberfläche der Fritzbox zu verändern, sondern darum, Funktionen der Box in IPS zu integrieren oder zu visualisieren.
Versuch Dein Glück mal hier .

Gruß
Walter

Hmm, versuche aus dem Topic #82 von Walter1304 die Daten zu extrahieren. Hätte erwartet das ich mit:

echo($heute[‚gesendet‘]);

Denn Wert angezeigt bekomme - aber das geht nicht.

Was mache ich hier falsch?

Danke.

Hi,

Die Variable heißt $t[‚heute‘] [‚gesendet‘] ( ist ein 2 dimensionales Array ).

Gruß
Walter

Herrje, hätte ich auch selber drauf kommen können - da Sie ja zigmal im Source steht. Dachte aber das, das eindimensionale Arrays sind :(.

Danke für die schnelle Hilfe :).

Cool, wieder einen offenen Punkte abgehackt.

Dieser Thread ist die reinste Fundgrube … danke an euch :).

Huhu, Community,

könnte mir jemand verraten bzw. einen link schicken wie ich ein Klingelscript aus IPS verwirklichen kann ??

Fritzbox vorhanden, aber irgendwie seh ich den Baum nicht im Wald.

lg
My

Grüsse an alle…