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

Cooler Fund. Ist nur ein Anzeigefehler im Konfiguraor; Fix kommt beim nächsten Update.
Michael

Hallo Michael,

seit ein paar Tagen bekomme ich auch vermehrt die Meldungen:

06.05.2023 09:45:44 | 00000 | CUSTOM  | PHP                  | Error: Warning: Error 404, <HTML><HEAD><TITLE>404 Not Found (ERR_NOT_FOUND)</TITLE></HEAD><BODY><H1>404 Not Found</H1><BR>ERR_NOT_FOUND<HR><B>Webserver</B> Sat, 06 May 2023 07:45:44 GMT</BODY></HTML>


   Error in Script C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox IO\module.php on Line 384
  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
  384 in modules\.store\de.nall.chan.fritzbox\FritzBox IO\module.php (call Sys_GetURLContentEx)
  206 in modules\.store\de.nall.chan.fritzbox\FritzBox IO\module.php (call LoadAndGetData)
    3 in C:\Windows\System32\- (call ForwardData)
06.05.2023 09:45:44 | 00000 | CUSTOM  | PHP                  | Error: Warning: 
Warning: Error 404, <HTML><HEAD><TITLE>404 Not Found (ERR_NOT_FOUND)</TITLE></HEAD><BODY><H1>404 Not Found</H1><BR>ERR_NOT_FOUND<HR><B>Webserver</B> Sat, 06 May 2023 07:45:44 GMT</BODY></HTML>

 in C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox IO\module.php on line 384
RESULT:b:0;
   Error in Script C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on Line 294
  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
  294 in modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php (call SendDataToParent)
  278 in modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php (call LoadAndSaveFile)
  299 in modules\.store\de.nall.chan.fritzbox\FritzBox WLAN\module.php (call LoadAndGetData)
  148 in modules\.store\de.nall.chan.fritzbox\FritzBox WLAN\module.php (call RefreshHostList)
    3 in C:\Windows\System32\- (call MessageSink)
06.05.2023 09:45:44 | 22394 | ERROR   | KernelMT             | InstanzManager: Fehler bei Instanz #52838, Meldung VM_UPDATE: 
Warning: 
Warning: Error 404, <HTML><HEAD><TITLE>404 Not Found (ERR_NOT_FOUND)</TITLE></HEAD><BODY><H1>404 Not Found</H1><BR>ERR_NOT_FOUND<HR><B>Webserver</B> Sat, 06 May 2023 07:45:44 GMT</BODY></HTML>

 in C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox IO\module.php on line 384
RESULT:b:0; in C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on line 294

Ich finde zu dem Fehler zwar hier was in dem Thema, aber keinen Hinweis auf die Ursache bzw. auch keine Lösung.

Gruß
Rainer

Hi,
ich habe da noch einen… :wink:
die Host Tabelle von WLAN 3 (Gast) zeigt die gleichen Einträge, wie die von WLAN 1 (2,4 Ghz). Anzahl der aktiven WLAN Geräte ich aber richtig mit 0 angegeben.

Gruß
Rainer

Ist das beides die Instanz 52838?
Welche WLAN Instanzen, mit welcher Konfig hast du?
Wie viele WLAN Netzwerke hat die Box?
Und bitte einmal ein Debug der Instanz 52838, wenn du Lese Status in der Instanz-Konfig ausführst.

Hintergrund:
Die Instanz fragt nach der URL einer XML Datei mit allen WLAN-Teilnehmern an.
Anschließend wird die Datei von der Box mit dieser URL angefordert. Und das klappt bei dir nicht.
Somit scheint die URL falsch zu sein, oder ich fange da irgendwo eine falsche Konfiguration nicht ab.
Michael

habe das Debug per PN geschickt.

Gruß
Rainer

Version 0.77

ist im Store online.

Durch einen fehlerhaften Filter sind in der WLAN-Instanz des Gäste-WLAN eventuell falsche Statusvariablen der Netzwerkgeräte angelegt worden und/oder zu viele Statusvariablen in der Instanz-Konfiguration vorhanden.

Nicht benötigte Einträge müssen in der Instanz-Konfiguration manuell gelöscht werden.

Michael

Hallo @Nall-chan,
kann ich den Ordnernamen unter dem die Fritzbox Instanzen liegen umbenennen? Der wurde bei mir nun als „http://fritz.box“ angelegt, genau wie der Konfigurator?
Ebenso im Dicovery als Gerät.

Gruß
Rainer

Die kannst die Instanzen, wie immer in IPS, irgendwo platzieren und auch jedes Objekt umbenennen (auch wie immer in IPS).

Das die Kategorie Initial die Adresse anstatt die Modellbezeichnung hat, schaut nach einem Bug aus.
Michael

Hallo Michael,
ich kann seit dem letzten Update die WAN Port Weiterleitung nicht mehr schalten.

12.05.2023, 14:48:31 | PHP                  | Error: User Warning: UPnPError(600)
#0 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php(336): FritzBoxModulBase->SendEx('AddPortMapping', 0, Array)
#1 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN PortMapping\module.php(132): FritzBoxModulBase->Send('AddPortMapping', Array)
#2 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN PortMapping\module.php(177): FritzBoxWANPortMapping->AddPortMapping('0.0.0.0', 3389, 'TCP', 3389, '192.168.1.xx', true, 'MS Remotedeskto...', 0)
#3 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN PortMapping\module.php(151): FritzBoxWANPortMapping->UpdatePortMapping('192P168P1Pxx_33...', true)
#4 C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\FritzBox WAN PortMapping\module.php(49): FritzBoxWANPortMapping->EnablePortMapping('192P168P1Pxx_33...', true)
#5 C:\Windows\System32\-(3): FritzBoxWANPortMapping->RequestAction('192P168P1Pxx_33...', true)
#6 {main}
Argument Value Invalid
   Error in Script C:\ProgramData\Symcon\modules\.store\de.nall.chan.fritzbox\libs\FritzBoxBase.php on Line 366

Gruß
Jürgen

PS: PPP (DSL)

Hat wohl weniger mit dem Update zu tun, weil die Datei sich seit 4 Monaten nicht verändert hat :slight_smile:

Das ist die Fehlermeldung welche die Box liefert.
Ursache kann sein:

  • Es gibt schon eine aktive Portfreigabe auf dem gleichen externen Port.
  • Oder die Ziel-Adresse ist nicht der Symcon Host. (Es können nur Freigabe verändert werden, welche auf den Symcon Host zeigen. )

Ansonsten kannst du mit gerne noch ein Debug beim schalten zukommen lassen, dann schaue ich da noch einmal genauer drauf.
Welche FritzOS Version?

Dafür habe ich eben noch einen Bug gefunden, der verhindert das die Instanz mit großen Netzen (wie 10.x.y.z ) funktioniert.

Michael

Das ist die einzige Freigabe

Das ist die Freigabe für RDP auf Windows 10 mit IP-Symcon

7.50
Anbei das Debug vom schalten
(entfernt)

Ich habe es bei mir noch einmal ausprobiert.
Argument Value Invalid kommt dann wenn die Ziel IP nicht gleich die Symcon IP ist, von der die Anfrage kommt. Somit muss sich da etwas bei dir geändert haben.
Michael

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