upnp ist bei mir auch aktiviert. Ich wurde zum Entwicklersupport weitergeleitet - mehr als nächste Woche.
Ankündigung
Einklappen
Keine Ankündigung bisher.
AVM Plugin
Einklappen
X
-
Gute Nachricht vom Support. Bin auch ein bisschen weitergekommen, das Hinzufügen eines Portmappings hat aber leider noch nicht geklappt. Hier mal die Info:
- das Dokument wanipconnSCPD.pdf bezieht sich auf TR-064 und benötigt die Control-URL: /upnp/control/wanipconnection1
- die von Ihnen verwendete Control-URL ist /igdupnp/control/wanipconn1 und geht demnach an den UPnP-Dienst.
der Vorteil von UPnP: es werden keine Credentials benötigt.
der Nachteil von UPnP: nicht alle Actions, die auch von TR-064 unterstützt werden, werden von UPnP unterstützt.
Die Details dazu finden Sie (vllt. stellvertretend auch für die Kollegen aus dem zitierten Forum?) im Dokument https://avm.de/fileadmin/user_upload...ellen/IGD1.pdf
Noch ein Detai; der Namespace ändert sich ebenfalls:
xmlns:u="urn:dslforum-org:service:WANIPConnection:1"
Dazu ein Curl-Befehl, der TR-064 verwendet und in diesem Zusammenhang funktionieren sollte:
Code:curl --anyauth -u user:'password' "[URL="https://192.168.178.1:49443/upnp/control/wanpppconn1"]https://192.168.178.1:49443/upnp/control/wanipconnection1[/URL]" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:dslforum-org:service:WANIPConnection:1#GetPortMappingNumber OfEntries" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='[URL]http://schemas.xmlsoap.org/soap/encoding/'[/URL]xmlns:s='[URL]http://schemas.xmlsoap.org/soap/envelope/'[/URL]><s:Body><u:GetPortMappingNumberOfEntries xmlns:u="urn:dslforum-org:service:WANIPConnection:1" /></s:Body></s:Envelope>" -s -k
Code:curl --anyauth 'https://10.0.0.138:49443/upnp/control/wanipconnection1' -H 'Content-Type: text/xml; charset="utf-8"' -H 'SoapAction: urn:dslforum-org:service:WANIPConnection:1#AddPortMapping' -d '<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:AddPortMapping xmlns:u="urn:dslforum-org:service:WANIPConnection:1"><NewRemoteHost>0.0.0.0</NewRemoteHost><NewExternalPort>12345</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>12345</NewInternalPort><NewInternalClient>10.0.0.150</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>test</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:AddPortMapping></s:Body></s:Envelope>' -s -k
Could be any of the following: not enough in args, args in the wrong order, one or more in args are of the wrong data type. Additionally, the UPnP Certification Test Tool shall return the following warning message if there are too many in args: ‘Sending too many in args is not recommended and may cause unexpected results.’
Soweit ich das sehe, stimmen aber Reihenfolge, Anzahl und Werte der Argumente... hmm...
Kommentar
-
GetInfo funzt übrigens so:
Code:curl --anyauth "https://10.0.0.138:49443/upnp/control/wanipconnection1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:dslforum-org:service:WANIPConnection:1#GetInfo" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:GetInfo xmlns:u="urn:dslforum-org:service:WANIPConnection:1#GetInfo"></u:GetInfo></s:Body></s:Envelope>" -s -k
Kommentar
-
Du nutzt jetzt 1:1 den Code von https://knx-user-forum.de/forum/supp...17#post1532217 mit anderer IP, oder?
Was steht bei dir beim Fritzbox Webinterface unter System/Ereignisse? Hast du Fritz!OS 7.12?
Unter Heimnetz/Netzwerk/Netzwerkeinstellungen ist "Zugriff für Anwendungen" zulassen aktiviert?
Kommentar
-
Andy, in deinem PortForwarding-Aufruf nutzt du die NewRemoteAddress 0.0.0.0 - mich würde wundern, wenn Portforwarding damit funktioniert (das ist ja im Prinzip die Netzadresse für "alle IPs"). Da würde ich auch mit "invalid data" antworten
Versuch doch mal eine spezifische andere Adresse...
Ich weiß auch nicht, ob eine LeaseDuration von 0 gültig ist. Würde da sicherheitshalber erstmal zB 120 eintragen...
Kommentar
-
Du nutzt jetzt 1:1 den Code von https://knx-user-forum.de/forum/supp...17#post1532217 mit anderer IP, oder?
habs gegen die 7490 (7.12) und 7590 (7.20) getestet.
Die Anmeldung wird geloggt:
log.PNG
und ja, alles an:
heimnetz.PNG
ich starte die box evtl mal komplett durch.. glaube manchmal zickt sie.
Update: bewirkt keine Besserung -> invalid Action
Das FHEM Wiki schreibt dazu:
TR064-Error 401:invalid action
Eventuell ist auf der Fritzbox ein Benutzer gesetzt und im Modul nicht korrekt angegeben bzw. mit falschen Rechten versehen (attribut boxUser).
Ich teste mal weiter mit Benutzerrechten..Zuletzt geändert von psilo; 04.08.2020, 07:17.
Kommentar
-
Morg
RemoteHost ist doch der Rechner von außen - da möchte ich egal woher der Zugriff kommt weiterleiten. Gebe ich eine fixe IP ein, heißt es RemoteHostOnlySupportsWildcard. Vielleicht gibt es hier eine richtigere Schreibweise!?
LeaseDuration muss "infinity" sein - was für mich auch logisch ist - eine Portfreigabe, die automatisch abläuft ist sonderbar. Hab auch in einer Spezifikation gelesen, dass manche Geräte hier nur "0" zulassen. Bei was anderem als 0 heißt es auch: OnlyPermanentLeasesSupported
Der Fehler müsste also woanders liegen. Was mich irritiert: Mache ich zB bei PortMappingDescription einen "Fehler", indem ich Anführungszeichen eingebe, heißt es Invalid Args. Bereinige ich den Fehler und lass bei LeaseTime eine Zahl > 0 drin, wird eben diese Leasetime mockiert. Alle vorigen Argumente werden also scheinbar geschluckt. Aber sobald ich den Leasetime Fehler behebe, bin ich wieder bei InvalidArgsAls würde da noch dahinter was fehlen, keine Ahnung.
Kommentar
-
Vielleicht vermische ich jetzt auch die Argumente mit denen für ssh-Tunnel... dann bräuchte es prinzipiell ja gar kein remote host-Argument.
Das finde ich jetzt auch inkonsistent in Bezug auf die Freigaben in der Nutzeroberfläche. Du brauchst einen Port nach "außen", die IP muss offen bleiben, da sich die (externe) IP ja auch ändern kann. (Dafür fände ich "remote host" aber komisch...).
Dann brauchst du eine lokale IP (genauer: eine IP im lokalen Netz), wohin die Freigabe laufen soll, das ist ja dann wohl der "Internal Host".
Aber das waren nur Vermutungen; solange die Fehlermeldungen so unspezifisch bleiben, kann man eben nur raten. Vielleicht nicht immer richtig
Kommentar
-
Ich denke, wir raten da schon richtig..Soweit ich mitbekommen habe, sind die Argumente "allgemeine" Dinge für das Protokoll und es kann vielleicht in der weiten Welt mal eine Situation geben, wo zB RemoteHost relevant ist bzw. gesetzt werden kann. Bei der Fritzbox halt eben nicht, und drum wird dort eben nur "Wildcard" unterstützt. Schade nur wirklich, dass die Fehlermeldungen so unspezifisch sind
Kannst du's bei dir mal testen? Ansonsten hoffe ich auf psilo und/oder hake halt nochmals beim Support nach.
Kommentar
-
Also, auf den GetPortMappingNumberOfEntries kommen erstmal nur Fehler. Wenn das Quoting und die Leerzeichen korrigiert sind, bekomme ich einen Fehler "Invalid Args", Nr. 402.
Auf den AddPortMapping bekomme ich einen "Argument Value Invalid", Nr. 600.
Code:curl --anyauth -u smarthome:password 'https://192.168.2.254:49443/upnp/control/wanipconnection1' -H 'Content-Type: text/xml; charset="utf-8"' -H 'SoapAction: urn:dslforum-org:service:WANIPConnection:1#AddPortMapping' -d '<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:AddPortMapping xmlns:u="urn:dslforum-org:service:WANIPConnection:1"><NewRemoteHost>0.0.0.0</NewRemoteHost><NewExternalPort>12345</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>12345</NewInternalPort><NewInternalClient>192.168.2.3</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>tas</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:AddPortMapping></s:Body></s:Envelope>' -s -k
Kommentar
-
Interessant - offenbar vermurkst das Forum hier teilweise Copy Paste. Ist mir bei psilo schon aufgefallen, dass er ein Leerzeichen drin hatte, wo es nicht hingehörte. Und die Quotes hat er bei mir auch falsch kopiert
Egal, bei mir tut es auch mit "falschen" Quotations. Das ist jetzt alles sehr sonderbar. Was für ne Hard- und Firmware hast du? Wie können wir da weiter vorgehen?
.. unglaublich aber wahr - bei mir funktioniert es nun plötzlich. Eventuell lags an der Authentifizierung, keine Ahnung. Ich kann Port adden. Löschen noch nicht, aber wird schon werden..
EDIT2: Es wird noch abstruser.. ich setze den gleichen Befehl mehrfach hintereinander ab. 2 Mal "Invalid Args", danach wird er immer geschluckt. Keine Ahnung, was hier los ist. Aber probiert mal, den Befehl mehrfach zu senden..?Zuletzt geändert von Onkelandy; 04.08.2020, 14:58.
Kommentar
Kommentar