Funktionierende Scripts für FRITZ!OS 05.50 7390

Ja, das geht.

Ich nutze die Rufumleitung für alle Anrufe auf einen AB als Klingelsperre.

$ch = curl_init("http://{$fritzbox_ip}/fon_num/rul_list.lua?sid={$SID}");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_exec($ch);

    curl_setopt($ch, CURLOPT_POSTFIELDS, ($wert == "on" ? "rub_0=on&rub_1=on&" : "rub_0=on&") . "apply=");

    curl_exec($ch);
    curl_close($ch);

Die Rufumleitung rub_0 ist für unbekannte Anrufer und bleibt daher immer „on“. :wink:

Grüße
galleto

Danke galleto,

werde ich evtl. auch nutzen, allerdings habe ich es z.Z. so gelöst das ich die Dect Telefone einzeln an- und abschalte…

Hallo,

habe auch umgestellt auf eine neue Box und habe deshalb ein paar Anpassungen machen müssen, die ich Euch nicht vorenthalten will. Vielleicht könnt Ihr was davon gebrauchen :

Die Standard-Anmeldeprozedur ist im INCLUDE „fritzbox.php“.

Timeout für das Gäste-Wlan setzen. Variablenprofil anlegen mit den Werten gem. Fritzbox-Menü, also 15,30,45,60,120,180,240,300,360,480… etc.

<?
	$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);
}

WLan Stärke setzen :

 if ($_IPS['SENDER'] == "WebFront")
 {
    SetValue(36110 /*[L A N \WLAN Stärke]*/, $_IPS['VALUE']);
    $ein=$_IPS['VALUE'];
 }
// $ein kommt über Webfront und bedeutet: 1=100%,2=50%,3=25%, 4=12%, 5=6%
 include "fritzbox.php";
 $ch = curl_init('http://fritz.box/wlan/wlan_settings.lua');
 curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&wlan:settings/power_level={$ein}");
 curl_exec($ch);
 curl_close($ch);
 

Anzahl neue Nachrichten auf AB auslesen ( Achtung ! Name des AB anpassen → Hier „Anrufbeantworter 1“ ):

// Anzahl neuer Nachrichten auf AB
$StatusPage = file_get_contents('http://fritz.box/fon_devices/tam_list.lua?sid='.$SID);
$ab=substr(strstr($StatusPage,'["Name"] = "Anrufbeantworter 1"'),0,130); // Neue Nachrichten
$ab=substr(strstr($StatusPage,'["NumNewMessages"] = '),22,4);
$ab=(int) substr($ab,0,strpos($ab,'"'));
SetValue(22539 /*[Telefon u. Internet\Anrufbeantworter\Anrufbeantworter\Anzahl neue Nachrichten auf AB]*/,$ab);

Anzahl alte Nachrichten ( bereits abgehörte ) auf AB auslesen:

// Anzahl alter Nachrichten auf AB
$ab_old=substr(strstr($StatusPage,'["Name"] = "Anrufbeantworter 1"'),0,130); // Neue Nachrichten
$ab_old=substr(strstr($ab_old,'["NumOldMessages"] = '),22,4);
$ab_old=(int) substr($ab_old,0,strpos($ab_old,'"'));
SetValue(34829 /*[Telefon u. Internet\Anrufbeantworter\Anrufbeantworter\Anzahl Nachrichten auf AB]*/,$ab_old+$ab);

Have fun !

Walter

Moin Walter,
magst Du dein fritzbox.php Skript noch dazu posten?

Danke,
Peter

Bin zwar nicht Walter.

<?

$fritzbox_ip = 'fritz.box';
$password    = 'xxxxxxx';
    
$ch = curl_init('http://' . $fritzbox_ip . '/login_sid.lua');
    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);

$session_status_simplexml = simplexml_load_string($login);
    
if ($session_status_simplexml->SID != '0000000000000000')
{
   $SID = $session_status_simplexml->SID;
}
else
{
   $challenge = $session_status_simplexml->Challenge;
   $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));

   curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua");
   $sendlogin = curl_exec($ch);
   $session_status_simplexml = simplexml_load_string($sendlogin);

   if ($session_status_simplexml->SID != '0000000000000000')
   {
   $SID = $session_status_simplexml->SID;
   }
   else
   {
      echo "Fehler: Login fehlgeschlagen";
      return;
    }
}
?>

Danke Nicht-Walter! :wink:

Hallo,

also ich stehe irgendwie auf Kriegsfuß mit den Fritzbox Scripten :o
So weit läufts, ich sehe, wenn ich in der FB kontrolliere, dass die Zeit geändert ist. Aber das Häckchen bei Aktiv fehlt :frowning:
Da fehlt mir doch sicher noch was im Script. Kann mir da bitte nochmal jemand helfen?

Blöde Frage: Hast Du nach der IPS Aktion auch den Browser im Fritzbox-Menü aktualisiert? Also, mal kurz einen anderen Punkt angewählt und wieder zurück zum ursprünglichen? Weil, sonst tut sich da gar nichts…

Gruß
Walter

Hallo Walter,

ja habe ich, die Dauer ändert sich ja auch, aber eben kein Häckchen bei Aktiv.

Wenn Du das Gäste WLAN meinst, das o.a. Skript stellt nur die Zeit ein, aktiviert/deaktiviert aber nichts. Da das Skript dafür schon einmal gepostet wurde, habe ich darauf verzichtet. Hier der Vollständigkeit halber :

include "fritzbox.php";
$wert=1; //zum Ausschalten "0"
$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_ap_enabled={$wert}");
curl_exec($ch);
curl_Close($ch);

Gruß
Walter

Hallo Walter,

das wird es wohl fast gewesen sein.
Allerdings schmeisst mir das Script jede Menge Text im Scriptausgabe Fenster raus. Weil es so viel ist hier mal ein Teil davon:

Hat sich erledigt, funktioniert. weiß aber nicht warum mir im Scripteditor der Text angezeigt wird.

Füg mal den Befehl irgendwo hinter der Deklaration von $ch ein :

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

damit wird das unterdrückt.

Gruß
Walter

Für die, die ein DECT Gerät einsetzen :

DECT Funkleistung verringern (Eco-Mode) ein oder aus :

<?
 include "fritzbox.php";
 $ein='1';  // bei AUS natürlich "0"
 $ch = curl_init('http://fritz.box/dect/dect_settings.lua');
 curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&dect:settings/EcoMode={$ein}");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_exec($ch);
 curl_close($ch);
 ?>

Gruß
Walter

Super, danke.
Habe zwar noch ein kleines optisches Problem, aber dazu melde ich mich morgen nochmal, wenn ich darf :smiley:

Aktuelle IP-Adresse ( extern ) :

$StatusPage = file_get_contents('http://fritz.box/internet/inetstat_monitor.lua?sid='.$SID);
$ip=substr(strstr($StatusPage,'["connection0:status/ip"] ='),29,14);
$ip=substr($ip,0,strpos($ip,'"'));

Verbunden seit :


$StatusPage = file_get_contents('http://fritz.box/internet/inetstat_monitor.lua?sid='.$SID);
$datum=substr(strstr($StatusPage,'["connection0:status/conntime_date"]'),40,10);
$zeit=substr(strstr($StatusPage,'["connection0:status/conntime_time"] ='),40,5);
$verbundenseit=$datum." ".$zeit;

Gruß
Walter

Hallo Walter,

gibt es was für die Onlinezeit der Kinder?
Ich habe schon einiges porbiert aber klaglos gescheitert.:

Hallo Christian,

ich habe keine Kinder, nur 'ne Katze, und die darf ins Internet so lange sie will :smiley:
Was genau schwebt Dir da vor ? Das Thema ist ja recht komplex, da man Zeitbudgets, Onlinezeiten etc. verwalten kann, und das noch für verschiedene Devices.

Hier scheint es einiges dazu zu geben :
$StatusPage = file_get_contents(‚http://fritz.box/internet/kids.lua?sid=‘.$SID);

Gruß
Walter

Ja richtig.

Unter

[1092] =>   ["user:settings/user/list(type,name,UID,hostname,today_time,timeprofile_id,ruleset_id_without_timeprofile,is_blocked,budget_time_wednesday,bpjm_filter_enabled,blacklist_enabled,whitelist_enabled,internet_ruleset_id)"] = {

gibt es diese Infos. Meine Kentnisse sind aber zu gering um das auszulesen.:frowning:

Dafür würde ich eine „richtige“ Firewall einsetzen: Sophos UTM9 zum Beispiel.

Da kann man sowas sehr granular einstellen.

Ja genau die habe ich. (KAS)

Ich möchte ja auch nicht meine Kinder „begrenzen“ - nur ein wenig Kontrolle.

Die Kinder sollten schon selber entscheiden wann es reicht.