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,