Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

AVM Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hallo zusammen,

    ich war mit der Lösung oben auch zufrieden. Der Diskussionsverlauf ist oben zu finden. Was wir zusammen nochmal festhalten sollten, ist die Tatsache, dass die Methode has_attr() im SmartPlugin für ein Pluging mit definierter Instanz nur dann True zurückliefert, wenn auch das Attribut die Instanzerweiterung trägt.

    So wie ich den Kommentar von Msinn oben interpretiere, war das Verhalten für das SmartPlugin so auch gewollt. Von daher ist die aktuelle Lösung für mich auch sauber. Wir sollten das aber nochmal für alle Plugins festhalten, die Multiinstanz fähig sind. Soll ich dafür mal einen SmartPlugin Support Thread anlegen?

    Viele Grüße

    Kommentar


      Update: Es könnte sein, dass sich aber FritzOS 7.2 mit der Türklingelerkennung etwas geändert hat.. Seit dem Patch kriege ich zumindest Mails mit "Auf Ihrer FRITZ!Box ist ein Türruf von Klingeltaste 1 (**21) eingegangen."

      Ich check die Tage dazu mal den CallMonitor.

      Kommentar


        psilo Siehst du eine Möglichkeit, über dein Plugin auf einem Fritzbox Modem eine Portfreigabe für ein Gerät ein- und auszuschalten? Habe das hier gefunden: https://github.com/franciscogouveia/node-fritzbox allerdings funktioniert das mit einer aktuellen Firmware nicht

        Kommentar


          Onkelandy das plugin kann es (noch) nicht. Tr064 muesste es aber hergeben: https://avm.de/fileadmin/user_upload...ipconnSCPD.pdf

          Was denkst du?

          Das in deinem link macht das ueber die webseite. Das ist imho instabil, da die dauernd was aendern

          Kommentar


            hmmm habs jetzt am pc nochmal in ruhe durchgelesen. meine idee mit add und delete geht wohl nicht: Port mapping entries are only allowed for hosts inside of LAN. Furthermore hosts can only add port mapping entries for themselves and not for other hosts in the LAN. It is not intended to allow port mapping entries for the guest network or hosts with IP addresses routed into WAN.

            alle anderen services sind nur GET-servies, die infos auslesen.

            Kommentar


              Also die Einschränkung von oben sehe ich jetzt nicht so als Problem. Ich möchte eigentlich nur für den Raspi im LAN kurzzeitig das Portmapping auf Port 80 aktivieren, wenn certbot das Zertifikat erneuert und dann wieder deaktivieren. Ist zwar recht eingeschränktes Szenario, das dann funktioniert, aber immerhin

              Kommentar


                warum redirectest du port 80 nicht auf 443? ich glaube ich habe das so und das funktioniert super ;-) bei mir ist der shng rechner aber nicht der, wo nginx läuft. das ist ja auf nem sep. raspi. daher hätte ich derzeit keinen benefit von der funktion. wenn ich den nginx mal dockerisiere, vielleicht.

                kann aber mal testweise die funktion add und remove implementieren, wenn du sie dann freundlicherweise testen würdest ;-)

                Kommentar


                  Zitat von psilo Beitrag anzeigen

                  kann aber mal testweise die funktion add und remove implementieren, wenn du sie dann freundlicherweise testen würdest ;-)
                  Deal!
                  Redirect check ich dann, falls es nicht klappt Danke!!!!

                  Kommentar


                    hmm das ding programmieren ist das eine, die parameter zu verstehen das andere. vielleicht kriegen wir zusammen raus, was das alles ist?

                    insbes. NewInternalClient und NewLeaseDuration ? Setzen muss ich im SOAP request offenbar alle

                    NewRemoteHost in RemoteHost
                    NewExternalPort in ExternalPort
                    NewProtocol in PortMappingProtocol
                    NewInternalPort in InternalPort
                    NewInternalClient in InternalClient
                    NewEnabled in PortMappingEnabled
                    NewPortMappingDescription in PortMappingDescription
                    NewLeaseDuration in PortMappingLeaseDuration

                    Kommentar


                      Hm, etwas kryptisch Wie wärs wenn wir mal mittels GetGenericPortMappingEntry ein Mapping auslesen und gucken?
                      NewInternalClient wird wohl die IP Adresse des internen Geräts sein, an das es weitergeleitet wird oder auch Hostname.
                      LeaseDuration keinen Schimmer - da könnte man ja einfach mal 1000 eingeben, hehe und gucken.

                      Kommentar


                        eine reihe der curls geht bei mir nicht, kannst du mal testen? laut https://avm.de/fileadmin/user_upload...ipconnSCPD.pdf gibt es sowohl die die gehen, als auch die die nicht gehen.

                        user, passwort und ip halt anpassen.

                        Code:
                        curl --anyauth -u user:'password' "https://192.168.178.1:49443/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:schemas-upnp-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:schemas-upnp-org:service:WANIPConnection:1" /></s:Body></s:Envelope>" -s -k
                        -> geht nicht, invalid action
                        
                        curl --anyauth -u user:'password' "https://192.168.178.1:49443/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#GetPortMappingNumberOfEntries" -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:GetPortMappingNumberOfEntries xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /></s:Body></s:Envelope>" -s -k
                        -> geht nicht, invalid action
                        
                        curl --anyauth -u user:'password' "https://192.168.178.1:49443/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -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:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /></s:Body></s:Envelope>" -s -k
                        -> geht
                        
                        curl --anyauth -u user:'password' "https://192.168.178.1:49443/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#GetStatusInfo" -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:GetStatusInfo xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /></s:Body></s:Envelope>" -s -k
                        -> geht
                        Zuletzt geändert von psilo; 24.07.2020, 09:26.

                        Kommentar


                          LeaseDuration ist die Dauer, für die ein Client am Router zugelassen ist. Nach Ablauf dieser Zeit wird der Client deaktiviert - ggfls. auch gelöscht. Je nach Einstellung des Routers können Clients ihren Lease selbst erneuern, oder dies muss manuell über das Admin Interface des Routers gemacht werden.
                          Im Admin Interface des Routers sollte man sehen können, welche Werte Für die LeaseDuration zulässig sind.

                          (Bitte die Antwort einfach löschen, wenn sie banal / nicht hilfreich ist und ich Euch falsch verstanden habe)

                          Gruß
                          Wolfram

                          Kommentar


                            wvhn Im Admin Interface der Fritzbox gibt es eben diese Bezeichnungen nicht. LeaseTime kenne ich von WLAN oder DHCP, bei der Portfreigabe scheint es mir wenig sinnvoll - aber wir schauen mal, ob sich da über ne Abfrage was rauslesen lässt.

                            psilo Leider gleichen Effekt wie bei dir. Hier steht was von Userzugang.. https://wiki.fhem.de/wiki/FRITZBOX#T...invalid_action Aber ich hab bei mir die Fritzbox komplett resettet und quasi jungfräulich ohne PW und ohne User (Zugang nur innerhalb LAN)

                            Kommentar


                              Hab mir jetzt mal das
                              igdconnSCPD.xml von der Fritzbox geholt und angesehen. Da sollte ja alles gelistet sein, was die Fritze unterstützt. Die meisten Sachen tun auch. Blöde Frage - wie kann ich denn ein Argument mit angeben? Also zB bei GetGenericPortMappingEntry muss NewPortMappingIndex mit angegeben werden. Wo würde ich das beim curl dranhängen?

                              Hätte mir das hier noch gerne angesehen, aber bei meinem nginx wird nur der Inhalt der PHP Datei angezeigt (nicht der ganze): https://www.symcon.de/forum/threads/...990#post235990
                              Zuletzt geändert von Onkelandy; 25.07.2020, 21:07.

                              Kommentar


                                Ich versuch Dir das CURL für GetGenericPortMappingEntry zu bauen. Ich update nachher hier.

                                Kommentar

                                Lädt...
                                X