Open Claude-Fentange opened 3 months ago
Unfortunately I don't own a GS105Ev2 but I guess the functionality could be the same as the GS108Ev2 but with 5 Ports.
Could you provide the output of "http://{ip}/switch_info.htm" so I can take a look at the table structure? If "http://{ip}/switch_info.htm" fails to open, try "http://{ip}/switch_info.cgi" and tell me which URL works.
Good morning,
I tested your sugestion,
Switch Information
Product Name GS105Ev2
Switch Name
Serial Number 3MXD175D022A8
MAC Address 80:CC:9C:96:51:53
Bootloader Version V1.6.0.2-VB
Firmware Version V1.6.0.11
DHCP Mode
Refresh
IP Address
Subnet Mask
Gateway Address
Only the http://{ip}/switch_info.cgi is working, but I have to be logged In.
Kind Regards
Claude DE PRYCK
Does this help? My GS105Ev2 shows a blank page when requesting http://{ip}/switch_info.cgi after a successful login. My GS116Ev2 shows the same (home) screen after logging in when I request http://{ip}/switch_info.cgi.
2024-07-08 18:07:17.199 INFO (SyncWorker_14) [custom_components.ckw_hass_gs108e.gs108e] [NetgearSwitchConnector.autodetect_model] called for IP=www.xxx.yyy.zzz 2024-07-08 18:07:17.200 INFO (SyncWorker_14) [custom_components.ckw_hass_gs108e.gs108e] [NetgearSwitchConnector.check_login_url] calling request for url=http://www.xxx.yyy.zzz/login.cgi 2024-07-08 18:07:17.344 INFO (SyncWorker_14) [custom_components.ckw_hass_gs108e.gs108e] [NetgearSwitchConnector.autodetect_model] passed_checks_by_model={'GS105E': {'check_login_form_rand': True, 'check_login_title_tag': False}, 'GS105Ev2': {'check_login_form_rand': True, 'check_login_title_tag': True}, 'GS108E': {'check_login_form_rand': True, 'check_login_title_tag': False, 'check_login_switchinfo_tag': False}, 'GS108Ev3': {'check_login_form_rand': True, 'check_login_title_tag': False, 'check_login_switchinfo_tag': False}, 'GS305EP': {'check_login_form_rand': True, 'check_login_title_tag': False}, 'GS308EP': {'check_login_form_rand': True, 'check_login_title_tag': False}, 'GS316EP': {'check_login_form_rand': True, 'check_login_title_tag': False}, 'GS316EPP': {'check_login_form_rand': True, 'check_login_title_tag': False}} matched_models=[] 2024-07-08 18:07:17.345 INFO (SyncWorker_14) [custom_components.ckw_hass_gs108e.gs108e] [NetgearSwitchConnector.get_login_cookie] calling request.post for url=http://www.xxx.yyy.zzz/login.cgi with login_password=860b69492f494534f01d5801fbfc7890 2024-07-08 18:07:17.507 WARNING (SyncWorker_14) [custom_components.ckw_hass_gs108e.gs108e] [ckw_hass_gs108e.get_login_cookie] [IP: 172.28.129.243] Response from switch: "[]"
GS105Ev2
GS116Ev2
Yes that is exactly the situation, the switch is correctly discovered, after setup is still "Failed to setup".
I did a tcpdump traffic dump. See below.
I get this error message: '\
I will check again in a couple of hours.
`18:55:38.181625 IP www.xxx.yyy.zzz.46148 > www.xxx.yyy.nnn.80: Flags [P.], seq 1:229, ack 1, win 32120, length 228: HTTP: POST /login.cgi HTTP/1.1 E...t.@.@.io.........D.P........P.}x...POST /login.cgi HTTP/1.1 Host: www.xxx.yyy.nnn User-Agent: python-requests/2.32.3 Accept-Encoding: gzip, deflate, br Accept: / Connection: keep-alive Content-Length: 41 Content-Type: application/x-www-form-urlencoded
18:55:38.181668 IP www.xxx.yyy.zzz.46148 > www.xxx.yyy.nnn.80: Flags [P.], seq 229:270, ack 1, win 32120, length 41: HTTP E..Qt.@.@.j).........D.P........P.}x...password=xxx
18:55:38.299626 IP www.xxx.yyy.nnn.80 > www.xxx.yyy.zzz.46148: Flags [.], seq 1:1461, ack 270, win 1460, length 1460: HTTP: HTTP/1.1 200 OK E....C@.@............P.D........P.......HTTP/1.1 200 OK Connection: close X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Content-Type: text/html
<!DOCTYPE html>
`
The other session has timed-out. The ckw-ha-gs108e integration can now communicate with the GS105E. I captured the http traffic between Home Assistant and the Netgear. See below. I changed the smaller / larger than symbols to braces {} because the editor kept on trying to parse the html tags.
19:21:40.525598 IP aaa.bbb.ccc.ddd.48626 } www.xxx.yyy.zzz.80: Flags [P.], seq 1:259, ack 1, win 32120, length 258: HTTP: GET /switch_info.htm HTTP/1.1 Host: www.xxx.yyy.zzz User-Agent: python-requests/2.32.3 Accept-Encoding: gzip, deflate, br Accept: */* Connection: keep-alive Cookie: SID=\Ob^HMoBjqxxxx 19:21:40.597490 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.48626: Flags [.], seq 1:143, ack 259, win 1460, length 142: HTTP: HTTP/1.1 404 Not found E.....@.@............P.........aP.......HTTP/1.1 404 Not found Connection: close X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff 19:21:40.610591 IP aaa.bbb.ccc.ddd.48630 } www.xxx.yyy.zzz.80: Flags [P.], seq 1:259, ack 1, win 32120, length 258: HTTP: GET /switch_info.cgi HTTP/1.1 E..*.g@.@.;............PT.......P.}x\...GET /switch_info.cgi HTTP/1.1 Host: www.xxx.yyy.zzz User-Agent: python-requests/2.32.3 Accept-Encoding: gzip, deflate, br Accept: */* Connection: keep-alive Cookie: SID=\Ob^HMoBxxxx 19:21:40.697160 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.48630: Flags [.], seq 1:1461, ack 259, win 1460, length 1460: HTTP: HTTP/1.1 200 OK E.....@.@............P......T...P....x..HTTP/1.1 200 OK Connection: close X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Content-Type: text/html Cache-Control: no-cache Expires: -1 {!DOCTYPE html} {html} {head} {meta http-equiv="Content-Type" content="text/html; charset=UTF-8"} {meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"} {title}Switch Information{/title} {link rel="stylesheet" type="text/css" href="/style.css?a1.6.0.11"} {script src="/frame.js?a1.6.0.11" type="text/javascript"}{/script} {script src="/function.js?a1.6.0.11" type="text/javascript"}{/script} {script language="JavaScript"} function getCookie(){ var aCookie = document.cookie.split(";"); for (var i = 0;i {aCookie.length;i++) { console.log(aCookie[i]); } } function selectOptions() { var dhcp_mode = document.getElementById('dhcpMode'); if (dhcp_mode.options[0].selected == true) { document.forms[0].elements.refresh.disabled = true; document.forms[0].elements.ip_address.disabled = false; document.forms[0].elements.subnet_mask.disabled = false; document.forms[0].elements.gateway_address.disabled = false; } else if (dhcp_mode.options[1].selected == true) { document.forms[0].elements.refresh.disabled = false; document.forms[0].elements.ip_address.disabled = true; document.forms[0].elements.subnet_mask.disabled = true; document.forms[0].elements.gateway_address.disabled = true; } } function dh 19:21:40.721145 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.48630: Flags [.], seq 1461:2921, ack 259, win 1460, length 1460: HTTP { var dhcp_mode = document.getElementById('dhcpMode'); if (dhcp_mode.options[0].selected == true) { document.forms[0].elements.refresh.disabled = true; document.forms[0].elements.ip_address.disabled = false; document.forms[0].elements.subnet_mask.disabled = false; document.forms[0].elements.gateway_address.disabled = false; } else if (dhcp_mode.options[1].selected == true) { document.forms[0].elements.refresh.disabled = false; document.forms[0].elements.ip_address.disabled = true; document.forms[0].elements.subnet_mask.disabled = true; document.forms[0].elements.gateway_address.disabled = true; } popUpWindown('alert','DHCP Mode','Note: Changing the protocol mode will reset the IP configuration.'); } function changeRefreshVal() { var re_fresh = document.getElementById('refresh'); if (re_fresh.checked) { re_fresh.value = "1"; } else { re_fresh.value = "0"; } } {/script} {/head} {body onload="initErrMsg('Switch Information');selectOptions();getCookie()"} {form method="post" action="/switch_info.cgi"} {table class="detailsAreaContainer"} {tr} {td}{table class="tableStyle"} {tr} {script}tbhdrTable('Switch Information', 'switchInformation');{/script} {/tr}{tr}{td class="topTitleBottomBar" colspan='2'}{/td}{/tr} {tr}{td class="paddingTableBody" colspan='2'}{table class="tableStyle" id="tbl2" style="width:728px;"} {tr} {td width='300' class="padding14Top"}Product Name{/td} {td align="center 19:21:40.721288 IP aaa.bbb.ccc.ddd.48630 } www.xxx.yyy.zzz.80: Flags [.], ack 2921, win 30660, length 0 19:21:40.767252 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.48630: Flags [.], seq 2921:4381, ack 259, win 1460, length 1460: HTTP E.....@.@............P.....iT...P.......Ev2{/td} {/tr} {tr} {td class="padding14Top"}Switch Name{/td} {td align="center" nowrap} {input type="text" name="switch_name" id="switch_name" value="" size="15" maxlength="20" onmousedown="enableImage();" onkeypress="enableImage();" /} {/td}{/tr} {tr} {td class="padding14Top"}Serial Number{/td} {td align="center" nowrap}xxx{/td} {/tr} {tr} {td class="padding14Top"}MAC Address{/td} {td align="center" nowrap}xx:xx:xx:xx:xx:xx{/td} {/tr} {tr} {td class="padding14Top"}Firmware Version{/td} {td align="center" nowrap}V1.6.0.11{/td} {/tr} {tr} {td class="padding14Top"}DHCP Mode{/td} {td align="center" nowrap} {select name="dhcpMode" id="dhcpMode" style="width:145px;" onchange="enableImage();dhcpModeChange();"} {option value="0"}Disable{/option} {option value="1" selected}Enable{/option} {/select} {input type="checkbox" id="refresh" name="refresh" value="0" style="margin-left:5px;margin-right:5px;" onclick="enableImage();changeRefreshVal()"}{span}Refresh{/span} {/td} {/tr} {tr} {td class="padding14Top"}IP Address{/td} {td align="center" nowrap} {input type="text" name="ip_address" id="ip_address" value="www.xxx.yyy.zzz" size="15" maxlength="15" onmousedown="enableImage();" onkeypress="enableImage();"} {/td} {/tr} {tr} {td class="padding14Top"}Subnet Mask{/td} {td align="center" nowrap} {input type="text" name="subnet_mask" id="subnet_mask" value="255.2 19:21:40.784993 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.48630: Flags [.], seq 4381:5140, ack 259, win 1460, length 759: HTTP E.....@.@..H.........P......T...P....T..ze="15" maxlength="15" onmousedown="enableImage();" onkeypress="enableImage();"} {/td} {/tr} {tr} {td class="padding14Top"}Gateway Address{/td} {td align="center" nowrap} {input type="text" name="gateway_address" id="gateway_address" value="xxx.xxx.xxx.xxx" size="15" maxlength="15" onmousedown="enableImage();" onkeypress="enableImage();"} {/td} {/tr} {input type=hidden name='hash' id='hash' value="6269"} {input type=hidden name='err_msg' id='err_msg' value='' disabled} {/table}{/td}{/tr} {/table}{/td}{/tr} {/table}{/form} {script} var str = CreateButtons('button','Cancel','javaScript:void(0)','btn_Cancel','off'); str += CreateButtons('button','Apply','javaScript:void(0)','btn_Apply','off'); PaintButtons(str); {/script} {/body} {/html} 19:21:46.286333 IP aaa.bbb.ccc.ddd.49534 } www.xxx.yyy.zzz.80: Flags [P.], seq 1:159, ack 1, win 32120, length 158: HTTP: GET /login.cgi HTTP/1.1 E....{@.@............~.P...r....P.}x\...GET /login.cgi HTTP/1.1 Host: www.xxx.yyy.zzz User-Agent: python-requests/2.32.3 Accept-Encoding: gzip, deflate, br Accept: */* Connection: keep-alive 19:21:46.289144 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49534: Flags [.], ack 159, win 1460, length 0 E..(..@.@..;.........P.~........P...}......... 19:21:46.350409 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49534: Flags [.], seq 1:1461, ack 159, win 1460, length 1460: HTTP: HTTP/1.1 200 OK E.....@.@............P.~........P.......HTTP/1.1 200 OK Connection: close X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Content-Type: text/html {!DOCTYPE html} {html} {head} {meta http-equiv="Content-Type" content="text/html; charset=UTF-8"} {meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"} {link rel="stylesheet" type="text/css" href="/login.css?a1.6.0.11"} {title}NETGEAR GS105Ev2{/title} {script src="/jquery.md5.js?a1.6.0.11" type="text/javascript"}{/script} {script src="/login.js?a1.6.0.11" type="text/javascript"}{/script} {script language="JavaScript"} function submitLogin() { encryptPwd(); document.forms[0].submit(); return true; } {/script} {/head} {body onload="init();changeLoginButtonStyle();"} {div id="mainArea" class="mainArea"} {div id="mainTitleArea" class="mainTitleArea"} {img class="customGraph" src="/CBU_NgrLogo.png"} {img class="factGraph" src="/CBU_IMG_ContentVisual.png"} {div class="switchInfo"}GS105Ev2 – 5-Port Gigabit Ethernet Smart Managed Plus Switch{/div} {/div} {div id="loginContainer" class="loginContainer"} {form method="post" action="/login.cgi" name="login" onSubmit="return false;"} {input id="submitPwd" name="password" type="hidden" value=""} {div id="contentArea"} {div id="loginArea" class="loginArea"} {div id="loginTitleArea"} {table} {tr} {script}tbhdrLoginTable('Login','login');{/script} {/tr} {tr} {td colspa 19:21:46.350531 IP aaa.bbb.ccc.ddd.49534 } www.xxx.yyy.zzz.80: Flags [.], ack 1461, win 30660, length 0 E..(.=@.@............~.P........P.w.[... 19:21:46.374790 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49534: Flags [.], seq 1461:2921, ack 159, win 1460, length 1460: HTTP E.....@.@............P.~........P.......ble} {tr} {td class="topLoginTitleBottomBar"}{/td} {/tr} {/table} {/td} {/tr} {/table} {/div} {div id="loginBlkbArea" class="bClass"} {div id="loginDiv" class="loginBox"} {div id="loginTDataArea" class="tableData mTop25"} {table id="loginTData"} {tbody} {tr} {td width="23px"}{div}{/div}{/td} {td width="100px" style='white-space:nowrap'} {div class="colInterval textLeft"}Password{/div} {/td} {td width="290px"} {input id="password" class="textInputStyle textInputLength" onkeypress="onEnterSub(event);" type="password" maxlength="20" style="border:1px #CCCCCC solid;" autocomplete="off"} {/td} {td width="23px"}{div}{/div}{/td} {/tr} {tr} {td width="23px"}{div}{/div}{/td} {td width="100px"}{div}{/div}{/td} {td width="290px"} {div id="pwdErr" class="pwdErrStyle"}{/div} {/td} {td width="23px"}{div}{/div}{/td} {/tr} {tr} {td width="23px"}{div}{/div}{/td} {td width="100px"}{div}{/div}{/td} {td width="290px"} {a id="loginBtn" class="loginBtnStyle" href="javascript:submitLogin()"}Login{/a} {/td} {td width="23px"}{div}{/div}{/td} {/tr} {/tbody} {/table} {/div}{/div}{/div}{/div 19:21:46.374904 IP aaa.bbb.ccc.ddd.49534 } www.xxx.yyy.zzz.80: Flags [.], ack 2921, win 30660, length 0 E..(.}@.@............~.P.......iP.w.[... 19:21:46.378908 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49534: Flags [.], seq 2921:3270, ack 159, win 1460, length 349: HTTP E.....@.@............P.~...i....P....V.. {input type=hidden id='rand' value='309412878' disabled} {/form} {/div} {div class="footerImg"} {div class="copyrightGraphWrap"} {span}© NETGEAR, Inc. All rights reserved.{/span} {/div} {img style="float:right;" src="/Footer_Facet_Graphic.png"} {/div} {/div} {/body} {/html} 19:21:46.378950 IP aaa.bbb.ccc.ddd.49534 } www.xxx.yyy.zzz.80: Flags [.], ack 3270, win 30660, length 0 E..(.?@.@............~.P........P.w.[... 19:21:46.379682 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49534: Flags [F.], seq 3270, ack 159, win 1460, length 0 E..(..@.@..7.........P.~........P...1......... 19:21:46.380099 IP aaa.bbb.ccc.ddd.49534 } www.xxx.yyy.zzz.80: Flags [F.], seq 159, ack 3271, win 30660, length 0 E..(.@@.@............~.P........P.w.[... 19:21:46.384561 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49534: Flags [.], ack 160, win 1460, length 0 E..(..@.@..6.........P.~........P...1......... 19:21:46.403797 IP aaa.bbb.ccc.ddd.49536 } www.xxx.yyy.zzz.80: Flags [S], seq 1414152100, win 32120, options [mss 1460,sackOK,TS val 165221684 ecr 0,nop,wscale 7], length 0 E..{.)@.@.#............PTJ?.......}x[.......... ..4........ 19:21:46.405901 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49536: Flags [S.], seq 268435456, ack 1414152101, win 1460, options [mss 1460], length 0 E..,..@.@..1.........P......TJ?.`............. 19:21:46.406002 IP aaa.bbb.ccc.ddd.49536 } www.xxx.yyy.zzz.80: Flags [.], ack 1, win 32120, length 0 E..(.*@.@.#............PTJ?.....P.}x[... 19:21:46.406158 IP aaa.bbb.ccc.ddd.49536 } www.xxx.yyy.zzz.80: Flags [P.], seq 1:229, ack 1, win 32120, length 228: HTTP: POST /login.cgi HTTP/1.1 E....+@.@."............PTJ?.....P.}x\...POST /login.cgi HTTP/1.1 Host: www.xxx.yyy.zzz User-Agent: python-requests/2.32.3 Accept-Encoding: gzip, deflate, br Accept: */* Connection: keep-alive Content-Length: 41 Content-Type: application/x-www-form-urlencoded 19:21:46.406201 IP aaa.bbb.ccc.ddd.49536 } www.xxx.yyy.zzz.80: Flags [P.], seq 229:270, ack 1, win 32120, length 41: HTTP E..Q.,@.@.#............PTJ@.....P.}x\...password=xxx 19:21:46.408961 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49536: Flags [.], ack 229, win 1460, length 0 E..(..@.@..4.........P......TJ@.P............. 19:21:46.434866 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49536: Flags [.], ack 270, win 1460, length 0 E..(..@.@..3.........P......TJ@.P............. 19:21:46.524884 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49536: Flags [.], seq 1:1461, ack 270, win 1460, length 1460: HTTP: HTTP/1.1 200 OK E.....@.@..~.........P......TJ@.P...Kh..HTTP/1.1 200 OK Connection: close X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Content-Type: text/html {!DOCTYPE html} {html} {head} {meta http-equiv="Content-Type" content="text/html; charset=UTF-8"} {meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"} {link rel="stylesheet" type="text/css" href="/login.css?a1.6.0.11"} {title}NETGEAR GS105Ev2{/title} {script src="/jquery.md5.js?a1.6.0.11" type="text/javascript"}{/script} {script src="/login.js?a1.6.0.11" type="text/javascript"}{/script} {script language="JavaScript"} function submitLogin() { encryptPwd(); document.forms[0].submit(); return true; } {/script} {/head} {body onload="init();changeLoginButtonStyle();"} {div id="mainArea" class="mainArea"} {div id="mainTitleArea" class="mainTitleArea"} {img class="customGraph" src="/CBU_NgrLogo.png"} {img class="factGraph" src="/CBU_IMG_ContentVisual.png"} {div class="switchInfo"}GS105Ev2 – 5-Port Gigabit Ethernet Smart Managed Plus Switch{/div} {/div} {div id="loginContainer" class="loginContainer"} {form method="post" action="/login.cgi" name="login" onSubmit="return false;"} {input id="submitPwd" name="password" type="hidden" value=""} {div id="contentArea"} {div id="loginArea" class="loginArea"} {div id="loginTitleArea"} {table} {tr} {script}tbhdrLoginTable('Login','login');{/script} {/tr} {tr} {td colspa 19:21:46.524991 IP aaa.bbb.ccc.ddd.49536 } www.xxx.yyy.zzz.80: Flags [.], ack 1461, win 30660, length 0 E..(.-@.@.#............PTJ@.....P.w.[... 19:21:46.547080 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49536: Flags [.], seq 1461:2921, ack 270, win 1460, length 1460: HTTP E.....@.@..}.........P......TJ@.P.......ble} {tr} {td class="topLoginTitleBottomBar"}{/td} {/tr} {/table} {/td} {/tr} {/table} {/div} {div id="loginBlkbArea" class="bClass"} {div id="loginDiv" class="loginBox"} {div id="loginTDataArea" class="tableData mTop25"} {table id="loginTData"} {tbody} {tr} {td width="23px"}{div}{/div}{/td} {td width="100px" style='white-space:nowrap'} {div class="colInterval textLeft"}Password{/div} {/td} {td width="290px"} {input id="password" class="textInputStyle textInputLength" onkeypress="onEnterSub(event);" type="password" maxlength="20" style="border:1px #CCCCCC solid;" autocomplete="off"} {/td} {td width="23px"}{div}{/div}{/td} {/tr} {tr} {td width="23px"}{div}{/div}{/td} {td width="100px"}{div}{/div}{/td} {td width="290px"} {div id="pwdErr" class="pwdErrStyle"}The maximum number of sessions has been reached. Wait a few minutes and then try again.{/div} {/td} {td width="23px"}{div}{/div}{/td} {/tr} {tr} {td width="23px"}{div}{/div}{/td} {td width="100px"}{div}{/div}{/td} {td width="290px"} {a id="loginBtn" class="loginBtnStyle" href="javascript:submitLogin()"}Login{/a} {/td} {td width="23px"}{div}{/div}{/td} 19:21:46.547181 IP aaa.bbb.ccc.ddd.49536 } www.xxx.yyy.zzz.80: Flags [.], ack 2921, win 30660, length 0 E..(..@.@.#............PTJ@....iP.w.[... 19:21:46.555599 IP www.xxx.yyy.zzz.80 } aaa.bbb.ccc.ddd.49536: Flags [.], seq 2921:3357, ack 270, win 1460, length 436: HTTP E.....@.@..|.........P.....iTJ@.P....M../tr} {/tbody} {/table} {/div}{/div}{/div}{/div}{/div} {input type=hidden id='rand' value='309412878' disabled} {/form} {/div} {div class="footerImg"} {div class="copyrightGraphWrap"} {span}© NETGEAR, Inc. All rights reserved.{/span} {/div} {img style="float:right;" src="/Footer_Facet_Graphic.png"} {/div} {/div} {/body} {/html} {td colspa
I have once again reproduced a situation that I had noticed and I think this may help to resolve the problem.
I have a GS108Ev3 and a GS105Ev2 in my network.
The Gs108Ev3 I can access through any Browser:
The Gs 105Ev2i can be accessed through the following Browsers:
Maybe this helps? This fork does work for the GS105E: https://github.com/Lulubelle3/lb3-ha-gs105e
This integration doesn’t work either.
after restarting the HA server severall hours later, it works. The GS105 is recognized. Thanks for the support
Yes, the GS105E integration works, but it is not as complete as the GS108 integration. The GS105 integration does not have the port status and port speed and I would like to use that like with my GS108 integration. That's why it would be great if the GS108 integration worked with the GS105Ev2 switch.
With the last update, and before i never tested. GS105Ev2 Following error:
2024-07-06 10:41:57.553 ERROR (MainThread) [custom_components.ckw_hass_gs108e] Unexpected error fetching GS105Ev2 192.168.1.252 Switch infos data Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 312, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 268, in _async_update_data return await self.update_method() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/ckw_hass_gs108e/init.py", line 57, in async_update_switch_infos return await gs_switch.async_get_switch_infos() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/ckw_hass_gs108e/netgear_switch.py", line 77, in async_get_switch_infos return await self.hass.async_add_executor_job(self.api.get_switch_infos) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/ckw_hass_gs108e/gs108e/init.py", line 509, in get_switch_infos switch_firmware = tree.xpath('//table[@id="tbl1"]/tr[6]/td[2]')[0].text