NEWS
Fritzbox-> Ip von neuem Teilnehmer ermitteln
-
@dieckfr Vielleicht hat jemand eine Idee wie ich beim command Befehl den Input bediene...
Folgendes funktioniert ohne Probleme über den tr064 Adapter:
{"service":"urn:dslforum-org:service:WLANConfiguration:1","action":"GetTotalAssociations","params":{}}
Als Ergebnis bekomme ich : {"NewTotalAssociations":"13"}
ICh kriege aber das Command für die letzte IP nicht gebacken, so wie ich es verstanden habe gebe ich den Indexwert irgendwie an, und kann dann die IP ergattern... Aber seit Stunden versuche ich das Command auf die Kette zu bekommen, so siehts im Moment aus :
var dp="tr-064.0.states.command"; //Datenpunkt command vom tr-064 var result= "tr-064.0.states.commandResult" var command1 = { "service": "urn:dslforum-org:service:WLANConfiguration:1", "action": "GetGenericAssociatedDeviceInfo", "params": { "NewAssociatedDeviceIPAddress":"13" } }; var comm1=JSON.stringify(command1) //Kommando als JSON setState(dp , comm1);
MOD-EDIT: Code in code-tags gesetzt!
Die 13 steht für das Ergebnis vom Index NewTotalAssociations...
Als Result bekomme ich aber, auch wenn ich das Skript alleine laufen lasse:{"NewTotalAssociations":"13"}
ich weiss nicht wie ich den Index PArameter sauber übergebe, und dann zur IP komme...
MAg mir jemand helfen? -
@dieckfr
1.
Bitte die Codezeilen in Code-Tags
Dann kann man die zeilen auch besser lesen.
2.
Du musst, wenn ich das richtig gelesen habe, für die Variable command1 nicht " (normale Anführungsstriche) nehmen sondern die Hochkommata ' (Shift #).Den Index durchgehen, also 0 bis Anzahl-1, die zurückgemeldet wurde.
{ "service": "urn:dslforum-org:service:WLANConfiguration:1", "action": "GetGenericAssociatedDeviceInfo", "params": { "NewAssociatedDeviceIndex": 12 } } // bei 13 -> 12 setzen
-
hast du da etwas mehr erfahrung? wollte mal eine abfrage nach allen ip devices - weißt du, wie das geht, komme mit den beschreibungen nicht wirklich weiter
-
@dieckfr sagte in Fritzbox-> Ip von neuem Teilnehmer ermitteln:
suchen in den WLAN Ereignissen der Fritzbox ersparen
Moin,
im Adapter
fb-checkpresence
gibt es die blacklist, wenn neue geräter im Heimischen Netz auftauchen, sollten die auch dort auftauchen. Liste alsjson
undhtml
VG
Bernd -
@liv-in-sky Ich hab mal hier die Befehle, die bei mir Daten zurückbrachten aufgelistet. Vielleicht ist ja was dabei?
https://mcuiobroker.gitbook.io/jarvis-infos/tipps/adapter-spezifisch/tr064#befehle-fuer-tr064.states.command
Wenn du eine bestimmte Anleitung meinst bitte Link./* Damit holt man sich die Anzahl aller Devices */ { "service": "urn:dslforum-org:service:Hosts:1", "action": "GetHostNumberOfEntries", "params": {} } /* damit dann den x.ten eintrag 0- Anzahl (GetHostNmberOfEntries) -1 */ { "service": "urn:dslforum-org:service:Hosts:1", "action": "GetGenericHostEntry", "params": { "NewIndex": 0 } }
-
@dieckfr said in Fritzbox-> Ip von neuem Teilnehmer ermitteln:
Ich würde mir bei der neuen IoT gerne das lästige suchen in den WLAN Ereignissen der Fritzbox ersparen...
Sowas geht sogar ganz ohne ioBroker mit dem Fritz!Box Push Service. Wenn du da "Änderungsnotiz" anhakst, bekommst du bei Neuanmeldung eines Geräts eine Push Nachricht.
-
@mcu erstmal danke
hatte gerade überlegt:
habe ja ein nmap script, welches alle ip im netz scanned und in eine tabelle für die vis wandelt - wollte das hiermit auch probieren - d.h. ich müßte jedes einzelne device abfragen - also evtl knapp 255 device pro bereich (je nachdem, wieviele man hat)
hört sich nicht gut an, soviele anfrage auf einmal/hintereinander zu senden - dachte ich würde eine liste von devices zurückbekommen
-
@liv-in-sky Gibt es glaub ich irgendwie, man bekommt dann allerdings eine URL.
-
@mcu habe nur irgendwo gelesen, dass es ein file erzeugt und man einen pfad dazu bekommt - wird das wohl sein
-
-
@mcu wenn ich das eingebe kommt nix zurück
{ "service": "urn:LanDeviceHosts-com:serviceId:Hosts1", "action": "X_AVM-DE_GetHostListPath", "params": {} }
-
let wlan = '1'; // 1 -> 2.4GHz ( für diesen Fall missverständlich ) let fritzCommandDP = 'tr-064.0.states.command'; let fritzResultDP = 'tr-064.0.states.commandResult'; let cmdHostListPath = {'service': 'urn:dslforum-org:service:Hosts:'+wlan,'action': 'X_AVM-DE_GetHostListPath','params': {}}; sendCMD(JSON.stringify(cmdHostListPath)); async function sendCMD(cmd) { setState(fritzCommandDP, cmd); const obj = await once({ id: fritzResultDP }); // log("Erg: " + obj.state.val); let erg = JSON.parse(obj.state.val); // log(erg["NewX_AVM-DE_HostListPath"]); const request = require('request'); request('http://192.168.178.1:49000'+erg["NewX_AVM-DE_HostListPath"], { json: true }, (err, res, body) => { if (err) { return console.log(err); } //console.log(body.url); //console.log(body.explanation); //console.log(res); console.log(body); }); }
Machst du ein JSON daraus?