Q & A zum FritzBox-Project

wo finde ich die einstellung?
im User-Config?

define ('FB_DEBUG',false);                 // VIEL VIEL VIEL mehr Logging. Lieber nicht einschalten :)
define ('FB_DEBUG_ERROR',false);                 // Nur ERROR Logging.

Gruß

Hallo Michael,

kann man unter Telefonie die eigenen Rufnummern überwachen, ob sie am Voip-Server angemeldet sind.
Habe dazu nichts gefunden.
Hintergrund - bei uns fällt mehrfach die Telefonie aus. VDSL ist aber ok.
Ich möchte wenn keine Rufnummern registriert sind, einen Neustart der FB veranlassen.

Danke.

Andreas

Hallo Michael,

ich benutze kein Gäste-WLAN und habe deshalb in der User-Config die Definition von FB_WLAN_G auskommentiert. Das bringt mir aber die oben genannte Fehlermeldung, vermutlich in der Funktion 'FB_Decode_Event im Script ‚Event Receiver‘.

Grüße, Gerhard

Ich meine das geht, wie leider vieles bei Telefonie, nicht.

Das ist ein toller Fund :slight_smile:
Auf jedenfall ein Bug, dauert aber etwas bis ich ein neue Update bereitstelle.
Du kannst aber sonst einfach die vier Zeilen auskomentieren:


		case "/upnp/control/wlanconfig".FB_WLAN_G:
			IPS_RunScript(32583 /*[Hardware\FritzBox Project\Scripte\Aktions & Auslese-Script WLAN]*/ );
			// User Callback Script.
			break;

Michael

Hallo Michael,

habs auskommentiert. Das reicht aber noch nicht: für den Eventreceiver bekomme ich noch eine Fehlermeldung: 'Undefined offset: 1 on line 40 string(0) „“ ’

Weitere Meldungen ‚Instanz für Event nicht gefunden:‘ und ‚Script für Event nicht gefunden:‘. Hinter diesen Meldungen steht allerdings nichts, was mir jetzt weiterhelfen würde.

Grüße, Gerhard

Hallo zusammen,

ich habe gerade das FritzBox-Projekt problemlos installiert.

Nun würde ich gerne über IPSView verschiedene Dinge ein- und ausschalten.

Zum testen habe ich ein Script angelegt mit folgendem Inhalt.

IPS_RunScriptEx(20913 /*[Scripte\Aktions & Auslese-Script NAS]*/,array('SENDER'=>'RequestAction','IDENT'=>'FTPEnable','VALUE'=>false)); 

oder

IPS_RunScriptEx(20913 /*[Scripte\Aktions & Auslese-Script NAS]*/,array('SENDER'=>'RequestAction','IDENT'=>'SMBEnable','VALUE'=>false)); 

Wenn ich das Script ausführe, sollte sich dann die „NAS-Funktion“ nicht ausschalten?
Tut sie leider nicht. Hab ich irgendwas vergessen?

Vielen Dank und viele Grüße

Markus

Moin, habe das FrtzBox Projekt mit unserer 7390 zum Laufen gebracht.
Danke für das tolle umfangreiche Projekt.
Möchte jetzt eine zweite Box 7590 anschliessen, wie muss ich da vorgehen ?

Danke für eure Hilfe, Gruß GMilf

Und ich frage erneut danach :slight_smile:

Gleiche antwort:

Also geht nicht, wenn es der Anrufmonitor nicht signalisiert.
Michael

Ok dachte nicht, dass das auf mich bezogen war… Hatte den Inhalt fachlich nicht zusammen gebracht sorry :slight_smile:

Danke dennoch für das tolle Script!

Hallo Michael,

hier im Thread wurde ja schon vereinzelt das Problem mit den „vermehrten“ Fehlermeldungen gepostet. Bei mir waren das im Laufe des Tages mal mehr mal weniger, also es gab Tage da war das Log im Minutentakt voll. Gestern war mal wieder so ein Tag und auch das Rausschmeißen von WLAN-Geräten in der Fritzbox hat nicht geholfen (war sonst so ein Maßnahme die Linderung brachte).

Das Hauptproblem hat das „Aktions & Auslese-Script Host“ bereitet. Gestern habe ich dann mal ein kleines Script geschrieben das die gleiche Aktion ausführt aber alles mit „direkten“ Aufrufen, also nicht so schön aufgeteilt in Funktionen wie in Deinem Projekt. Da hat dann das Abholen der Infos nur max. 5 Sekunden gedauert. Deinem Script lief bei mir immer genau 2 Minuten und meldete dann READ Error.
Jetzt habe ich mal Deine Funktion schnell umgeschrieben und seit diesem Moment habe ich bisher NULL Fehlermeldungen, also auch alle anderen Sachen laufen jetzt durch, welche auch sporadisch Fehler gemeldet hatten. Ich hänge mal die Änderungen hier ran - kannst Du Dir das erklären?


# Host-Tabelle der FritzBox lesen und HTML-Tabelle bauen
function FB_GetHosts()
{
	global $_IPS;
	$service['uri'] = 'urn:dslforum-org:service:Hosts:1';
	$service['location'] ='http://'.FB_HOST.':'.FB_PORT.'/upnp/control/hosts';
	$ident = FB_GetIdent("/upnp/control/hosts");
	$parent = FB_GetOrCreateDummy($ident,'Hosts');
	$action="GetHostNumberOfEntries";

//NEW	
	$client = new SoapClient( 
	    null, 
	    array( 
	        'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/hosts", 
	        'uri'        => "urn:dslforum-org:service:Hosts:1", 
	        'noroot'     => True, 
	        'login'      => "", 
	        'password'   => "" 
	    ) 
	); 	
//NEW	
	
	$HostNumber = $client->GetHostNumberOfEntries(); //FB_SoapAction($service,$action);
	if ($HostNumber === false) return;
	// ini_set('max_execution_time', (int)ini_get('max_execution_time')+($HostNumber*5));
	UpdateIPSvar($parent,'HostNumberOfEntries',$HostNumber,1,true, -1,0,'','Anzahl bekannter Geräte');
	// $action="GetGenericHostEntry";
	$onlinecounter=0;
	for ($i=0;$i< $HostNumber; $i++)
	{
		$result = $client->GetGenericHostEntry(new SoapParam($i,'NewIndex')); 
		//$param = new SoapParam($i,"NewIndex");
		//$result =  FB_SoapAction($service,$action,$param);
		//if ($result === false)
		//{
			//IPS_Sleep(20);
			//$result =  FB_SoapAction($service,$action,$param);
		//}
		if ($result === false)
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
			else IPS_LogMessage("FritzBox","Error ".$i." READ of ".$service['location']."->".$action);
			return;
		}
		if ($result["NewMACAddress"] == '') continue;
		$ident = strtoupper(FB_GetIdent($result["NewMACAddress"]));
		$id = @IPS_GetObjectIDByIdent($ident,$parent);
		if ($id ==0)
		{
			$id = FB_GetOrCreateVariable($parent,$ident,$result["NewHostName"]." (".$result["NewIPAddress"].")",0,"~Switch");
		}
		$result['Name'] = IPS_GetName($id);
		SetValueBoolean($id,(bool)$result["NewActive"]);
		if ((bool)$result["NewActive"])		$onlinecounter++;
		if (defined("FB_HOST_Tabelle") AND (FB_HOST_Tabelle) and ((bool)$result["NewActive"])) $Data[] = $result;
	}
	UpdateIPSvar($parent,'Devices',$onlinecounter,1,true,-2,0,'','Devices online');
	if (defined("FB_HOST_Tabelle") AND (FB_HOST_Tabelle))
	{
		require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(52082 /*[Systeme\FritzBox 7490\Scripte\Tabellen-Funktionen]*/ ));
		require(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(23282 /*[Systeme\FritzBox 7490\Config\Host-Tabelle-Config]*/ ));
		$HTMLData=FB_GetTableHeader($Config);
		$pos =0;
		if (isset($Data))
		{
			foreach ($Data as $Line)
			{
//				$Line['NewX_AVM-DE_Speed'] =$Line['NewX_AVM-DE_Speed'].' MBit/s';
//				$Line['NewX_AVM-DE_SignalStrength'] = $Line['NewX_AVM-DE_SignalStrength'].' %';
				$HTMLData .='<tr style="'.$Config['Style']['BR'.($pos % 2 ? 'U':'G')].'">';
			   foreach($Config['Spalten'] as $feldIndex => $value)
				{
					$HTMLData .= '<td style="'.$Config['Style']['DF'.($pos % 2 ? 'U':'G').$feldIndex].'">'.(string)$Line[$feldIndex].'</td>';
				}
			   $HTMLData .= '</tr>'.PHP_EOL;
		   	$pos++;
			}
		}
		$HTMLData .= FB_GetTableFooter();
		UpdateIPSvar($parent,'Tabelle',$HTMLData,3,true, -3,0,'~HTMLBox','Online:');
	}
}

Ciao Heiko

Hallo,

Das reicht aber noch nicht: für den Eventreceiver bekomme ich noch eine Fehlermeldung: 'Undefined offset: 1 on line 40

ich habe seit der Umstellug auf IPS 5.0 den gleiche Fehler. Was kann man dagegen tun ???

Gruß Proxima

Hallo,
bin Anfänger und habe nix gefunden darun die Frage:
Was muss ich Verlinken um die Anruferliste ins WB zu bekommen?
Habe die 1.09.
Die Beispiel/Visualisierung funktioniert soweit.

Danke für die Hilfe

Gruß Rüdiger

Unterhalb des Projektes gibt es das Dummy Modul „Anruferliste“, darunter befinden sich 3 vordefinierte Variablen für die konfigurierbaren Anruferlisten (bei mir FAMILY, TOCHTER, DUMMY).

Einfach im WF ein Link auf eine oder mehrere dieser Variablen setzen!

Ciao Heiko

Oder die Vorlagen Links verschieben :wink:
Michael

@Michael: hattest Du meinen Post oben gesehen und eine Meinung dazu? Seit dem läuft alles komplett fehlerfrei!

Ciao Heiko

Ich habe es gelesen, bin aber bis nächstes Wochenende unterwegs und somit noch keine Zeit gehabt mich weiter mit dem Thema zu befassen.
Michael

Aha dann ist da der Fehler.
Das Modul gibt es bei mir nicht.
Nur Anrufbeantworter, Anrufermonitor dann DHCP.
Liegt wohl an einem Fehler bei der Installation.
Ich suche mal weiter.

Gruß Rüdiger.

Leider ich auch …

das steht in Zeile 40

$EventData = FB_Decode_Event($uri,$data[1]);

Hallo,
ich habe nach meiner Migration auf IPS5 versucht, das FritzBox-Projekt von Version 1.07 auf Version 1.09 zu aktualisieren.

Vielleicht übersehe ich einen wesentlichen Punkt:

Ich habe:
1.) ein neues Skript angelegt (an irgendeiner Stelle im Objektbaum)
2.) den Inhalt des ZIPs der 1.09er Version in das angelegte Skript per „Import“ eingefügt und
3.) das Skript ausgeführt.

Die Ziel WFC habe ich auf „0“ belassen.

Nun bekomme ich folgende Fehlermeldung beim Ausführen:

Fatal error: Uncaught Error: Call to undefined function AusleseScriptHardwareInformationen11475 /[Hardware\FritzBox Project\Scripte\Auslese-Script Hardware Informationen]/() in /var/lib/symcon/scripts/17001.ips.php:649
Stack trace:
#0 /var/lib/symcon/scripts/17001.ips.php(375): Objekteanlegen(Array)
#1 /var/lib/symcon/scripts/17001.ips.php(386): createObjectsTree(Array)
#2 /var/lib/symcon/scripts/17001.ips.php(386): createObjectsTree(Array)
#3 /var/lib/symcon/scripts/17001.ips.php(103): createObjectsTree(Array)
#4 {main}
thrown in /var/lib/symcon/scripts/17001.ips.php on line 649

Übersehe ich hier etwas? Muss ich das angelegte Skript an eine bestimmte Stelle kopieren?

Danke für eure Hilfe und Gruß,
Georg