NEWS
TR-064 community Adapter - Wie mit javascript?
-
Liebe Gemeinde,
ich bekomme es einfach nicht hin mit dem TR064 community Adapter über den "command" Datenpunkt bestimmte Werte aus der Fritzbox auszulesen.
Kann mir jemand ein Codebeispiel in Javascript geben wie man z.B. die Externe IP-Adresse ausließt?
Was ich bisher versucht habe:
//command = '{"service": "urn:dslforum-org:service:WANCommonInterfaceConfig:1","action": "NewByteReceiveRate","params": {}}'; // NOK setState('tr-064-community.0.states.command', '{"service": "urn:dslforum-org:service:GetExternalIPAddress","action": "NewExternalIPAddress", "params":{}', true); // NOK setState('tr-064-community.0.states.command', '{"service": "urn:WANCIfConfig-com:serviceId:WANCommonInterfaceConfig1", "action": "GetTotalBytesSent", "params": { "NewTotalBytesSent"}};', true); // NOK setState('tr-064-community.0.states.command', '{"service": "urn:dslforum-org:service:WLANConfiguration:1","action": "X_AVM-DE_SetWPSConfig","params": {"NewX_AVM-DE_WPSMode": "pbc","NewX_AVM-DE_WPSClientPIN": ""}}', true); // NOK setState('tr-064-community.0.states.command', '{"service": "urn:dslforum-org:service:WANIPConnection:1","action": "GetGenericPortMappingEntry","params": {"NewExternalPort": ""}}', true); /* setState('tr-064-community.0.states.command', '{"service": "urn:dslforum-org:service:WANIPConnection:1","action": "GetInfo","params": {"": ""}}', (err, state) => { log("SetState: " + JSON.stringify(state)); for(var index in state) { log(index); log(JSON.stringify(state[index])); } }); */ // NOK setState('tr-064-community.0.states.command', '{"service": "urn:dslforum-org:service:WANIPConnection:1","action": "GetInfo","params": {"": ""}}', true); // NOK setState('tr-064-community.0.states.command', '{"service": "urn:dslforum-org:service:WANIPConnection:1","action": "GetExternalIPAddress","params": {"NewExternalIPAddress": ""}};', true); setState('tr-064-community.0.states.command', '{"service": "urn:dslforum-org:service:WANIPConnection:1","action": "GetExternalIPAddress","params": {"NewExternalIPAddress": ""}};', (err, status) => { if(err) log("Fehler:" + err); log("SetState: " + JSON.stringify(status)); getState("tr-064-community.0.states.commandResult", (err, state) => { log("GetState: " + JSON.stringify(state)); for(var index in state) { log(index); log(JSON.stringify(state[index])); } }); });
Dann wird aber immer die irgendwann mal einmalig funktionierende GetInfo Action ausgegeben. Der Wert in "CommandResult" ändert sich irgendwie gar nicht mehr.
14:28:05.828 info javascript.1 (14753) script.js.common.Testumgebung: SetState: undefined 14:28:05.830 info javascript.1 (14753) script.js.common.Testumgebung: GetState: {"val":"{\"NewEnable\":\"1\",\"NewConnectionStatus\":\"Connected\",\"NewPossibleConnectionTypes\":\"IP_Routed, IP_Bridged\",\"NewConnectionType\":\"IP_Routed\",\"NewName\":\"internet\",\"NewUptime\":\"5687998\",\"NewLastConnectionError\":\"ERROR_NONE\",\"NewRSIPAvailable\":\"0\",\"NewNATEnabled\":\"1\",\"NewExternalIPAddress\":\"...rausgelöscht...\",\"NewDNSServers\":\"...rausgelöscht..., ...rausgelöscht...\",\"NewMACAddress\":\"rausgelöscht\",\"NewConnectionTrigger\":\"OnDemand\",\"NewRouteProtocolRx\":\"Off\",\"NewDNSEnabled\":\"1\",\"NewDNSOverrideAllowed\":\"1\"}","ack":true,"ts":1577866696482,"q":0,"from":"system.adapter.tr-064-community.0","user":"system.user.admin","lc":1577866696482} 14:28:05.832 info javascript.1 (14753) script.js.common.Testumgebung: val 14:28:05.833 info javascript.1 (14753) script.js.common.Testumgebung: "{\"NewEnable\":\"1\",\"NewConnectionStatus\":\"Connected\",\"NewPossibleConnectionTypes\":\"IP_Routed, IP_Bridged\",\"NewConnectionType\":\"IP_Routed\",\"NewName\":\"internet\",\"NewUptime\":\"5687998\",\"NewLastConnectionError\":\"ERROR_NONE\",\"NewRSIPAvailable\":\"0\",\"NewNATEnabled\":\"1\",\"NewExternalIPAddress\":\"...rausgelöscht...\",\"NewDNSServers\":\"...rausgelöscht..., ...rausgelöscht...\",\"NewMACAddress\":\"....rausgelöscht...\",\"NewConnectionTrigger\":\"OnDemand\",\"NewRouteProtocolRx\":\"Off\",\"NewDNSEnabled\":\"1\",\"NewDNSOverrideAllowed\":\"1\"}" 14:28:05.834 info javascript.1 (14753) script.js.common.Testumgebung: ack 14:28:05.834 info javascript.1 (14753) script.js.common.Testumgebung: true 14:28:05.835 info javascript.1 (14753) script.js.common.Testumgebung: ts 14:28:05.835 info javascript.1 (14753) script.js.common.Testumgebung: 1577866696482 14:28:05.835 info javascript.1 (14753) script.js.common.Testumgebung: q 14:28:05.836 info javascript.1 (14753) script.js.common.Testumgebung: 0 14:28:05.836 info javascript.1 (14753) script.js.common.Testumgebung: from 14:28:05.837 info javascript.1 (14753) script.js.common.Testumgebung: "system.adapter.tr-064-community.0" 14:28:05.837 info javascript.1 (14753) script.js.common.Testumgebung: user 14:28:05.837 info javascript.1 (14753) script.js.common.Testumgebung: "system.user.admin" 14:28:05.838 info javascript.1 (14753) script.js.common.Testumgebung: lc 14:28:05.838 info javascript.1 (14753) script.js.common.Testumgebung: 1577866696482
Ich brauche nur ein einfaches Beispiel wie das gehen soll. Wie geschrieben ich habe das einmalig hinbekommen aber seit dem ändert sich der Wert im datenpunkt "CommandResult" nicht mehr auch nicht wenn ich andere Parameter über den TR-064 aus der Fritzbox abfragen will.
Vielen Dank,
-
die externe IP Adresse ist bei mir unter folgendem Datenpunkt zu finden :
tr-064-community.0.states.externalIP.Dafür brauchst du kein Script schreiben.
-
@Dominik-F
Bei mir ist dieser Datenpunkt leer, wahrscheinlich weil ich von UnityMedia nur eine IP V6 IpAdresse bekomme. Es geht mir aber nicht unbedingt um die Externe Adresse sondern um z.B Download und Upload Raten und vor allem um den Status der Internetanbindung weil hier schon mal öfters bei UnityMedia die INternetverbindung wegbricht. -
okay, dann bin ich bei dem Adapter raus. Ich ziehe mir die Download und Upload raten und sonstiges aus dem UPNP Adapter.
-
Weiß denn niemand wie man über den TR-064 Adapter per command Datenpunkt Werte aus der Fritzbox abfragen kann?
-
@LoxDUS sagte in TR-064 community Adapter - Wie mit javascript?:
nur eine IP V6 IpAdresse bekomme
Ich habe ausschließlich ipv6. Bei mir ist dieser Punkt befüllt.