Skip to main content

Wegvallende verbinding


Hallo allen,

 

Ik probeer een oplossing te vinden voor mijn verbinding die regelmatig wegvalt om de paar minuten, en wellicht hebben jullie nog suggesties. Snelheid is niet altijd een issue en ik haal regelmatig 200Mbit/s+.

Om uit te sluiten wat het probleem kan zijn heb ik WiFi op de Zyxel (Firmware: NR53_b7) uitgeschakeld en vanaf een ethernet poort getest. Zoals de onderstaande ping test naar Google’s DNS server laat zien dat er regelmatig hoge latency en packet drops zijn.

Packet drops

 

Ondanks dat ik 5/5 balkjes heb bij 5G lijkt me dat het issue bij die verbinding ligt, dus heb ik een script gemaakt wat elke minuut informatie van de Zyxel verzameld en de latency meet:

 

Zoals je ziet lijkt hij voornamelijk op de B1 en B3 banden te zitten en vrijwel nooit op de N28 of N78 band, maar bij elke band lijkt er hoge latency te onstaan (None betekent packet drops). Ik heb verschillende ramen in mijn appartement geprobeerd en daarnaast het raam gekozen wat op de dichstbijzijnde zendmast gericht is:
https://antennekaart.nl/kaart/5g?providers=odido&zoom=16&lat=52.32596993&lng=4.86166477

 

Helaas heb ik nog geen oplossing gevonden, dus ik ben benieuwd of jullie nog ideeën hebben.

Uitgelichte reactie

24 januari 2025

@Rutger093 Goed dat je onze community hebt gevonden en je vraag hier stelt. Ik help je natuurlijk graag verder! 

Ik ben meteen gaan kijken, maar op basis van jouw gegevens in je community profiel, kan ik geen abonnement vinden. Wil je dit nog eens nagaan? 

Mocht je bij een andere provider zitten dan ben je hier natuurlijk ook hartstikke welkom om informatie in te winnen, daar staat onze community voor. Ik weet zeker dat je je antwoord hier zal vinden! 

Laat je het mij weten als je zover bent? Dan kan ik gelijk met je meekijken! 

 

11 reacties

  • is een King Poster
  • 49 reacties
  • 22 januari 2025

Dat script wil ik ook wel gebruiken op mijn modem. Kan je dat delen?


  • Auteur
  • is een Top Poster
  • 5 reacties
  • 22 januari 2025
Gerard1740 schreef:

Dat script wil ik ook wel gebruiken op mijn modem. Kan je dat delen?

  

 Zeker, bij deze. Wellicht dat je wat kleine aanpassingen moet doen gezien het voor Linux is geschreven.

#!/usr/bin/env python3

import subprocess
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# Router details
ROUTER_URL = "https://192.168.2.1"
USERNAME = "gebruikersnaam"
PASSWORD = "jouw-wachtwoord"
STATUS_URL = f"{ROUTER_URL}/CellWanStatus"

def login_to_router(driver):
    # Open the router login page
    driver.get(ROUTER_URL)
    time.sleep(2)  # Adjust based on page load time

    # Enter username and password
    username_field = driver.find_element(By.ID, "username")
    password_field = driver.find_element(By.ID, "userpassword")

    username_field.send_keys(USERNAME)
    password_field.send_keys(PASSWORD)

    # Find the login button and click it
    login_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "loginBtn"))
    )
    login_button.click()

    time.sleep(3)  # Wait for login to complete

def fetch_metric(driver, metric_name):
    # Navigate to the status page
    driver.get(STATUS_URL)
    time.sleep(2)  # Adjust based on page load time

    try:
        # Switch to iframe if necessary
        iframes = driver.find_elements(By.TAG_NAME, "iframe")
        if iframes:
            driver.switch_to.frame(iframes[0])

        # Wait for the metric to appear and fetch its value
        WebDriverWait(driver, 10).until(
            EC.visibility_of_element_located(
                (By.XPATH, f"//div[text()='{metric_name}']/following-sibling::div")
            )
        )
        metric_element = driver.find_element(By.XPATH, f"//div[text()='{metric_name}']/following-sibling::div")
        metric_value = metric_element.text.strip()
        return metric_value
    except Exception as e:
        print(f"Error fetching {metric_name}: {e}")
        return None
    finally:
        driver.switch_to.default_content()

def get_latency():
    try:
        result = subprocess.run(
            ["ping", "-c", "4", "8.8.8.8"],
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )
        if result.returncode == 0:
            # Extract the average latency from the summary
            for line in result.stdout.splitlines():
                if "rtt min/avg/max/mdev" in line:
                    avg_latency = line.split("=")[1].split("/")[1].strip()
                    return int(float(avg_latency))
        return None
    except Exception as e:
        print(f"Error getting latency: {e}")
        return None


def main():
    # Initialize the Firefox WebDriver
    options = webdriver.FirefoxOptions()
    options.add_argument("--headless")
    options.add_argument("--ignore-certificate-errors")
    driver = webdriver.Firefox(options=options)

    try:
        login_to_router(driver)
        while True:
            # Fetch metrics
            sinr = fetch_metric(driver, "SINR (dB)")
            rsrp = fetch_metric(driver, "RSRP (dBm)")
            lte_band = fetch_metric(driver, "Band")
            latency = get_latency()

            print(f"SINR: {sinr}, RSRP: {rsrp}, LTE Band: {lte_band}, Latency: {latency} ms")

            # Log metrics to a file
            with open("metrics_log.txt", "a") as log_file:
                log_file.write(
                    f"{time.strftime('%Y-%m-%d %H:%M:%S')} - "
                    f"SINR: {sinr}, RSRP: {rsrp}, LTE Band: {lte_band}, Latency: {latency} ms\n"
                )

            time.sleep(60)  # Fetch metrics every minute
    except Exception as e:
        print(f"Error: {e}")
    finally:
        driver.quit()

if __name__ == "__main__":
    main()

 


  • Auteur
  • is een Top Poster
  • 5 reacties
  • 23 januari 2025
Gerard1740 schreef:

Dat script wil ik ook wel gebruiken op mijn modem. Kan je dat delen?

 Jazeker, bij deze:

Toon inhoud
#!/usr/bin/env python3

import subprocess
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# Router details
ROUTER_URL = "https://192.168.2.1"
USERNAME = "gebruikersnaam"
PASSWORD = "jouw-wachtwoord"
STATUS_URL = f"{ROUTER_URL}/CellWanStatus"

def login_to_router(driver):
    # Open the router login page
    driver.get(ROUTER_URL)
    time.sleep(2)  # Adjust based on page load time

    # Enter username and password
    username_field = driver.find_element(By.ID, "username")
    password_field = driver.find_element(By.ID, "userpassword")

    username_field.send_keys(USERNAME)
    password_field.send_keys(PASSWORD)

    # Find the login button and click it
    login_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "loginBtn"))
    )
    login_button.click()

    time.sleep(3)  # Wait for login to complete

def fetch_metric(driver, metric_name):
    # Navigate to the status page
    driver.get(STATUS_URL)
    time.sleep(2)  # Adjust based on page load time

    try:
        # Switch to iframe if necessary
        iframes = driver.find_elements(By.TAG_NAME, "iframe")
        if iframes:
            driver.switch_to.frame(iframes[0])

        # Wait for the metric to appear and fetch its value
        WebDriverWait(driver, 10).until(
            EC.visibility_of_element_located(
                (By.XPATH, f"//div[text()='{metric_name}']/following-sibling::div")
            )
        )
        metric_element = driver.find_element(By.XPATH, f"//div[text()='{metric_name}']/following-sibling::div")
        metric_value = metric_element.text.strip()
        return metric_value
    except Exception as e:
        print(f"Error fetching {metric_name}: {e}")
        return None
    finally:
        driver.switch_to.default_content()

def get_latency():
    try:
        result = subprocess.run(
            ["ping", "-c", "4", "8.8.8.8"],
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )
        if result.returncode == 0:
            # Extract the average latency from the summary
            for line in result.stdout.splitlines():
                if "rtt min/avg/max/mdev" in line:
                    avg_latency = line.split("=")[1].split("/")[1].strip()
                    return int(float(avg_latency))
        return None
    except Exception as e:
        print(f"Error getting latency: {e}")
        return None


def main():
    # Initialize the Firefox WebDriver
    options = webdriver.FirefoxOptions()
    options.add_argument("--headless")
    options.add_argument("--ignore-certificate-errors")
    driver = webdriver.Firefox(options=options)

    try:
        login_to_router(driver)
        while True:
            # Fetch metrics
            sinr = fetch_metric(driver, "SINR (dB)")
            rsrp = fetch_metric(driver, "RSRP (dBm)")
            lte_band = fetch_metric(driver, "Band")
            latency = get_latency()

            print(f"SINR: {sinr}, RSRP: {rsrp}, LTE Band: {lte_band}, Latency: {latency} ms")

            # Log metrics to a file
            with open("metrics_log.txt", "a") as log_file:
                log_file.write(
                    f"{time.strftime('%Y-%m-%d %H:%M:%S')} - "
                    f"SINR: {sinr}, RSRP: {rsrp}, LTE Band: {lte_band}, Latency: {latency} ms\n"
                )

            time.sleep(60)  # Fetch metrics every minute
    except Exception as e:
        print(f"Error: {e}")
    finally:
        driver.quit()

if __name__ == "__main__":
    main()

 

 


Teresa van Odido
Moderator
Forum|alt.badge.img+5
  • Moderator | Internet + TV
  • 4135 reacties
  • 24 januari 2025

@Rutger093 Goed dat je onze community hebt gevonden en je vraag hier stelt. Ik help je natuurlijk graag verder! 

Ik ben meteen gaan kijken, maar op basis van jouw gegevens in je community profiel, kan ik geen abonnement vinden. Wil je dit nog eens nagaan? 

Mocht je bij een andere provider zitten dan ben je hier natuurlijk ook hartstikke welkom om informatie in te winnen, daar staat onze community voor. Ik weet zeker dat je je antwoord hier zal vinden! 

Laat je het mij weten als je zover bent? Dan kan ik gelijk met je meekijken! 

 


  • Auteur
  • is een Top Poster
  • 5 reacties
  • 24 januari 2025
Teresa van Odido schreef:

@Rutger093 Goed dat je onze community hebt gevonden en je vraag hier stelt. Ik help je natuurlijk graag verder! 

Ik ben meteen gaan kijken, maar op basis van jouw gegevens in je community profiel, kan ik geen abonnement vinden. Wil je dit nog eens nagaan? 

Mocht je bij een andere provider zitten dan ben je hier natuurlijk ook hartstikke welkom om informatie in te winnen, daar staat onze community voor. Ik weet zeker dat je je antwoord hier zal vinden! 

Laat je het mij weten als je zover bent? Dan kan ik gelijk met je meekijken! 

 

Bedankt voor het meekijken. Ik heb wat extra informatie betreft het klantnummer ingevuld.


Tommie van Odido
Moderator
Forum|alt.badge.img+9
  • Moderator | Internet + TV
  • 13604 reacties
  • 27 januari 2025

Hey ​@Rutger093, je hebt op dit moment nog de oude firmware, hierop zijn de lage banden nog niet uitgeschakeld. Bij de nieuwe firmware zijn de lage banden uitgeschakeld, zal ik het modem laten upgraden om te kijken of het dan beter gaat? 


  • Auteur
  • is een Top Poster
  • 5 reacties
  • 27 januari 2025
Tommie van Odido schreef:

Hey ​@Rutger093, je hebt op dit moment nog de oude firmware, hierop zijn de lage banden nog niet uitgeschakeld. Bij de nieuwe firmware zijn de lage banden uitgeschakeld, zal ik het modem laten upgraden om te kijken of het dan beter gaat? 

Prima, ik hoop dat dat het wat stabieler maakt.


Teresa van Odido
Moderator
Forum|alt.badge.img+5
  • Moderator | Internet + TV
  • 4135 reacties
  • 28 januari 2025

@Rutger093 Super, ik ga het voor je doorgeven! 


Tommie van Odido
Moderator
Forum|alt.badge.img+9
  • Moderator | Internet + TV
  • 13604 reacties
  • 28 januari 2025

Hey ​@Rutger093, het modem lijkt offline te zijn, dan kunnen we de update niet uitvoeren. Zou je het modem aan willen zetten en mij een seintje willen geven? Dan laat ik de update uitvoeren! 


  • Auteur
  • is een Top Poster
  • 5 reacties
  • 29 januari 2025
Tommie van Odido schreef:

Hey ​@Rutger093, het modem lijkt offline te zijn, dan kunnen we de update niet uitvoeren. Zou je het modem aan willen zetten en mij een seintje willen geven? Dan laat ik de update uitvoeren! 

@Tommie van Odido Bijzonder, want de modem was volgens mij de gehele tijd online:

Laat maar even weten of hij ondertussen bereikbaar is, of dat ik aan mijn kant wat moet doen.


Tommie van Odido
Moderator
Forum|alt.badge.img+9
  • Moderator | Internet + TV
  • 13604 reacties
  • 30 januari 2025

Hey ​@Rutger093, we kunnen hem nu wel bereiken. De update loopt! 


Reageer


Cookiebeleid

Wij gebruiken cookies om uw bezoekers ervaring te verbeteren en te personaliseren. Ga je akkoord, of ga je door op de website dan ga je akkoord met ons cookiebeleid. Meer informatie.

 
Cookie instellingen