Daten aus FritzBox auslesen und in HTML darstellen

Slopestyle-1

Commander
Registriert
Aug. 2008
Beiträge
2.932
Hallöchen,

ich bräuchte mal eure Hilfe, ich möchte mir auf meiner Intranetseite, die übertragenen GB unter dem Reiter Online-Zähler auslesen und auf einer HTML-Seite darstellen.
Chatgpd hat mir zwar etwas ausgespuckt, aber es scheint nichts von der FritzBox 6591 auszulesen, weis vlt jemand was da im Quellcode falsch ist oder ob es überhaupt möglich ist.

Danke.

------------------------------------
Code:
py datei

from fritzconnection import FritzConnection
import json

def get_data_usage():
    # Verbindung zur FRITZ!Box herstellen
    fc = FritzConnection(address='192.168.0.1', password='hier das passwort')
  
    # Daten abrufen
    data = fc.call_action('WANCommonIFC1', 'GetAddonInfos')
  
    # Relevante Daten extrahieren
    bytes_sent = int(data['NewBytesSent'])
    bytes_received = int(data['NewBytesReceived'])
    total_bytes = bytes_sent + bytes_received
  
    # Daten in GB umrechnen
    gb_used = total_bytes / (1024 * 1024 * 1024)
  
    return {
        'bytes_sent': bytes_sent,
        'bytes_received': bytes_received,
        'total_gb': round(gb_used, 2)
    }

# Daten abrufen und in JSON-Datei speichern
usage_data = get_data_usage()
with open('data_usage.json', 'w') as f:
    json.dump(usage_data, f)

print("Daten wurden erfolgreich abgerufen und gespeichert.")


---------------------------

html datei


Code:
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>FRITZ!Box Datenverbrauch</title>
</head>
<body>
    <h1>FRITZ!Box Datenverbrauch</h1>

    <p>Gesendet: <span id="bytesSent"></span> GB</p>
    <p>Empfangen: <span id="bytesReceived"></span> GB</p>
    <p>Gesamt: <span id="totalGB"></span> GB</p>

    <script>
        // Funktion zum Laden und Anzeigen der Daten
        function loadDataUsage() {
            fetch('data_usage.json')
                .then(response => response.json())
                .then(data => {
                    document.getElementById('bytesSent').textContent = (data.bytes_sent / (1024*1024*1024)).toFixed(2);
                    document.getElementById('bytesReceived').textContent = (data.bytes_received / (1024*1024*1024)).toFixed(2);
                    document.getElementById('totalGB').textContent = data.total_gb;
                })
                .catch(error => {
                    console.error('Fehler beim Laden der Daten:', error);
                    document.body.innerHTML += '<p>Fehler beim Laden der Daten.</p>';
                });
        }

        // Daten beim Laden der Seite abrufen
        window.onload = loadDataUsage;

        // Aktualisiere die Daten alle 1 Minuten
        setInterval(loadDataUsage, 1 * 60 * 1000);
    </script>
</body>
</html>
 
Was geht denn überhaupt von diesen Dingen?

https://pypi.org/project/fritzconnection/
Code:
   from fritzconnection import FritzConnection

    fc = FritzConnection(address="192.168.178.1", user="user", password="pw")
    print(fc)  # print router model information

    # tr-064 interface: reconnect for a new ip
    fc.call_action("WANIPConn1", "ForceTermination")

    # http interface: gets history data from a device with given 'ain'
    fc.call_http("getbasicdevicestats", "12345 7891011")
 
  • Gefällt mir
Reaktionen: dms
tollertyp schrieb:
Was geht denn überhaupt von diesen Dingen?
Wie bitte? Was meinst du?
Ergänzung ()

duAffentier schrieb:
Du willst die Daten aus der FB auslesen?
Entweder eine alterantive FW machen oder Apps nutzten!
Ansonst kann man nur ein Ablauf schreiben. Aber die Daten sind ja nicht zum auslesen gedacht.
Das Android App BoxToGo liest viel aus. Evtl daran mal halten.
Ergänzung ()

https://www.gutefrage.net/frage/fritzbox-router-datenverkehr-auslesen
Ergänzung ()

https://www.mengelke.de/Projekte/FritzBox-Tools
Ok ich teste es mal.
 
Mein Tipp wäre im IP-Phone-Forum zu fragen bzw. dort vorher zu suchen, am Besten über eine site-Search.
Slopestyle-1 schrieb:
ob es überhaupt möglich ist
Nur zur Information, ganz unabhängig von der FRITZ!Box: Wenn Du einen Benutzernamen und -Kennwort hast, ist all das Möglich, was Du auf einer Web-Oberfläche siehst. Du könntest nämlich auch einen „headless Web-Browser“ wie HtmlUnit wählen. Erfordert aber …
Slopestyle-1 schrieb:
… dass Du wirklich programmieren kannst.
 
  • Gefällt mir
Reaktionen: dms
norKoeri schrieb:
… dass Du wirklich programmieren kannst.
Jaja man kann ich ja helfen lassen, wenn es schon die Technik gibt sozusagen oder?
 
Ging mir nicht darum, dass Du zu blöd wärst, sondern das ChatGPT dazu zu blöd ist.

ChatGPT kann nicht um die Ecke denken, sondern nur das Aufgreifen, was es im Netz gibt. Weil die Web-Oberfläche einer FRITZ!Box nicht im Internet steht, kann ChatGPT nur die Ableitungen sehen, also die Arbeiten von Jenen, die das bereits programmiert und dann auch veröffentlicht haben. Das wiederum bedeutet, Du bist an deren Frameworks gebunden. Und das wiederum ist dann eine uralte FRITZ!OS-Version und kann bei der aktuellen Version scheitern.

Oder anders formuliert: Man sollte nicht versuchen gegen eine Wand zu laufen, wenn jemand einem sagt, dass dort eine Wand ist. Außer man will Aua.
 
  • Gefällt mir
Reaktionen: Slopestyle-1
  • Gefällt mir
Reaktionen: Slopestyle-1
@Slopestyle-1 ;) LoL.

Dann muss man sich durchboxen.

Sagen wir so. Mit Programmiererfahrung wird man mit Hilfe von ChatGPT schon was auf die Beine stellen können, was funktioniert. Ohne Programmiererfahrung wird es eher sehr schwer werden.
 
Zurück
Oben