Q & A zum FritzBox-Project

Hi,
ich nutze IPS 3.40 und die LiveUpdate Version ist #3782
Das ganze läuft auf Windows 10.
Danke für deine Mühen

EDIT:

Ich habe ja das Projekt 2x installiert.

1x für die FB 7390
und
1x für die FB 3490

Wenn ich das User Script manuell beim 7390 Projekt ausführe, dann kommt
„Falsche Version der User-Config verwendet. Bitte updaten !“

Dann prüfe bitte mal ob im im Ordner ext von IPS folgende Datei vorhanden ist: php_mbstring.dll
Und ob diese in der PHP.INI mit ‚extension = php_mbstring.dll‘ eingetragen ist.
Die Fehlermeldung mit mb_strlen sollte nicht auftreten, bei dieser IPS Version. (alte 4.0er hat das Problem eher mal)

Dann stimmt die installierte Version (steht im Changlog-Script unter /Scripte/ ) nicht mit deiner Config überein.
Hast du die Config wie hier beschrieben angepaßt ?
Fritz-Box Project

Zeile 134 steht bei dir bestimmt noch ‚Install1.0‘ anstatt ‚Install1.04‘. Aber du solltest auch den ‚Rest‘ anpassen/ergänzen.

Michael

Im Ordner ext von IPS ist folgende Datei leider nicht vorhanden: php_mbstring.dll

In Zeile 134 steht bei beiden USER Scripts 1.04


<?
 ##### Project Exporter Comment: Script Version Stand 12.10.2015 21:35 #####

################################################################################
##    CONFIG-SCRIPT
##
##    Wird bei einem Update NICHT überschrieben.
##
##    Bitte Installationshinweise ab ca. Zeile 100 LESEN
##
################################################################################
########################## START KONFIG  PFLICHT ###############################*/
// FritzBox Zugang:
define ('FB_HOST',"192.168.178.xxx");  			// Adresse oder DNS-Name der Fritz-Box.
define ('FB_PORT',"49000");					// Port auf dem die FritzBox angesprochen wird (LAN = 49000 /*[Objekt #49000 existiert nicht]*/, WAN 49443). WAN geht noch nicht, da hier https verwendet wird!
define ('FB_USER',"xxx");  					// root bei Verwendung des Passwortes von der Web-Oberfläsche der FritzBox. Oder Benutzername von angelegten Benutzer in der FritzBox (System/Fritz!Box-Benutzer)
define ('FB_PASS',"xxx"); 				// Passwort von der Web-Oberfläche oder des zu FB_USER gehörigen Benutzers.

// Event Receiver (Stausänderungen von der FritzBox empfangen)
define ('FB_IPS_IP',"192.168.178.xxx"); 	// IP-Adresse oder DNS-Namen von IPS. Bei DNS Namen muss sichergestellt sein das die FritzBox diesen Namen auch auflösen kann.
define ('FB_IPS_PORT',"49000"); 				// Port auf dem der ServerSocket lauscht und die Event Empfängt. Kann bei Bedarf geändert werden. FIREWALL freischalten TCP ankommend !

########################## START KONFIG Bedarf #################################
// FritzBox WLan-Eigenschaften
define ('FB_Intervall_WLAN',300);			// WLAN Status und Geräte alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_WLAN_24',"1"); 					// ID des 2,4 GHz WLAN: Normalerweise die 1
define ('FB_WLAN_5',"2"); 						// ID des 5 GHz WLAN: Bitte mit # oder // auskommentieren wenn nicht vorhanden
define ('FB_WLAN_G',"3"); 						// ID des Guest WLAN: Wenn 5 GHz Wlan vorhanden die 3, sonst bitte auf 2 ändern. Oder mit # oder // ganz abschalten.

// FritzBox WLan WebFront-Funktionen
define ('FB_WLAN_24_SWITCH',true);        // true = WLAN darf über das WebFront ein & ausgeschaltet werden. false = darf nicht.
define ('FB_WLAN_5_SWITCH',true);
define ('FB_WLAN_G_SWITCH',true);

define ('FB_WLAN_Popup',true); 				// Zeigt nach dem Aktivieren eines WLAN über das WebFront ein Popup auf diesem WebFront an mit den Zugangsdaten.
define ('FB_WLAN_QRCode_Popup',true); 		// Ergänzt das Popup um einen QR-Code zum Anmelden per Smartphone (Fritz WLAN App o.ä.).
define ('FB_WLAN_Tabelle',true); 			// Soll eine tabellarische Ansicht erstellen werden für WLAN-Einträge ? ACHTUNG! Eigene Config-Datei für Layout vorhanden. (WLAN-Tabelle-Config)

// Hardware - Informationen
define('FB_Intervall_Hardware',300);      // Hardware Informationen der Fritzbox alle 300 Sekunden lesen.
define('FB_Intervall_NTP',300);   		   // NTP-Server und Systemzeit alle 300 Sekunden lesen.
define('FB_Intervall_UPnP',60);   		   // UPnP-Status der Fritzbox alle 60 Sekunden lesen.
define('FB_Intervall_Storage',60); 	   	// Storage Informationen der Fritzbox alle 60 Sekunden lesen.
define('FB_Intervall_WebDav',60);   	   // Online-Speicher-Status der Fritzbox alle 60 Sekunden lesen.
define('FB_WebDav_Password',''); 			// Password für den Online-Speicher (wenn eingerichtet).

// WAN - Verbindung
define ('FB_Intervall_WAN',300);         	// WAN Status alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_WAN_Speed',5);		// Aktuelle Datenrate alle 5 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_WAN_Bandwidth',300);// Aktuelle Bandbreite alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_WAN_Rules',300);    // Portweiterleitungen alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_DSL',300);  		   // Status DSL-Modem alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_MyFritz',300); 	   // MyFritz-Daten alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_Remote',300); 	   // Fernzugang & DDNS alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Remote_Username',FB_USER);		// Benutzername welcher beim Schalten des Fernzuganges gesetzt werden soll. Wird nur verwendet wenn die Box diesen nicht beim auslesen übergibt.
define ('FB_Remote_Password',FB_PASS);		// Passwort welches beim Schalten des Fernzuganges gesetzt werden soll.  Kann NICHT aus der Box gelesen werden.
define ('FB_DDNS_Username','');				// Anbieter-Benutzername für Zugang bei einem DynDNS Anbieter, welcher beim Schalten der DynDNS-Funktion als genutzt werden soll. Wird nur verwendet wenn die Box diesen nicht beim auslesen übergibt.
define ('FB_DDNS_Password','');				// Anbieter-Passwort für Zugang bei einem DynDNS Anbieter (z.B. DynDNS.org). Kann NICHT aus der Box gelesen werden.

// DHCP-Server der Fritz-Box
define ('FB_Intervall_DHCP',300);			// Daten des DHCP-Servers wird alle 120 Sekunden gelesen. 0 = deaktiv.

// Netzwerkgeräte-Übersicht
define ('FB_HOST_Tabelle',true);
define ('FB_Intervall_HOST',120);			// Liste der Netzwerggeräte wird alle 120 Sekunden gelesen. 0 = deaktiv.

// FritzBox Fon Unterstützung
define ('FB_CallList',true); 					// Anruferliste aktiv. ACHTUNG! Eigene Config-Datei für Layout und Funktion vorhanden. (Anruferliste-Config)
define ('FB_Intervall_CallList',0); 		// 300 = Anruferliste wird alle 300 sekunden neu gelesen. Wird nicht benötigt wenn der Anrufmonitor verwendet wird (=0);

define ('FB_TamList',true); 					// Anrufbeantworterliste aktiv. ACHTUNG! Eigene Config-Datei für Layout und Funktion vorhanden. (Anrufbeantworter-Config)
define ('FB_Intervall_TamList',0); 		// 300 = Anrufbeantworterliste wird alle 300 sekunden neu gelesen. Wird nicht benötigt wenn der Anrufmonitor verwendet wird (=0);
define ('FB_TamList_Tabelle',true);       // Soll eine tabellarische Ansicht erstellt werden für alle aufezeichneten Anrufe ?

define ('FB_CallMonitor',true); 				// Anrufmonitor aktiv, muss in FB aktiviert sein (Per Telefon #96*5* wählen) ACHTUNG! Eigene Config-Datei für Layout und Funktion vorhanden. (Anrufmonitor-Config)
define ('FB_CallMonitor_Popup_WFC',53425 /*[WebFront IPS]*/ );
														// ID des WebFront-Konfigurators von dem WebFront wo über ein PopUp über Telefoniegespräche informiert werden soll.
														// 0 um diese Funktion zu deaktivieren (Weitere WFC-ID für PopUps können im 'Anrufmonitor-Config' eingerichtet werden.)
define ('FB_CallMonitor_Tabelle',true);   // Soll eine tabellarische Ansicht erstellt werden für alle aktiven Gespräche ?

define ('FB_FonBook',true); 			   	// Telefonbücher lesen aktiv. (Eigenes Config-Script beachten ** fehlt noch ***)
define ('FB_Intervall_FonBook',900); 		// Telefonbücher alle 900 Sekunden lesen.
define ('FB_FonBook_Directory','FritzBox'); 	// Verzeichniss welches unterhalb von '/scripts/' angelegt wird um die Telefonbücher zu cachen. Bitte IMMER nur / benutzen ! Kein abschließender / !
define ('FB_FonBook_Filename','Phonebook'); 	// Vorgabe Dateiname für die Ablage der Telefonbücher aus der FritzBox.

// Invers-Suchen für alle Phone Scripte:
define('FB_FonCache_Timeout',86400 /*[Objekt #20864 existiert nicht]*/);		// Ergebnisse der Inversuche werden in einem Cache zwischengespeichert und sind für maximal 864000 Sekunden (24h) gültig.

define ('FB_KlicktelApi',false);           // Suche von Klicktel Api nutzen. Bei true wird, egal was in den anderen Config-Files steht, immer Klicktel für die Inversuche genutzt.
define ('FB_KlicktelApiKey','');		// Unter http://openapi.klicktel.de/login registrieren; unter API eine URL, Name und Beschreibung nach Eurer Wahl eintragen und Key rauskopieren.
define ('FB_Vorwahl','');             // Eigene Vorwahl, damit die Rückwerstsuche auch funktioniert.
// Fon-DeviceID zu Namen übersetzung.
// Wird über die Anrufliste bereitgestellt und gecached;	diese Liste ist jedoch die Rückfallebene
// falls in der Anrufliste ein Gerät nicht auftaucht (z.B. die interne Faxfunktion)
$FB_Fons = array(
5 => 'internes FAX',
10 => 'DECT Gerät 1',
11 => 'DECT Gerät 2',
12 => 'DECT Gerät 3',
13 => 'DECT Gerät 4',
14 => 'DECT Gerät 5',
15 => 'DECT Gerät 6',
16 => 'DECT Gerät 7',
17 => 'DECT Gerät 8',
20 => 'VOIP Gerät 1',
21 => 'VOIP Gerät 2',
22 => 'VOIP Gerät 3',
23 => 'VOIP Gerät 4',
24 => 'VOIP Gerät 5',
25 => 'VOIP Gerät 6',
26 => 'VOIP Gerät 7',
27 => 'VOIP Gerät 8',
40 => 'AB 1 (Aufnahme)',
41 => 'AB 2 (Aufnahme)',
42 => 'AB 3 (Aufnahme)',
43 => 'AB 4 (Aufnahme)',
44 => 'AB 5 (Aufnahme)',
45 => 'AB 1 (Ansage)',
46 => 'AB 2 (Ansage)',
47 => 'AB 3 (Ansage)',
48 => 'AB 4 (Ansage)',
49 => 'AB 5 (Ansage)',
50 => 'ISDN Gerät'
);

// DEBUG aktiv
 define ('FB_DEBUG_ERROR',false);                 // Bei TRUE nur ERROR logging aktiv

############################ ENDE KONFIG #######################################
########################## START INSTALLER #####################################
if($_IPS['SENDER'] == "Execute" && $_IPS['SELF'] == 11857 /*[Kommunikation\FritzBox Project 7390\Config\User-Config]*/)
{
$_IPS['FBSOAP_Install'] = "Install1.04";
	require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(36188 /*[Kommunikation\FritzBox Project 7390\Scripte\Projekt Init]*/ ));
}
########################## ENDE INSTALLER #####################################
?>


Dann wurden die Project nicht erfolgreich geupdated.
Bitte IPS beenden, den extension Eintrag in der PHP.INI nachtragen und einmal das live Update ausführen.
Dann sollte (wenn das aus dem Kopf so richtig war :wink: ) IPS die Erweiterung installieren und laden.
Anschließend das Install-Script erneut ausführen. Jedes einmal pro FritzBox.
Michael

Hi,

hab in der PHP.ini

„extension = php_mbstring.dll“

nachgetragen.

Und 1x das LiveUpdate ausgeführt. Aber es kam zu keinem Update.

Bin ja auch auf dem aktuellsten IPS Stand.

Auch steht im ext Ordner die Datei php_mbstring.dll noch nicht mit drin…

Was ich mich noch so erinnern kann, ist die Vorgangsweise umgekehrt…
also die dll in den ext-Ordner einfügen und dann ein LiveUpdate machen… bzw. schon die richtige Version der dll nehmen

Händisch in der php.ini etwas eintragen hilft nichts, da die wohl bei jedem Neustart neu geschrieben wird.
lg,
Christian.

Aber dazu bräuchte ich ja irgendwo her diese Datei um sie in den ext Ordner zu kopieren?

Kannst du sie mir schicken?

ich weiss jetzt grad nicht, mit welcher PHP-Version 3.4 läuft… und ob eine neuere Version der dll auch funktionieren würde…

aber zb. hier kannst du dir die richtige PHP-Version runterladen, entpacken und im ext-Ordner sollte dann die php_mbstring.dll drin sein.
windows.php.net - /downloads/releases/archives/

lg,
Christian.

Dort finde ich eine „php_mbstring.lib“

Kann ich die nehmen und einfach in „php_mbstring.dll“ umbenennen?

umbenennen dürft wohl nicht gehen (kenn mich da aber auch nicht so gut aus :D)
hab grad in einem alten log nachgesehen… dürftest die 5.4.24 haben oder? das wäre folgendes ZIP-File php-5.4.24-Win32-VC9-x86.zip
und dort im Ordner ext. sollte die passende dll sein.

lg,
Christian.

Bin noch unterwegs und kann es schlecht testen.
Aber ich glaube umgekehrt war das Stichwort.
Es reichte meine ich, eine leere Datei mit den Dateinamen anzulegen und dann das LiveUpdate zu machen.
Der über schreibt es dann mit der richtigen Datei.
Michael

eine leere Datei wär ja noch einfacher :D, da hätt ich mir ab und zu auch ein bisschen Arbeit daspart :smiley:

Servus Michael,

ich will nicht drängeln, aber seit ich die vielen Fehlermeldungen habe, stürzt mir meine IPS Konsole (3.4) nun alle 1-2 Tage ab mit der Meldung, sinngemäß „out of memory, zuviele Meldungen“ oder so ähnlich.
Das hatte ich vorher tatsächlich nie. Ich kann schon noch ein wenig damit leben, aber falls Dir mal „langweilig“ ist, freu ich mich über Hilfe.

Oder ich kann noch irgendwo an IPS drehen damit ich diese Meldung unterdrücken kann? Dann könnte ich mir auch so derweil behelfen.

Vielen Dank
Sepp

Hallo,

erstmal vielen Dank für dieses überaus nützliche Script.

Gibt es hierfür schon eine Lösung?

04.01.2016 17:54:44*| PHP*| Error: Notice: Undefined index: NewIPv6DNSServer
   Error in Script C:\IP-Symcon\scripts\17980.ips.php on Line 96
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   44 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
   96 in scripts\17980.ips.php (call IPSLogger_PhpErrorHandler)

Mit freundlichen Grüßen
Kris

Leider nein, Nall chan kam leider noch nicht dazu. Alle notwendigen Infos hat er alle schon per PN bekommen, da er selbst kein aktuelles FritzOS installieren und es so nicht selbst testen kann.

Grüße,
Chris

Als Workaround einfach die betreffende Zeile mit // oder # auskommentieren.

Ich habe schon einiges bei mir geändert, leider fehlen noch 1-2 Dinge sowie ein Testlauf bevor ich das online bringen kann.
Kann leider noch ein paar Tage dauern. :frowning:
Aktuell ist heute und morgen erstmal das ‚Squeezebox-Modul‘ auf der ToDo.
Ich hoffe mal das ich (bis) zum Wochenende das Update ‚liefern‘ kann.
Es war über die Feiertage zuviel liegengeblieben :eek:

Michael

Hi,

kein Stress, ich dachte ich hätte was nicht mitbekommen ;), Vielen dank nochmals.

Mit freundlichen Grüßen
Kris

Hallo Michael,

wenn ich eine der WAN-Port-Weiterleitung im IPS per SetValueBoolean auf false setze, sollte das dann auch die Einstellung in der Box ändern?

Joachim

Natürlich nicht.
So hat IPS doch noch nie funktioniert :wink:
Du musst schon die Aktion ausführen.
Wie das geht steht am Anfang in jeden ‚Aktions-Script‘.
Michael

Hallo Michael,

vielen Dank für dieses Projekt !!

Installiert, konfiguriert, läuft.

Danke auch für die gute Doku und die Hinweise wie man selber fummeln kann.

Hat mir sicher viele Stunden geschenkt, in dennen ich nicht selber suchen und scripten musste.