Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Problem] FritzBox WLAN schalten mittels TR-064

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Problem] FritzBox WLAN schalten mittels TR-064

    This topic has been deleted. Only users with topic management privileges can see it.
    • Kobi
      Kobi last edited by

      Grüezi Community

      Gemäss der publizierten AVM Dokumentation bzgl. der API für TR-064 Support WLANConfiguration wurde mit der Version 23 (23.03.2018, wlanconfigSCPD.pdf) die neue Action X_AVM-DE_SetWLANGlobalEnable implementiert.

      Wenn ich diese richtig interpretiere, lässt sich damit das WLAN analog wie bei Betätigung der physischen WLAN-Taste an der FritzBox schalten. Die Schaltung geschieht unabhängig, des 2.4 GHz-, oder 5.0 GHz-, oder gleichzeitig aktivierten WLAN-Frequenzbandes.

      In der github-Dokumentation vom ioBroker.tr-064 wird die Möglichkeit gezeigt, jedes Kommando gemäss der AVM FritzBox Spezifikation, als Json an die FritzBox zu
      kommunizieren. Dazu wird exakt anhand eines Beispiels beschrieben, wie die Nachricht als Json verpackt an die FritzBox übermittelt werden kann.

      Wennn ich das gezeigte Beispiel zum Schalten des Anrufbeantworters (x_tam.pdf) wie folgt verwende, wird als Antwort im commandResult nur {} empfangen:

      command:
      setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:X_AVM-DE_TAM:1","action": "SetEnable", "params": {"NewIndex": "0","NewEnable": "1"}}');

      commandResult:
      {}

      Wenn ich mit nachfolgendem Kommando z.B. einen spezifischen Telefonbucheintrag (x_contactSCPD.pdf) abfrage, erscheint im commandResult folgende korrekte Antwort im XML-Format:

      command:
      setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:X_AVM-DE_OnTel:1","action": "GetPhonebookEntry","params": {"NewPhonebookID": 1, "NewPhonebookEntryID" : 6}}');

      commandResult:
      {"NewPhonebookEntryData":"<?xml version="1.0" encoding="utf-8"?><contact modified="0"><category>0</category><id>people/c268485185529455437</id><person><realName>Andreas Tobler</realName></person><telephony\nnid="2"><number type="label:Main" prio="1" id="0">+41 71 446 48 53</number><number\ntype="mobile" id="1">+41 79 433 71 93 </number></telephony><services\nnid="1"><email classifier="business" prio="1" id="0">andreastobler@gmx.ch</email></services><setup /><uniqueid>63</uniqueid><etag>%EgsBAgMJCycuNz0+PxoEAQIFByIMV1NtUEtKUjlXR289</etag></contact>"}

      Soweit ich in der Community gesehen habe, existieren nicht wenige User, welche den tr-064 Adapter nutzen und festgestellt haben, dass es momentan nicht möglich ist, über die bereitgestellte tr-064 Schnittstelle das FritzBox-WLAN sauber schalten zu können.

      Aus diesem Grund wollte ich mich erkundigen, ob jemand bereits erfolgreich mittels der oben beschriebenen Möglichkeit, die von AVM zur Verfügung gestellte Schnittstelle X_AVM-DE_SetWLANGlobalEnable zum Schalten des WLAN erfolgreich implementieren konnte?

      Soweit ich die AVM API (wlanconfigSCPD.pdf) verstanden habe, sollte mit folgendem Kommando das FritzBox WLAN ein- bzw. ausgeschaltet werden können:

      command:
      setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:WLANConfiguration:1","action": "X_AVM-DE_SetWLANGlobalEnable","params": {"NewX_AVM-DE_WLANGlobalEnable": "0", "X_AVM-DE_WLANGlobalEnable": "1"}');

      commandResult:

      Mit der Version 23 vom 23.03.2018 wurde von AVM diese neue Action eingeführt und ich verstehe nicht, warum in commandResult keine Antwort empfangen wird. Könnte es evtl. an der Implementation vom Adapter tr-064 liegen, oder mache ich einen Denkfehler bei der Interpretation der AVM API Spezifikation?

      Falls jemand über das notwendige Wissen verfügt und mir zeigen könnte, wo ich auf dem Schlauch stehe, oder sogar den tr-064 Adapter um diese Schnittstelle zur
      sauberen Schaltung vom FritzBox WLAN erweitern kann, wäre wahrscheinlich nicht nur ich überglücklich darüber?

      In diesem Sinne besten Dank für Eure Unterstützung.

      Herzlichst
      Urs

      mickym 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @Kobi last edited by mickym

        @kobi Mit dem Befehl kannst WLAN aus- und einschalten. Ein Antwort gibts nicht.

        {
          "service": "urn:dslforum-org:service:WLANConfiguration:1",
          "action": "X_AVM-DE_SetWLANGlobalEnable",
          "params": {
            "NewX_AVM-DE_WLANGlobalEnable": 0
          }
        }
        

        Mit 0 solltest Du das ausschalten, mit 1 einschalten.

        Natürlich "unbestätigt" in den command Datenpunkt eingeben.

        Also Abschalten ging bei mir - einschalten kann ich leider nicht, da zwischen dem iobroker und meiner FB eine WLAN Verbindung ist. 😉

        Eine Antwort gibts nicht - aber das Ausschalten funktioniert. Jedenfalls keinesfalls nur die SetEnable Funktion nutzen - die disabled Dir Dein 2,4GHz und das bekommst auch nicht mehr mit dem Taster eingeschaltet. Selbst ein Restore der WLAN Einstellungen hat nichts gebracht, sondern ich musste den iobroker über LAN an die FB hängen und das Netz mit 1 wieder enablen. Über die Oberfläche war alles was 2,4GHz betrifft nicht mehr anwählbar.

        Mit GetInfo bekommst Du jedenfalls den Status:

        {
          "service": "urn:dslforum-org:service:WLANConfiguration:1",
          "action": "GetInfo",
          "params": {}
        }
        

        Antwort:

        {
          "NewEnable": "1",
          "NewStatus": "Up",
          "NewMaxBitRate": "Auto",
          "NewChannel": "11",
          "NewSSID": "SSID",
          "NewBeaconType": "11i",
          "NewX_AVM-DE_PossibleBeaconTypes": "None,11i,WPAand11i,11iandWPA3",
          "NewMACAddressControlEnabled": "1",
          "NewStandard": "n",
          "NewBSSID": "00:00:00:00:00:00",
          "NewBasicEncryptionModes": "None",
          "NewBasicAuthenticationMode": "None",
          "NewMaxCharsSSID": "32",
          "NewMinCharsSSID": "1",
          "NewAllowedCharsSSID": "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~",
          "NewMinCharsPSK": "64",
          "NewMaxCharsPSK": "64",
          "NewAllowedCharsPSK": "0123456789ABCDEFabcdef"
        }
        

        Aber wie gesagt SetEnable - da hat nicht mal ein Restore über eine Export Datei geholfen - obwohl ich auch nur die WLAN Parameter wiederhergestellt hatte - vielleicht wird welche Bänder genutzt werden auch woanders gespeichtert.

        Also mit dem X_AVM-DE_SetWLANGlobalEnable verhält es sich aber wie mit Taster drücken. Sprich die WLAN LED geht aus und kannst es mit dem Taster wieder einschalten.

        Wenn übrigens ein Service nur IN Parameter hat, dann gibts auch keine Rückantwort (bzw. eine leere).

        f8f4f3c1-b2ba-4fd9-aa7a-47ca5e5badf8-image.png

        Nur wenn ein Service - sowohl IN und OUT Parameter unterstützt bekommst Du auch eine Antwort. Willst Du also die WLAN Eigenschaften eines bestimmten Gerätes mit einer bestimmten IP-Adresse abfragen, gibst Du das als Input mit - und bekommst die 4 Parameter als Ausgabe:

        54d7fea6-64f9-41b3-86e7-568196c9d863-image.png

        In der Praxis sieht das so aus:

        {
          "service": "urn:dslforum-org:service:WLANConfiguration:1",
          "action": "X_AVM-DE_GetSpecificAssociatedDeviceInfoByIp",
          "params": {"NewAssociatedDeviceIPAddress":"192.168.178.56"}
        }
        

        und das Ergebnis (MAC Adresse genullt 😉 )

        {
          "NewAssociatedDeviceMACAddress": "00:00:00:00:00:00",
          "NewAssociatedDeviceAuthState": "1",
          "NewX_AVM-DE_Speed": "54",
          "NewX_AVM-DE_SignalStrength": "69"
        }
        

        Auch bei Deinem Anrufbeantworterbeispiel kannst Du keine Antwort erwarten, da nur Eingabeparameter:

        59011b36-e06d-415a-8f5e-50aa812eaee7-image.png

        Also ist das völlig normal, dass Du nicht auf jedes Kommando eine Ausgabe erhälst.

        Kobi 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Kobi last edited by mickym

          @kobi sagte in [Problem] FritzBox WLAN schalten mittels TR-064:

          Aus diesem Grund wollte ich mich erkundigen, ob jemand bereits erfolgreich mittels der oben beschriebenen Möglichkeit, die von AVM zur Verfügung gestellte Schnittstelle X_AVM-DE_SetWLANGlobalEnable zum Schalten des WLAN erfolgreich implementieren konnte?
          Soweit ich die AVM API (wlanconfigSCPD.pdf) verstanden habe, sollte mit folgendem Kommando das FritzBox WLAN ein- bzw. ausgeschaltet werden können:
          command:
          setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:WLANConfiguration:1","action": "X_AVM-DE_SetWLANGlobalEnable","params": {"NewX_AVM-DE_WLANGlobalEnable": "0", "X_AVM-DE_WLANGlobalEnable": "1"}');

          So was ist natürlich Schwachsinn - Du musst Dich schon entscheiden, ob Du Ein- oder Ausschalten willst.

          Also entweder
          "NewX_AVM-DE_WLANGlobalEnable": "0" zum Ausschalten oder
          "NewX_AVM-DE_WLANGlobalEnable": "1" zum Einschalten.

          Beides als Parameter mitzugeben, macht kaum Sinn. 😉 😉

          1 Reply Last reply Reply Quote 0
          • Kobi
            Kobi @mickym last edited by

            @mickym Danke für Deine prompte und kompetente Antwort!

            Mit folgendem Befehl gemäss Deiner Beschreibung, lässt sich das MainWLAN korrekt ausschalten:

            command:
            setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:WLANConfiguration:1","action": "X_AVM-DE_SetWLANGlobalEnable","params": {"NewX_AVM-DE_WLANGlobalEnable": 0}');

            commandResult:
            {}

            Mit folgendem Befehl gemäss Deiner Beschreibung, lässt sich das MainWLAN korrekt einschalten:

            command:
            setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:WLANConfiguration:1","action": "X_AVM-DE_SetWLANGlobalEnable","params": {"NewX_AVM-DE_WLANGlobalEnable": 1}');

            commandResult:
            {}

            Mit folgendem Befehl gemäss Deiner Beschreibung, lässt sich der Anrufbeantworter[0] korrekt ausschalten:

            command:
            setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:X_AVM-DE_TAM:1","action": "SetEnable", "params": {"NewIndex": 0,"NewEnable": 0}}');

            commandResult:
            {}

            Mit folgendem Befehl gemäss Deiner Beschreibung, lässt sich der Anrufbeantworter[0] korrekt einschalten:

            command:
            setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:X_AVM-DE_TAM:1","action": "SetEnable", "params": {"NewIndex": 0,"NewEnable": 1}}');

            commandResult:
            {}

            Wie Du richtig bemerkts hast, wird der Befehl in commandResult nur quittiert, falls in der Befehlssequenz sowohl IN- als auch OUT-Parameter involviert waren!

            Vielen Dank für Deine wertvolle Unterstützung!

            @Apollon77 Soweit ich im Änderungsprotokoll sehen kann, bist Du des Öfteren mit dem Adapterunterhalt von tr-064 beschäftigt. Als Anregung wäre es für alle User sehr hilfreich, wenn der bestehende Datenpunkt (wlan) zum globalen Schalten aller aktiven WLAN Bänder (2.4 GHz, 5.0 GHz) genutzt werden könnte. Momentan funktioniert das leider nicht, sodass jeder User nur mittels eigenem Befehl via tr-064.0.states.command, ein sauberes Schalten vom MainWLAN, analog zur FritzBox WLAN-Taste realisieren kann. Vielleicht besteht ja die Möglichkeit, diesen Wunsch bei der nächsten Modifikationen einfliessen zu lassen?

            apollon77 1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 @Kobi last edited by

              @kobi bitte github issue mit allen Infos anlegen.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate
              FAQ Cloud / IOT
              HowTo: Node.js-Update
              HowTo: Backup/Restore
              Downloads
              BLOG

              864
              Online

              31.9k
              Users

              80.2k
              Topics

              1.3m
              Posts

              3
              5
              1028
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo