You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
def __init__(self, device_config: dict) -> None:
self.components = {} # type: Dict[str, json_component_classes]
try:
self.device_config = device_config
port = self.device_config["configuration"]["port"]
path = self.device_config["configuration"]["path"]
if path is None:
path= '/'
self.domain = self.device_config["configuration"]["protocol"] + \
"://" + self.device_config["configuration"]["domain"] + \
":" + str(port) + path
except Exception:
log.exception("Fehler im Modul "+device_config["name"])
Ich hab das jetzt mal bei mir so angepasst, damit laufen zumindest VZlogger und Shelly wieder. Wobei die Port=80 Ersetzung natürlich auch schief gehen kann, wenn z.B. https:// als Protokoll angegeben ist. Was auch noch fehlt. wären Query Parameter , die mit ? hinten angehängt werden. Das macht der parse_url jetzt auch kaputt, da diese nicht ermittelt und in die Konfiguration übertragen werden. Authentifizierung mit
http://user:password@meineDomain.de/
ist ebenfalls nicht berücksichtigt. Ich hab jetzt nicht explizit geschaut, aber ich vermute bei http Modulen (und anderen auf http basierten Modulen) könnte das jetzt mit parse_url ebenfalls Probleme geben.
Wäre es nicht möglich, das durch parse_url erzeugte URL Objekt in die configuration zu übergeben und mit diesem auch den Request zu erzeugen. Ich denke der parse_url wurde eingeführt, um bei fehlerhaften Benutzereingaben einen Fehler zu werfen.
Hatte ich mir auch so überlegt. Am einfachsten ist es wohl, die einzelnen Teile (Protokoll, Host, Port) in einem Eingabefeld zu erfassen und nicht aufzuteilen. Dann könnte es mit parse_url verarbeitet werden.
Das ist ja schon so. Im parsed_url = parse_url(ip_address) kommt ja die komplette URL in der Variablen ip_address an, wird dann zerlegt, aber leider werden nicht alle Teile in die configuration übergeben. Aus den Einzelteilen wird dann über
Das Json Modul macht Probleme bei Shelly als Inverter. Es hat die Komponente path gefehlt.
Ich hab das jetzt mal bei mir so angepasst, damit laufen zumindest VZlogger und Shelly wieder. Wobei die Port=80 Ersetzung natürlich auch schief gehen kann, wenn z.B. https:// als Protokoll angegeben ist. Was auch noch fehlt. wären Query Parameter , die mit ? hinten angehängt werden. Das macht der parse_url jetzt auch kaputt, da diese nicht ermittelt und in die Konfiguration übertragen werden. Authentifizierung mit
http://user:password@meineDomain.de/
ist ebenfalls nicht berücksichtigt. Ich hab jetzt nicht explizit geschaut, aber ich vermute bei http Modulen (und anderen auf http basierten Modulen) könnte das jetzt mit parse_url ebenfalls Probleme geben.
The text was updated successfully, but these errors were encountered: