PoE Ein/Ausschalten mit D-Link Switch

Begonnen von crusader, 18 August 2020, 21:18:06

Vorheriges Thema - Nächstes Thema

crusader

D-Link bietet mit der DGS-1100-xxP Reihe preiswerte PoE-Switches, bei denen die PoE-Versorgung der Ports einzeln geschaltet werden kann.
Auch kann man den PoE-Stromverbrauch für jeden Port auslesen.

Leider kann man die PoE-Einstellungen nicht über SNMP erreichen, weil dafür keine MIBS definiert sind.
Bleibt also nur das Web-Interface.

Das klappt mit folgendem HTTPMOD:
defmod DGS_1100 HTTPMOD http://192.168.178.99/ 300
attr DGS_1100 userattr get01Name get01Regex get01URL get02Name get02Regex get02URL get03Name get03Regex get03URL get04Name get04Poll:0,1 get04Regex get04URL get05Name get05OExpr get05Regex get05URL getHeader1 getHeader2 passwd reading01Name reading01Regex replacement1Mode:reading,internal,text,expression,key replacement1Regex replacement1Value replacement2Mode:reading,internal,text,expression,key replacement2Regex replacement2Value replacement3Mode:reading,internal,text,expression,key replacement3Regex replacement3Value replacement4Mode:reading,internal,text,expression,key replacement4Regex replacement4Value replacement9Mode:reading,internal,text,expression,key replacement9Regex replacement9Value set01Data set01Name set01URL set02Data set02Name set02URL set03Data set03Name set03URL set04Data set04Name set04URL setHeader1 setHeader2 sid0URL sid1Data sid1Header sid1IDRegex sid1URL
attr DGS_1100 get01Name SwitchInfo
attr DGS_1100 get01Regex SwitchInfo=\[(.*?)\];;
attr DGS_1100 get01URL %%MainURL%%%%RT%%/DS/const.js
attr DGS_1100 get02Name DeviceInfo
attr DGS_1100 get02Regex DeviceInfo=\[(.*?)\];;
attr DGS_1100 get02URL %%MainURL%%%%RT%%/DS/Switch.js
attr DGS_1100 get03Name PortSetting
attr DGS_1100 get03Regex (?s)ds\_PortSetting=\[.*\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\]\];;
attr DGS_1100 get03URL %%MainURL%%%%RT%%/DS/Port.js
attr DGS_1100 get04Name PoEPort
attr DGS_1100 get04Poll 1
attr DGS_1100 get04Regex (?s)ds\_PoEPort=\[.*\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\]\];;
attr DGS_1100 get04URL %%MainURL%%%%RT%%/DS/PoEPort.js
attr DGS_1100 get05Name PoeUsedPower
attr DGS_1100 get05OExpr $val/10
attr DGS_1100 get05Regex PoeUsedPower=(.*?);;
attr DGS_1100 get05URL %%MainURL%%%%RT%%/DS/PoE.js
attr DGS_1100 getHeader2 Cookie: SessID=%%SessID%%;; Gambit=%%Gambit%%
attr DGS_1100 httpVersion 1.1
attr DGS_1100 passwd admin
attr DGS_1100 reAuthAlways 0
attr DGS_1100 reAuthRegex Gambit=;;|showMsg\(Login
attr DGS_1100 reading01Name RT
attr DGS_1100 reading01Regex <script>RT='\/(.*?)\/';;<\/script>
attr DGS_1100 replacement1Mode internal
attr DGS_1100 replacement1Regex %%MainURL%%
attr DGS_1100 replacement1Value MainURL
attr DGS_1100 replacement2Mode expression
attr DGS_1100 replacement2Regex %%SessID%%
attr DGS_1100 replacement2Value ($defs{$name}{sid} =~ /SessID=(.*?);;/)[0]
attr DGS_1100 replacement3Mode expression
attr DGS_1100 replacement3Regex %%Gambit%%
attr DGS_1100 replacement3Value ($defs{$name}{sid} =~ /Gambit=(.*?);;/)[0]
attr DGS_1100 replacement4Mode reading
attr DGS_1100 replacement4Regex %%RT%%
attr DGS_1100 replacement4Value RT
attr DGS_1100 replacement9Mode expression
attr DGS_1100 replacement9Regex %%passwd%%
attr DGS_1100 replacement9Value md5_hex(AttrVal($name,"passwd",""))
attr DGS_1100 room Infotainment
attr DGS_1100 set01Data port_f=$val&port_t=$val&stats=1&speed=0&flow=0&desc=&C0=1&C1=1&C2=1&C3=1&C4=1
attr DGS_1100 set01Name EnablePort
attr DGS_1100 set01URL %%MainURL%%cgi/set_port.cgi
attr DGS_1100 set02Data port_f=$val&port_t=$val&stats=0&speed=0&flow=0&desc=&C0=1&C1=1&C2=1&C3=1&C4=1
attr DGS_1100 set02Name DisablePort
attr DGS_1100 set02URL %%MainURL%%cgi/set_port.cgi
attr DGS_1100 set03Data port_f=$val&port_t=$val&state=1&Priority=1&Legacy=0&PowerLimit=0
attr DGS_1100 set03Name EnablePoE
attr DGS_1100 set03URL %%MainURL%%cgi/poe_port.cgi
attr DGS_1100 set04Data port_f=$val&port_t=$val&state=0
attr DGS_1100 set04Name DisablePoE
attr DGS_1100 set04URL %%MainURL%%cgi/poe_port.cgi
attr DGS_1100 setHeader1 Content-Type: application/x-www-form-urlencoded
attr DGS_1100 setHeader2 Cookie: SessID=%%SessID%%;; Gambit=%%Gambit%%
attr DGS_1100 showBody 0
attr DGS_1100 sid0URL %%MainURL%%
attr DGS_1100 sid1Data pass=%%passwd%%
attr DGS_1100 sid1Header Content-Type: application/x-www-form-urlencoded
attr DGS_1100 sid1IDRegex (?s)(document.cookie=.*?).<\/script>
attr DGS_1100 sid1URL %%MainURL%%cgi/login.cgi
attr DGS_1100 stateFormat RT
attr DGS_1100 userReadings powerPoE-1:PoEPort-1.* {(split(/,/,ReadingsVal($name,"PoEPort-1",0)))[4]/10},\
powerPoE-2:PoEPort-2.* {(split(/,/,ReadingsVal($name,"PoEPort-2",0)))[4]/10},\
powerPoE-3:PoEPort-3.* {(split(/,/,ReadingsVal($name,"PoEPort-3",0)))[4]/10},\
powerPoE-4:PoEPort-4.* {(split(/,/,ReadingsVal($name,"PoEPort-4",0)))[4]/10},\
powerPoE-5:PoEPort-5.* {(split(/,/,ReadingsVal($name,"PoEPort-5",0)))[4]/10},\
powerPoE-6:PoEPort-6.* {(split(/,/,ReadingsVal($name,"PoEPort-6",0)))[4]/10},\
powerPoE-7:PoEPort-7.* {(split(/,/,ReadingsVal($name,"PoEPort-7",0)))[4]/10},\
powerPoE-8:PoEPort-8.* {(split(/,/,ReadingsVal($name,"PoEPort-8",0)))[4]/10}
attr DGS_1100 verbose 0
attr DGS_1100 widgetOverride userattr:textField-long


- Im Define die Adresse des Switches und die Intervall-Zeit (oder 0) eintragen (Slash am Ende nicht vergessen !)
- Im Attribut passwd das Switch-Passwort eintragen
- PoE schalten mit set DGS_1100 Enable|DisablePoE <portnr>
- aktuelle PoE-Leistung in Watt wird in den "powerPoE-n"-Readings angezeigt
- Falls nicht gepollt werden soll (Intervallzeit = 0), einmalig ein "reread" auslösen, damit die get-Befehle funktionieren (Variable RT wird angelegt)
- Falls gepollt wird, Web-Session Timeout im Switch auf möglichst hohen Wert stellen, damit HTTPMOD nicht bei jeder Abfrage eine neue Session eröffnen muss

Damu

Sieht gut aus.
Hatte auch ein D-Link und jetzt ein Cisco mit POE.
Hab es aber immer mit SNMP gemacht.
Hab einfach mit dem MIB_Brower den Unterschied gesucht wenn ein Port auf off steht.



crusader

Ich hab mir bei meinem DGS-1100 mit einem snmpwalk alle verfügbaren MIBs angesehen.

Da sind halt leider nur die Standard-MIBs dabei. Von PoE keine Spur.

Damu

Bei meinem D-Link DGS-1210 war es
1.3.6.1.4.1.171.10.76.12.22.1.1.3.1.1
für Port 1
1.3.6.1.4.1.171.10.76.12.22.1.1.3.1.2
für Port 2.

{system('snmpset -v2c -c public-key 192.168.178.19 1.3.6.1.4.1.171.10.76.12.22.1.1.3.1.1 i 1&');;;;()}
für Port 1 POE off
und
{system('snmpset -v2c -c public-key 192.168.178.19 1.3.6.1.4.1.171.10.76.12.22.1.1.3.1.1 i 2&');;;;()}
für Port 1 POE on.

crusader

Mein Switch sagt:

"No Such Instance currently exists at this OID"
Da hat sich D-Link beim 1100er wohl weniger Mühe gegeben.

Ist aber nicht tragisch. Die CGI-Befehle, mit denen das HTTPMOD arbeitet, sind ja recht einfach zu handeln.
Man muss halt nur erstmal durch die Login-Prozedur.

Hollo

Die DGS-1100 haben gegenüber der 1210er Serie schon einige Besonderheiten. Leider.

Ich habe vorher (neben einigen anderen Dingen) 2 IP-Telefone über POE versorgt, die ich nur bedingt zeitgesteuert schalten konnte.
Beim 1100-24p (Rev. B1) funktioniert die Zeitschaltung nämlich nicht korrekt (bzw. wenn es dann endlich passt, übersteht es einen Reboot nicht).
Da wäre das eigentlich eine richtig coole Sache gewesen.

Die Idee liess mir daher keine Ruhe, auch wenn ich das mittlerweile aus 2 Gründen nicht (mehr) brauche:
- meine IP-Telefone brauchen leider mittlerweile ein Netzteil (wegen Expansion Module)
- ich erlaube nicht, aus dem IoT/Automation Netzwerk auf das Management-Interface meiner Netzwerk-Infrastruktur zuzugreifen

Trotzdem hier die Info (bezogen auf einen DGS-1100-24p Rev. B1):

Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.1; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.2; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.3; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.4; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.5; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.6; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.7; Value (Integer): 2
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.8; Value (Integer): 2
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.9; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.10; Value (Integer): 2
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.11; Value (Integer): 1
Name/OID: .1.3.6.1.4.1.171.15.11.1.1.1.1.1.12; Value (Integer): 1


Das sind die POE-Ports 1-12, wobei 1 für enabled und 2 für disabled steht.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

crusader

Danke für die Info.

Bei meinem 1100-08P bleibt es aber dabei:
"No Such Instance currently exists at this OID"

Würde mich auch wundern, wenn der Switch auf MIBs reagiert, die er im snmpwalk gar nicht ausgibt.
Dort ist der höchste Wert 1.3.6.1.2.1.31.1.1.1.10.8


Heuberg

Hallo,
ich habe einen DGS-1100-08PV2 in Betrieb.
Ein erster Versuch mit der HTTPMOD Konfiguration brachte noch keine Lösung.
Wo könnte ich am sinnvollsten die Fehlersuche ansetzen?
Viele Grüße
Rainer
So sieht die Login Seite aus:

<script>RT='/DGS-1100-08PV2_1.00.003/';</script>
<html>
<script>
if(typeof(RT)=='undefined'){
RT="/";
}
Prefix="<script src='"+RT+"Prefix.js'></";
Prefix+="script>";
document.write(Prefix);
</script>
<script>
docW("<title>Login "+top.location.hostname+"</title>");
docW("<frameset onload='InitCookie();'><center>");
docW("<frame src='"+RD+"login2.htm' frameborder='no' scrolling='yes' noresize marginhight=0>");
</script>
<noframes>
sorry,your browser does not support frames.
</noframes>
</center>
</frameset>
</html>
HM, MAX, MySensors, Fronius, Conbee II, ZigBee, VCONTROL, Modbus, RPi, AVM

crusader

Poste mal ein List von deinem HTTP-Device.

Um zu verstehen, was passiert, kannst Du erstmal das Attribut 'reAuthAlways' auf 1 setzen, damit auf jeden Fall das Passwort gesendet wird.

Mit dem Attribut 'showBody' kannst Du die den http-Body als internal anzeigen lassen.
Dort solltest Du eine Zeile mit den Keywords: 'SessID' und 'Gambit' finden.

Heuberg

Hilft Dir dies weiter?

defmod DGS_1100 HTTPMOD http://192.168.X.Y/ 300
attr DGS_1100 userattr get04Poll:0,1 getHeader1 passwd replacement1Mode:reading,internal,text,expression,key replacement2Mode:reading,internal,text,expression,key replacement4Mode:reading,internal,text,expression,key replacement9Mode:reading,internal,text,expression,key set02Data
attr DGS_1100 disable 0
attr DGS_1100 get01Name SwitchInfo
attr DGS_1100 get01Regex SwitchInfo=\[(.*?)\];;
attr DGS_1100 get01URL %%MainURL%%%%RT%%/DS/const.js
attr DGS_1100 get02Name DeviceInfo
attr DGS_1100 get02Regex DeviceInfo=\[(.*?)\];;
attr DGS_1100 get02URL %%MainURL%%%%RT%%/DS/Switch.js
attr DGS_1100 get03Name PortSetting
attr DGS_1100 get03Regex (?s)ds\_PortSetting=\[.*\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\]\];;
attr DGS_1100 get03URL %%MainURL%%%%RT%%/DS/Port.js
attr DGS_1100 get04Name PoEPort
attr DGS_1100 get04Poll 1
attr DGS_1100 get04Regex (?s)ds\_PoEPort=\[.*\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\],\n\[(.*?)\]\];;
attr DGS_1100 get04URL %%MainURL%%%%RT%%/DS/PoEPort.js
attr DGS_1100 get05Name PoeUsedPower
attr DGS_1100 get05OExpr $val/10
attr DGS_1100 get05Regex PoeUsedPower=(.*?);;
attr DGS_1100 get05URL %%MainURL%%%%RT%%/DS/PoE.js
attr DGS_1100 getHeader2 Cookie: SessID=%%SessID%%;; Gambit=%%Gambit%%
attr DGS_1100 httpVersion 1.1
attr DGS_1100 passwd MEINPW
attr DGS_1100 reAuthAlways 0
attr DGS_1100 reAuthRegex Gambit=;;|showMsg\(Login
attr DGS_1100 reading01Name RT
attr DGS_1100 reading01Regex <script>RT='\/(.*?)\/';;<\/script>
attr DGS_1100 replacement1Mode internal
attr DGS_1100 replacement1Regex %%MainURL%%
attr DGS_1100 replacement1Value MainURL
attr DGS_1100 replacement2Mode expression
attr DGS_1100 replacement2Regex %%SessID%%
attr DGS_1100 replacement2Value ($defs{$name}{sid} =~ /SessID=(.*?);;/)[0]
attr DGS_1100 replacement3Mode expression
attr DGS_1100 replacement3Regex %%Gambit%%
attr DGS_1100 replacement3Value ($defs{$name}{sid} =~ /Gambit=(.*?);;/)[0]
attr DGS_1100 replacement4Mode reading
attr DGS_1100 replacement4Regex %%RT%%
attr DGS_1100 replacement4Value RT
attr DGS_1100 replacement9Mode expression
attr DGS_1100 replacement9Regex %%passwd%%
attr DGS_1100 replacement9Value md5_hex(AttrVal($name,"passwd",""))
attr DGS_1100 room Netzwerk
attr DGS_1100 set01Data port_f=$val&port_t=$val&stats=1&speed=0&flow=0&desc=&C0=1&C1=1&C2=1&C3=1&C4=1
attr DGS_1100 set01Name EnablePort
attr DGS_1100 set01URL %%MainURL%%cgi/set_port.cgi attr DGS_1100 set02Data port_f=$val&port_t=$val&stats=0&speed=0&flow=0&desc=&C0=1&C1=1&C2=1&C3=1&C4=1
attr DGS_1100 set02Name DisablePort
attr DGS_1100 set02URL %%MainURL%%cgi/set_port.cgi
attr DGS_1100 set03Data port_f=$val&port_t=$val&state=1&Priority=1&Legacy=0&PowerLimit=0
attr DGS_1100 set03Name EnablePoE
attr DGS_1100 set03URL %%MainURL%%cgi/poe_port.cgi
attr DGS_1100 set04Data port_f=$val&port_t=$val&state=0
attr DGS_1100 set04Name DisablePoE
attr DGS_1100 set04URL %%MainURL%%cgi/poe_port.cgi
attr DGS_1100 setHeader1 Content-Type: application/x-www-form-urlencoded
attr DGS_1100 setHeader2 Cookie: SessID=%%SessID%%;; Gambit=%%Gambit%%
attr DGS_1100 showBody 0
attr DGS_1100 sid0URL %%MainURL%%
attr DGS_1100 sid1Data pass=%%passwd%%
attr DGS_1100 sid1Header Content-Type: application/x-www-form-urlencoded
attr DGS_1100 sid1IdRegex (?s)(document.cookie=.*?).<\/script>
attr DGS_1100 sid1URL %%MainURL%%cgi/login.cgi
attr DGS_1100 stateFormat RT
attr DGS_1100 userReadings powerPoE-1:PoEPort-1.* {(split(/,/,ReadingsVal($name,"PoEPort-1",0)))[4]/10},\
powerPoE-2:PoEPort-2.* {(split(/,/,ReadingsVal($name,"PoEPort-2",0)))[4]/10},\
powerPoE-3:PoEPort-3.* {(split(/,/,ReadingsVal($name,"PoEPort-3",0)))[4]/10},\
powerPoE-4:PoEPort-4.* {(split(/,/,ReadingsVal($name,"PoEPort-4",0)))[4]/10},\
powerPoE-5:PoEPort-5.* {(split(/,/,ReadingsVal($name,"PoEPort-5",0)))[4]/10},\
powerPoE-6:PoEPort-6.* {(split(/,/,ReadingsVal($name,"PoEPort-6",0)))[4]/10},\
powerPoE-7:PoEPort-7.* {(split(/,/,ReadingsVal($name,"PoEPort-7",0)))[4]/10},\
powerPoE-8:PoEPort-8.* {(split(/,/,ReadingsVal($name,"PoEPort-8",0)))[4]/10}
attr DGS_1100 verbose 5
attr DGS_1100 widgetOverride userattr:textField-long

setstate DGS_1100 DGS-1100-08PV2_1.00.003
setstate DGS_1100 2021-03-21 18:03:48 RT DGS-1100-08PV2_1.00.003



header: Content-Type: application/x-www-form-urlencoded
data: pass=b4234726be84cfea82753bd647fd8b14,
2021.03.29 22:14:26 4: DGS_1100: HandleSendQueue sends auth1 with timeout 2 to http://192.168.X.Y/cgi/login.cgi,
2021.03.29 22:14:25 4: DGS_1100: no redirects to handle
2021.03.29 22:14:25 4: DGS_1100: checking for redirects, code=200, ignore=0
2021.03.29 22:14:25 4: DGS_1100: BodyDecode is not decoding the response body (charset utf-8, bodyDecode defaults to none)
Content-Length: 519, body length 519
Content-Type: text/html; charset=utf-8
Cache-Control: no-store
Connection: close
header: HTTP/1.1 200 OK
2021.03.29 22:14:25 4: DGS_1100: Read callback: request type was auth0 retry 0,
2021.03.29 22:14:25 4: DGS_1100: HandleSendQueue sends auth0 with timeout 2 to http://192.168.X.Y/, No Data, No Header
2021.03.29 22:14:24 4: DGS_1100: DoAuth called with Steps: 0 1
2021.03.29 22:14:24 4: DGS_1100: CheckAuth prepended request set03 again before auth, retryCount 0 ...
2021.03.29 22:14:24 4: DGS_1100: CheckAuth decided new authentication required
2021.03.29 22:14:24 4: DGS_1100: no redirects to handle
2021.03.29 22:14:24 4: DGS_1100: checking for redirects, code=200, ignore=0
2021.03.29 22:14:24 4: DGS_1100: BodyDecode is not decoding the response body (charset utf-8, bodyDecode defaults to none)
Content-Type: text/html; charset=utf-8, body length 143
Connection: close
header: HTTP/1.1 200 OK
2021.03.29 22:14:24 4: DGS_1100: Read callback: request type was set03 retry 0,
Cookie: SessID=9; Gambit=
header: Content-Type: application/x-www-form-urlencoded
data: port_f=1&port_t=1&state=1&Priority=1&Legacy=0&PowerLimit=0,
2021.03.29 22:14:24 4: DGS_1100: HandleSendQueue sends set03 with timeout 2 to http://192.168.X.Y/cgi/poe_port.cgi,
2021.03.29 22:14:23 4: DGS_1100: no redirects to handle
2021.03.29 22:14:23 4: DGS_1100: checking for redirects, code=200, ignore=0
document.cookie='Gambit=;path=/';
2021.03.29 22:14:23 4: DGS_1100: ExtractSid set sid to document.cookie='SessID=9;path=/';
2021.03.29 22:14:23 4: DGS_1100: BodyDecode is not decoding the response body (charset utf-8, bodyDecode defaults to none)
Content-Type: text/html; charset=utf-8, body length 143
Connection: close
header: HTTP/1.1 200 OK
2021.03.29 22:14:23 4: DGS_1100: Read callback: request type was auth1 retry 0,
header: Content-Type: application/x-www-form-urlencoded
data: pass=b4234726be84cfea82753bd647fd8b14,
2021.03.29 22:14:23 4: DGS_1100: HandleSendQueue sends auth1 with timeout 2 to http://192.168.X.Y/cgi/login.cgi,
2021.03.29 22:14:22 4: DGS_1100: no redirects to handle
2021.03.29 22:14:22 4: DGS_1100: checking for redirects, code=200, ignore=0
2021.03.29 22:14:22 4: DGS_1100: BodyDecode is not decoding the response body (charset utf-8, bodyDecode defaults to none)
Content-Length: 519, body length 519
Content-Type: text/html; charset=utf-8
Cache-Control: no-store
Connection: close
header: HTTP/1.1 200 OK
2021.03.29 22:14:22 4: DGS_1100: Read callback: request type was auth0 retry 0,
2021.03.29 22:14:22 4: DGS_1100: HandleSendQueue sends auth0 with timeout 2 to http://192.168.X.Y/, No Data, No Header
2021.03.29 22:14:22 4: DGS_1100: DoAuth called with Steps: 0 1
2021.03.29 22:14:22 4: DGS_1100: set will now set EnablePoE -> 1
HM, MAX, MySensors, Fronius, Conbee II, ZigBee, VCONTROL, Modbus, RPi, AVM

crusader

Sieht so aus, als ob Dein Switch nach der Passworteingabe zwar eine Session-ID ausgibt (9), aber kein Gambit.

Das müsste eigentlich ein 6stelliger Code sein, ist in Deinem Log aber leer:

2021.03.29 22:14:23 4: DGS_1100: ExtractSid set sid to document.cookie='SessID=9;path=/';document.cookie='Gambit=;path=/';


Wenn Du showBody auf 1 stellst, solltest Du im HTTP-Body des Authent-Versuchs zwei Zeilen finden, die mit "document.cookie=" beginnen.
Was steht da drin ?

Heuberg

Die zwei Zeilen sind bei mir bei sid aufgeführt.Deine Vermutung geht in die richtige Richtung.

httpbody

<script>RT='/DGS-1100-08PV2_1.00.003/';</script>
<html>
<script>
if(typeof(RT)=='undefined'){
RT="/";
}
Prefix="<script src='"+RT+"Prefix.js'></";
Prefix+="script>";
document.write(Prefix);
</script>
<script>
docW("<title>Login "+top.location.hostname+"</title>");
docW("<frameset onload='InitCookie();'><center>");
docW("<frame src='"+RD+"login2.htm' frameborder='no' scrolling='yes' noresize marginhight=0>");
</script>
<noframes>
sorry,your browser does not support frames.
</noframes>
</center>
</frameset>
</html>



sid


document.cookie='SessID=10;path=/';
document.cookie='Gambit=;path=/';

HM, MAX, MySensors, Fronius, Conbee II, ZigBee, VCONTROL, Modbus, RPi, AVM

crusader

#12
Der HTTP-Code,den Du kopiert hast, stammt von der Login-Seite.

Nachdem das HTTPMOD das Passwort da eingibt, kommt eine zweite Seite vom DGS, welche die beiden Zeilen enthält.

Schau mal, ob Du die mit showBody findest.

Edit:
Sehe gerade, dass Dein DGS die Firmware-Version mit 1.003 angibt. Das scheint mir nicht aktuell.
Welche HW-Version und Firmware-Version werden denn im Web-Interface angezeigt ?

Heuberg

Laut Web Interface:
Firmware VersionVer 1.00.003
Hardware Version A1
Mit showBody:
   

<script>RT='/DGS-1100-08PV2_1.00.003/';</script>
<html>
<script>
if(typeof(RT)=='undefined'){
RT="/";
}
Prefix="<script src='"+RT+"Prefix.js'></";
Prefix+="script>";
document.write(Prefix);
</script>
<script>
docW("<title>Login "+top.location.hostname+"</title>");
docW("<frameset onload='InitCookie();'><center>");
docW("<frame src='"+RD+"login2.htm' frameborder='no' scrolling='yes' noresize marginhight=0>");
</script>
<noframes>
sorry,your browser does not support frames.
</noframes>
</center>
</frameset>
</html>



HM, MAX, MySensors, Fronius, Conbee II, ZigBee, VCONTROL, Modbus, RPi, AVM

crusader

#14
Uiii, das ist ja ein altes Schätzchen.

Trotzdem, Firmware wurde für die A-Version bis 2016 gepflegt.
Hier gibts aktuelle Firmware:
[url][https://support.dlink.com/ProductInfo.aspx?m=DGS-1100-08P/url]

Downloaden und dann im Web-Interface im Tools-Menü upgraden.
Vielleicht klappts dann mit dem HTTPMOD.

Korrektur:
die 08PV2 ist das neueste Modell. Da gibt es nur eine A-Version und die Firmware-Version ist aktuell.
Offensichtlich benutzt diese Version nicht mehr den Gambit-Mechanismus der Version 08P.
Deshalb funktioniert auch das HTTPMOD nicht.

Es besteht dann aber Hoffnung, dass D-Link im neuen Modell endlich die snmp-MIB für die PoE-Settings eingepflegt hat.
Was sagt snmpwalk ?