Q & A zum FritzBox-Project

Mhhh… hatte ich die Vermutung dass die SOAP-Implementierung in PHP mit dem Keep-Alive ein Problem hat.
Nicht dass jetzt du nach x Stunden Laufzeit wieder ein (neues / anderes / altes) Problem hast.

So richtig fehlt mir noch eine Idee. Sonst muss ich mir die SOAP-Anfragen und TCP-Verbindungen mit dem Kabelhai anschauen.

Michael

Ich beobachte weiter und berichte :wink:
Wenn DU was zu Testen hast, melde Dich einfach bei mir - bin zu allen Schandtaten bereit!

Danke Heiko

Hallo Michael,

vielen dank für deine Hilfe.

Ich habe in das Script “VORLAGE - User-Script für Anrufmonitor“ folgendes eingefügt.

$type = $_IPS["CALL_Typ"];
$name = $_IPS["CALL_Name"];
$nummer = $_IPS["CALL_Remote"];
$dauer = $_IPS["CALL_ConnectTime"];

// Meldungsanzeige Info
$ips_info = 46682 /*[Scripte & Variablen\Meldungen & Push-Nachrichten\Meldungen\Meldungen empfangen\Meldungen Info empfangen]*/;

switch($_IPS["CALL_Status"]) {  // Auf Index CALL_Status prüfen -> mit [" "]

    case "RING": // Auf Wert RING prüfen -> ohne [ ] und hinter den Wer kommt kein ; sondern ein :
	IPS_RunScriptEx ($ips_info , Array("type" => "push", "gruppe" => "telefon" , "nachricht" => "Eingehender Anruf von $name - $nummer"));
	
break;

    case "CALL": // Auf Wert CALL prüfen -> ohne [ ] und alles Großbuchstaben und hinter den Wer kommt kein ; sondern ein :
	IPS_RunScriptEx ($ips_info , Array("type" => "push", "gruppe" => "telefon" , "nachricht" => "Ausgehender Anruf an $name - $nummer"));

break;

   case "DISCONNECT":  // Auf Wert DISCONNECT prüfen -> ohne [ ]   und hinter den Wer kommt kein ; sondern ein :
	IPS_RunScriptEx ($ips_info , Array("type" => "push", "gruppe" => "telefon" , "nachricht" => "Anruf beendet! Dauer $dauer Sekunden."));

break;

}

Als Ergebnis erhalte ich auch meine gewünschte Nachricht.
Leider funkioniert das nur ein paar Stunden. Dann scheint es, als würde der Anrufmonitor einschlafen.

Einstellungen im User Config Script:

########################## 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',false); 				// 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',0);   		   // 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',0); 	   	// Storage Informationen der Fritzbox alle 60 Sekunden lesen.
define('FB_Intervall_WebDav',0);   	   // 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',3600);// Aktuelle Bandbreite alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_WAN_Rules',0);    	// Portweiterleitungen alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_DSL',0);  		   // Status DSL-Modem alle 300 Sekunden lesen. 0 = deaktiv.
define ('FB_Intervall_MyFritz',0); 	   		// 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',3600);			// Daten des DHCP-Servers wird alle 120 Sekunden gelesen. 0 = deaktiv.

// Netzwerkgeräte-Übersicht
define ('FB_Intervall_HOST',300);			// Liste der Netzwerggeräte wird alle 120 Sekunden gelesen. 0 = deaktiv.
define ('FB_HOST_Tabelle',true); 			// Soll eine tabellarische Ansicht erstellen werden für alle Netzwerkgeräte ? ACHTUNG! Eigene Config-Datei für Layout vorhanden. (Host-Tabelle-Config)

// 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',0);				// 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 );		// 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)

Das Problem kann ich für kurze Zeit lösen in dem ich über mein Telefon die #965 anrufe oder das User Config Script erneut ausführe.

Hast du eine Idee was noch ändern könnte?

Beste Grüße
Kai

Die Fritzbox sendet die Daten aktiv an IPS.
Dazu gibt es einen ClientSocket in IPS unter IO-Instanzen.

Wird der irgendwann rot?
Dann trennt die Fritzbox die Verbindung.
IPS versucht dann alle 60 Sekunden die Verbindung wieder aufzubauen.
Dazu sollten sich dann aber auch Einträge im IPS Logfile finden.

Aktiv macht mein Script da nix.

Michael

Hallo Michael,

Wird der irgendwann rot?
Dann trennt die Fritzbox die Verbindung.
IPS versucht dann alle 60 Sekunden die Verbindung wieder aufzubauen.
Dazu sollten sich dann aber auch Einträge im IPS Logfile finden.

Der ClientSocket wird nicht rot. Alles scheint normal zu laufen.

Gruß
Kai

Dann liegt es aber an deiner Fritzbox wenn sie über die offene Verbindung nichts sendet.
Michael

Hallo Michael,

ich habe jetzt eine weitere FB im internen Netz installiert und das Script FB-Projekt eingerichtet.
Hat auch soweit alles wie gewünscht geklappt, allerdings wurden keine Variablen für das Gastnetz angelegt.

Hast Du eine Idee woran es liegen könnte?

Hast du die Config dafür angepasst?
Hat die Box zwei oder drei Wlan’s ?
Michael

Ich denke ja, oder muss was besonders angepasst werden?

Jetzt fragst Du was :o , ist eine FB 7490, ich denke 3 Wlans. Bei der „externen“ Box wurde das Gastnetzt auch angelegt und die ist auch eine 7490.

Was passiert wenn du das WLAN Script manuell ausführst? Fehlermeldungen?
In der Config gibt es FB_WLAN_24 , _5 und _G für die drei Netze. Dahinter immer eine Nummer von 1-3.
Schau bitte im FritzOs nach, welche Wlan’s wirklich zur Verfügung stehen. Wenn es nur zwei sind, dann FB_WLAN_5 auskommentieren und bei FB_WLAN_G eine 2 eintragen.
Michael

Danke,

schaue ich mir morgen mal an.
Mir fällt gerade ein, evtl. liegt auch an der BETA die auf der Box ist.

Hi Nall-chan,

hatte heute eine merkwürdige Fehlermeldung im Status-Log:


23.03.2018 05:05:00 | ScriptEngine | Ergebnis für Ereignis 39941
<br />
<b>Warning</b>:  Variable Type and Profile Type do not match! in <b>/var/lib/symcon/scripts/26852.ips.php</b> on line <b>406</b><br />
<br />
<b>Warning</b>:  Variable Type and Profile Type do not match! in <b>/var/lib/symcon/scripts/26852.ips.php</b> on line <b>406</b><br />

Das ist das Script zum „Auslese-Script WAN Geschwindigkeit“. Habe dann mal kurz geforscht und den Fehler bei dem Ausruf gefunden


	UpdateIPSvar($parent,'TotalMBytesSent',$result['NewTotalBytesSent']/1024/1024,2,true,8,0,'FB.MByte','Gesendet seit Reconnect');
	UpdateIPSvar($parent,'TotalMBytesReceived',$result['NewTotalBytesReceived']/1024/1024,2,true,7,0,'FB.MByte','Empfangen seit Reconnect');

Beide Variablen sind Floats und sollen ein Int-Profil bekommen?!?

Was für’s ChangeLog :wink:

Gruß Pitti

FB.Mbyte ist bei mir ein Profil für Float.
FB.Mbits ist Int.
Michael

Sehr merkwürdig,

Float:

[ul]
[li]FB.kbs
[/li][li]FB.Speed
[/li][/ul]

Integer:

[ul]
[li]FB.kBit
[/li][li]FB.Mbits
[/li][li]FB.Mbyte
[/li][/ul]

So ist das bei mir!

Hier der Auszug aus Deinem Install-Script:


			if (!IPS_VariableProfileExists(§\'FB.MByte§\'))
			{
				IPS_CreateVariableProfile(§\'FB.MByte§\',1);
				IPS_SetVariableProfileDigits(§\'FB.MByte§\',2);
				IPS_SetVariableProfileText(§\'FB.MByte§\',§\'§\',§\' MB§\');
				echo "  FB.kBit erzeugt:".PHP_EOL;
			}

IPS_CreateVariableProfile(§‚FB.MByte§‘,1); = Integer Profile?

Oder sehe ich was falsch?

Das sieht falsch aus. Ebenso die Echo Ausgabe. :slight_smile:
Schau ich mir an.
Michael

Hi,

ich nutze ja auch schon lange das wirklich tolle Tool. Leider hab ich schon seit Anfang an ein Problem und das ist auch mit der aktuellen 1.09er Version noch vorhanden:

Ich hab eine Nummer für das Fritzfax eingerichtet. Wenn ich darüber ein Fax versende wird das auch im Anrufmonitor angezeigt aber es wird dann nie mehr daraus gelöscht.

Alle anderen anrufe die ich via Telefon durchführe werden eingetragen und wenn aufgelegt wird auch wieder gelöscht, so wie es sein soll.

Was könnte das sein und wo kann ich mit den Nachforschungen starten?

PS: Im Anrufmonitor der Fritzbox sehe ich, dass der Fax Anruf etwa 47 Sekunden gedauert hat.

PPS: Die Anzeige im Popoup, dass jemand abgenommen hat kommt übrigens erst, wenn die Gegenstelle aufgelegt hat. Dann erscheint der Eintrag in der Anruferliste des Monitors. Das scheint ja schon mal falsch zu sein.

Guten Morgen,

ich hab bei mir IPS Logger nebenbei laufen, der mir Fehler und Verbindungsprobleme aufzeigt. Dabei bekomme ich in letzter Zeit 2 Fehlermeldungen, die sich auf 2 Skripte im FB Projekt beziehen:



Das ganze FB Projekt zu löschen und erneut anzulegen habe ich schon gemacht. Aber es ändert nur die IDs der Skripte. Die Fehlende angesprochene Instanz bleibt immer gleich.

Vielleicht kann mir das jemand helfen, ich weiss keinen Rat mehr. Die Meldungen kommen sporadisch, zumindest konnte ich noch kein System erkennen. Dachte anfangs dass es immer auftritt wenn sich ein Handy ins WLAN loggt, ist aber wohl doch nicht so.

Gruß oekomat

Die erste bedeutet, dass du die Config nicht angepasst hast.
Das betrifft die ID des WebFront- Configurators für die Benachrichtigung.
Die zweite muss ich mir noch im Detail ansehen.
Scheint aber daran zu liegen, dass die Telefonbücher der Fritzbox nicht geladen sind/wurden.

Michael

Hallo Michael, danke für deine Hinweise. Den ersten konnte ich damit direkt erledigen. Der zweite ist dann bisher nicht mehr aufgetaucht.

Gruß oekomat

Gesendet von meinem SM-G930F mit Tapatalk