[Modul] FritzBox (Ersatz für FritzBox-Project)

Das einzigste was sich nach dem letzten Update verändert hat ist im Fritz!Box IO die URL.
Diese stand plötzlich auf http://fritz.box
Hab das jetzt wieder auf die IP geändert und schon gehts.

Danke für den Stupser

Hallo Michael,

ich habe gerade die Firmware meiner Fritzbox aktualisiert. Nach dem Neustart der Fritzbox sieht auch alles gut aus. Aber ca. 10 Minuten danach kommen jede Menge Fehlermeldungen und die Instanzen stehen in Fehler:

Screenshot 2023-05-12 180352

Im Logfile zu finden:

12.05.2023 18:01:44 | 30751 | ERROR   | FritzBox IO          | Error on subscribe (HTTP/1.1 412 Precondition Failed)

HTTP/1.1 412 Precondition Failed

Connection: close

Content-Length: 58

Content-Type: text/html



<html><body><h1>412 Precondition Failed</h1></body></html>
12.05.2023 18:01:44 | 00000 | CUSTOM  | PHP                  | Error: User Warning: Error on subscribe (Result)

/upnp/control/wlanconfig1
   Error in Script C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on Line 220
  137 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   67 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
  220 in modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php (call trigger_error)
  177 in modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php (call DoSubscribe)
   94 in modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php (call Subscribe)
  157 in modules\.store\de.nall.chan.fritzbox\FritzBox WLAN\module.php (call RequestAction)
    3 in C:\Windows\System32\- (call RequestAction)
12.05.2023 18:01:44 | 00000 | CUSTOM  | PHP                  | Error: Warning: 
Warning: Error on subscribe (Result)

/upnp/control/wlanconfig1 in C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on line 220

   Error in Script C:\Windows\System32\- on Line 1
  137 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
    1 in C:\Windows\System32\- (call IPS_RequestAction)
12.05.2023 18:01:44 | 20916 | ERROR   | TimerPool            | FritzBox WLAN 1 (RenewSubscription): 
Warning: 
Warning: Error on subscribe (Result)

/upnp/control/wlanconfig1 in C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on line 220
 in C:\Windows\System32\- on line 1

Erst, wenn ich die Fritzbox IO kurz deaktiviere und wieder aktiviere, läuft es wieder.

Gruß
Rainer

Ahhh… das ist bestimmt die Ursache, da dein Windows dann IPv6 benutzt hat und somit die (anfragende) IP deinen Windows nicht zu der IP in der Regel passt.
Muss mal schauen ob ich das irgendwie umgehen kann. :thinking:

Michael

Der Fehler wird nach einem Neustart der Box aktuell immer kommen; muss ich mal schauen ob ich da etwas verbessern kann.

Das finde ich komisch, eigentlich sollte die Instanz(en) sich von allein reparieren. Ohne das du den IO kurz deaktivierst.
Michael

Moin @Nall-chan,
hier habe ich auch eine Kleinigkeit die mein Logfile etwas vergrößert. In der Funktion RefreshHostList()gibt es am Ende die Stelle:

                    if ($Used) {
                        if (isset($xmlHosts)) {
                            $Mac = implode(':', str_split(substr($Ident, 3), 2));
                            $Xpath = $xmlHosts->xpath('//Item[MACAddress="' . $Mac . '"]/HostName');
                            if (count($Xpath) > 0) {
                                $Hostname = (string) $Xpath[0];
                            }
                        }
                        if ($Rename && (IPS_GetName($VarId) != $Hostname)) {
                            IPS_SetName($VarId, $Hostname);
                        }
                        $this->SetValue($Ident, false);
                        $SpeedId = $this->RegisterSubVariable($VarId, 'Speed', 'Speed', VARIABLETYPE_INTEGER, 'FB.MBits');
                        SetValueInteger($SpeedId, 0);
                        $SignalId = $this->RegisterSubVariable($VarId, 'Signal', 'Signalstrength', VARIABLETYPE_INTEGER, '~Intensity.100');
                        SetValueInteger($SignalId, 0);
                    }

und da kann es bei SetName den Fall geben das $Hostname nicht definiert ist. Warum auch immer liefert mein WLAN2 mehrere dieser Fälle. Ich habe es zu

                    if ($Used) {
//rb!                        
                    	$Hostname = 'nicht definiert';
                        if (isset($xmlHosts)) {
                            $Mac = implode(':', str_split(substr($Ident, 3), 2));
                            $Xpath = $xmlHosts->xpath('//Item[MACAddress="' . $Mac . '"]/HostName');
                            if (count($Xpath) > 0) {
                                $Hostname = (string) $Xpath[0];
                            }
                        }
                        if ($Rename && (IPS_GetName($VarId) != $Hostname)) {
                            IPS_SetName($VarId, $Hostname);
                        }
                        $this->SetValue($Ident, false);
                        $SpeedId = $this->RegisterSubVariable($VarId, 'Speed', 'Speed', VARIABLETYPE_INTEGER, 'FB.MBits');
                        SetValueInteger($SpeedId, 0);
                        $SignalId = $this->RegisterSubVariable($VarId, 'Signal', 'Signalstrength', VARIABLETYPE_INTEGER, '~Intensity.100');
                        SetValueInteger($SignalId, 0);
                    }

geändert. Die hinterlegte MAC-Adresse gibt es bei meinem aktuellen Geräten anscheinend nicht mehr. Vor einem Jahr habe ich PiHole als DNS-/DHCP-Server eingerichtet. Ich schätze die Fritz hat noch irgendwo alte Infos die mein PiHole nicht hat.

Ralf

Danke für den Fund.
Fix kommt mit dem nächsten Update.

Hallo @Nall-chan
ich habe eben bemerkt, dass das gleiche Problem wieder da ist.
Kann aber auch nicht sagen seit wann das so ist.

Kann ich dir mit irgendwelchen neuen Daten helfen?
edit:
mir ist gerade aufgefallen, dass die Tabelle zweimal kurz hintereinander aktualisiert wird. Zu erst mit der Aktualisierung der Variablen der eigenen Instanz und kurz danach, wenn die Variablen der WLAN 1 Instanz aktualisiert werden, noch einmal.

Gruß
Rainer

Das sollte nicht passieren. Hast du einmal die Konfig der Instanzen geprüft? Nicht das hier zweimal das gleiche WLAN ausgewählt wurde?

Das aktualisieren der Tabellen und der HostVariablen kann auch außerhalb vom Intervall und zeitgleich mit anderen Instanzen erfolgen, weil die der IO dann eine neue Host-Tabelle an die Instanzen verteilet.
Michael

Alle drei WLAN Instanzen haben ihr WLAN zugewiesen, keines ist doppelt. Die Anzahl der angemeldeten Geräte passt auch immer. Leider sind aktuell in keinem WLAN Geräte angemeldet, so dass ich keinen Unterschied erkennen kann. Mir ist aber aufgefallen, dass in der Tabelle für die Variablen für Netzwerkgeräte im Konfigurator überall noch Geräte vorhanden sind, auch im Gäste-WLAN, in dem sie noch nie angemeldet waren und das auch schon seit längerem deaktiviert ist.
Gruß
Rainer

Ja, musst du selbst aufräumen.
Steht extra in Rot im Beitrag zur 0.77

Michael

Ok, das habe ich überlesen. Lag wohl auch daran, dass ich bei den WLANs keine Variablen für die Geräte anlegen lasse und somit die Tabelle in der Konfiguration nicht gleich sichtbar ist.

Ich habe da jetzt mal alles gelöscht und werde das Verhalten mal weiter beobachten.

Gruß
Rainer

Während der Installation des FritzBox Module erscheint eine Fehlermeldung bei der Einrichtung der Discovery Instanz.
Hier die Meldung:

Habe das Modul deinstalliert, alle Einträge im Objektbaum gelöscht. Nach Fragmenten im Datenordner gesucht und umbenannt. Den Server (Windows Server 2012) neu gestartet.
Das Modul habe ich übrigens wegen mehrere Fehlen in einigen Datenpunkten deinstalliert.

hat jemand eine Idee?

Ja, im richtigen Thema schreiben :wink:

Fix dafür kommt die Tage mit der Version 0.78
Michael

Version 0.78

ist als Beta im Store online.

Michael

Hallo Michael,
ich habe mal die neue Beta installiert, bekomme aber jede menge Fehlermeldungen so ca. jede Minute:

24.05.2023 20:46:39 | 00000 | CUSTOM  | PHP                  | Error: User Warning: UPnPError(401)

#0 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php(358): FritzBoxModulBase->SendEx('GetStatistics', 1, Array)
#1 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(89): FritzBoxModulBase->Send('GetStatistics')
#2 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(153): FritzBoxWANDSLLink->GetStatistics()
#3 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(58): FritzBoxWANDSLLink->UpdateInfo()
#4 C:\Windows\System32\-(3): FritzBoxWANDSLLink->RequestAction('RefreshInfo', true)
#5 {main}

Invalid Action
   Error in Script C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on Line 388
  137 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   67 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
  388 in modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php (call trigger_error)
  358 in modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php (call SendEx)
   89 in modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php (call Send)
  153 in modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php (call GetStatistics)
   58 in modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php (call UpdateInfo)
    3 in C:\Windows\System32\- (call RequestAction)
24.05.2023 20:46:39 | 00000 | CUSTOM  | PHP                  | Error: Warning: 
Warning: UPnPError(401)

#0 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php(358): FritzBoxModulBase->SendEx('GetStatistics', 1, Array)
#1 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(89): FritzBoxModulBase->Send('GetStatistics')
#2 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(153): FritzBoxWANDSLLink->GetStatistics()
#3 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(58): FritzBoxWANDSLLink->UpdateInfo()
#4 C:\Windows\System32\-(3): FritzBoxWANDSLLink->RequestAction('RefreshInfo', true)
#5 {main}

Invalid Action in C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on line 388

   Error in Script C:\Windows\System32\- on Line 1
  137 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
    1 in C:\Windows\System32\- (call IPS_RequestAction)
24.05.2023 20:46:39 | 46329 | ERROR   | TimerPool            | FritzBox WAN DSL-Verbindung 1 (RefreshInfo): 
Warning: 
Warning: UPnPError(401)

#0 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php(358): FritzBoxModulBase->SendEx('GetStatistics', 1, Array)
#1 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(89): FritzBoxModulBase->Send('GetStatistics')
#2 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(153): FritzBoxWANDSLLink->GetStatistics()
#3 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN DSL Link\module.php(58): FritzBoxWANDSLLink->UpdateInfo()
#4 C:\Windows\System32\-(3): FritzBoxWANDSLLink->RequestAction('RefreshInfo', true)
#5 {main}

Invalid Action in C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on line 388
 in C:\Windows\System32\- on line 1

wie komme ich da wieder raus??
bis auf Telefonie, Anrufmonitor und DHCP Server werden alle Werte aktualisiert.

Gruß
Rainer

Was für eine Box hast du? Kabel DSL?
Schalte den Timer bei der FritzBox WAN DSL Link Instanz aus, dann sind die Meldungen erstmal weg.
Michael

eine 7590 AX mit DSL

Danke, das hat erstmal geholfen.
Brauchst du noch was zur Fehlersuche?

Gruß
Rainer

Toll wäre die Datei igddslSCPD.xml
Die sollte im Symcon Datenordner unter FritzBoxTemp/InstanzID liegen.
Michael

Habe sie gefunden:
igddslSCPD.xml (4,0 KB)

Gruß
Rainer

Hi,
ich meine heute gab es ein Update und seitdem:

25.05.2023 09:48:30 | 32662 | ERROR   | TimerPool            | FritzBox WAN DSL-Verbindung 1 (RefreshInfo): 
Warning: 
Warning: UPnPError(401)
#0 /var/lib/symcon/modules/.store/de.nall.chan.fritzbox/libs/FritzBoxBase.php(358): FritzBoxModulBase->SendEx('GetStatistics', 1, Array)
#1 /var/lib/symcon/modules/.store/de.nall.chan.fritzbox/FritzBox WAN DSL Link/module.php(89): FritzBoxModulBase->Send('GetStatistics')
#2 /var/lib/symcon/modules/.store/de.nall.chan.fritzbox/FritzBox WAN DSL Link/module.php(153): FritzBoxWANDSLLink->GetStatistics()
#3 /var/lib/symcon/modules/.store/de.nall.chan.fritzbox/FritzBox WAN DSL Link/module.php(58): FritzBoxWANDSLLink->UpdateInfo()
#4 /-(3): FritzBoxWANDSLLink->RequestAction('RefreshInfo', true)
#5 {main}
Invalid Action in /var/lib/symcon/modules/.store/de.nall.chan.fritzbox/libs/FritzBoxBase.php on line 388
 in /- on line 1

Ralf