diff --git a/diagnostic/index.html b/diagnostic/index.html
index 4f363bd..db3dc0f 100644
--- a/diagnostic/index.html
+++ b/diagnostic/index.html
@@ -238,7 +238,7 @@
@@ -4647,8 +4647,10 @@
const c = document.getElementById('dc-snmp-community').value.trim();
if (c) creds.snmp = { version: v, community: c };
}
+ // HTTP-Basic: Benutzer optional (manche Geraete nutzen Password-only).
const hu = document.getElementById('dc-http-user').value.trim();
- if (hu) creds.http = { user: hu, pass: document.getElementById('dc-http-pass').value };
+ const hp = document.getElementById('dc-http-pass').value;
+ if (hu || hp) creds.http = { user: hu, pass: hp };
// FritzBox: Benutzer optional (Password-only-Boxen haben keinen) — es reicht
// ein Passwort. Gespeichert wird, sobald User ODER Passwort gesetzt ist.
const fu = document.getElementById('dc-fb-user').value.trim();
diff --git a/satellite/satellite.py b/satellite/satellite.py
index 7e8954f..dd38ba1 100644
--- a/satellite/satellite.py
+++ b/satellite/satellite.py
@@ -622,8 +622,8 @@ def _do_http(action: str, params: dict) -> dict:
pass
user = params.get("user") or hcreds.get("user")
pw = params.get("pass") or params.get("password") or hcreds.get("pass")
- if user:
- auth = (str(user), str(pw or ""))
+ if user or pw: # Benutzer optional — manche Geraete nutzen Password-only-Basic-Auth
+ auth = (str(user or ""), str(pw or ""))
r = requests.request(method, url, data=params.get("body"),
headers=params.get("headers"), auth=auth,
timeout=HTTP_TIMEOUT_SEC)