Ankündigung

Einklappen
Keine Ankündigung bisher.

Fritz DECT 301

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

    #16
    aschwith soweit ich das sehe, würde man dann aber die daten direkt über die web gui abgreifen? das ist für die dienste, die tr-064 webservices bieten imho ineffizient und dürfte gerade schwächere boxen noch mehr überlasten.
    das mit dem callmonitor verstehe ich noch nicht so ganz. via direkter verbindung kriege ich die infos ja live mit.. wenn ich klassisch auf die weboberfläche gehe, müsste ich ja pollen?

    oder habe ich an dem pdf irgendwas übersehen?!

    Kommentar


      #17
      Es stimmt schon, das http interface musst Du pollen und sendet damit nicht Event basiert so wie der Callmonitor aktuell implementiert ist. Letzteren würde ich auf jeden Fall so lassen. Über das AVM Http interface greifst Du aber nicht nicht Daten über die Web Gui ab sondern auf einem separaten Port, der die XML Strings zurückgibt.

      Ich bin mit dem Session ID basierten Ameldeverfahren nicht zurecht gekommen. Hier wird nicht direkt über Nutzernamen und Kennwort authentifiziert sondern indirekt über eine Session ID (siehe Dokument oben).

      Kommentar


        #18
        ok das muss ich mir mal ansehen.. und ggf mal den webdeveloper auf xhr requests untersuchen... wenn das ne neue webservice-artige schnittstelle ist, die mir durchs raster gefallen ist, lohnt es sich das anzusehen.

        Kommentar


          #19
          Hallo psilo, hallo aschwith,

          es hat mich einfach interessiert und hab mal kurz probiert. (Das reimt sich ja sogar :-) )

          Mit folgendem code-snippet bekomme ich eine gültige SID. Anmeldung ohne User nur mit dem Fritzbox-Passwort

          Code:
          from bs4 import BeautifulSoup
          import hashlib
          import requests
          
          def GetResponse(Challenge, pwd):
              myMd5HashString = (Challenge+'-'+pwd).encode('utf-16LE')
              m=hashlib.md5()
              m.update(myMd5HashString)
              print (m.hexdigest())
              print ('MD5-Hash starting with challenge :' + Challenge + "-" + m.hexdigest())
              return Challenge + "-" + m.hexdigest()
          
          if __name__ == "__main__":
              user=""                         # without User
              pwd="xxxxxxxxxx"                # use your FritzBox-Password
              response = requests.get("http://fritz.box/login_sid.lua")
              myXML = response.text
              soupMap = BeautifulSoup(myXML, 'xml')
              mapArray = soupMap.prettify().split('\n')
              x=0
              for myEntry in mapArray:
                  if myEntry.replace(" ","") == '<Challenge>':
                      myChallenge=mapArray[x+1].replace(" ","")
                  if myEntry.replace(" ","") == '<SID>':
                      mySID=mapArray[x+1].replace(" ","")
                  x += 1
              print ('SID:'+mySID+'  Challenge:'+myChallenge)
              hashResponse=GetResponse(myChallenge, pwd)
              response= requests.get("http://fritz.box/login_sid.lua?username=" + user + "&response=" + GetResponse(myChallenge, pwd))
              myXML = response.text
              soupMap = BeautifulSoup(myXML, 'xml')
              mapArray = soupMap.prettify().split('\n')
              x=0
              for myEntry in mapArray:
                  if myEntry.replace(" ","") == '<Challenge>':
                      myChallenge=mapArray[x+1].replace(" ","")
                  if myEntry.replace(" ","") == '<SID>':
                      mySID=mapArray[x+1].replace(" ","")
                  x += 1
              print ('SID:'+mySID+'  Challenge:'+myChallenge)
          Sicherlich nich perfekt, erfüllt aber fürs erste den Zweck. Vielleicht hilfts ja.

          Gruss Andre
          Zuletzt geändert von AndreK; 04.10.2019, 14:05.

          Kommentar


            #20
            habt ihr eigentlich einen link auf die doku dieser ganzen neuen services? ich habe gerade mal die XHR requests in der web gui gemonitored und kriege nur teilweise schönes json zurück. teilweise kommt vom server auch html in json verpackt. das ist für maschinelle verarbeitung natürlich müll und ich kann mir nicht vorstellen, dass AVM das bspw. für seine apps als neuen kommunikationsstandard (der TR-064 ablöst) verwendet.

            daher bräuchte ich mal was offizielleres... dann kann man mittelfristig nachdenken, ggf das plugin mal neu zu schreiben.

            Kommentar


              #21
              Hallo psilo,

              ich hab rein gar nichts zu diesen Thema, weder Doku noch Hardware (lediglich zwei FB's), keine SmartHome-Devices.
              Ich denke da bist eher Du der Profi. :-)
              Mich hatte nur die neue Login-Variante interessiert bei der aschwith "sich die Zähne ausgebissen hatte".
              Kann leider im Moment nicht mehr beitragen.

              aschwith : Eventuell hast du mehr Infos wenn das Problem mit der SID gelöst ist.

              Gruss Andre

              Kommentar


                #22
                Danke AndreK für den Code. Probier ich bei Gelegenheit mal aus. Doku habe ich damals vom AVM Support bekommen. Diese findet ihr hier:

                https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AVM_TR-064_first_steps.pdf
                https://avm.de/fileadmin/user_upload...-Interface.pdf
                https://avm.de/fileadmin/user_upload...Session_ID.pdf

                Gruß
                Alex

                Kommentar


                  #23
                  Danke AndreK, authentifizierung hat funktioniert und ich konnte einen DECT 301 testweise ansteuern. Ich werde in den nächsten Tagen die komplette Ansteuerung umsetzen.

                  Kommentar


                    #24

                    Kommentar


                      #25
                      Nabend zusammen,
                      ich habe gerade eine Erweiterung für das AVM Plugin ins Develop geschoben, mit der jetzt auch eine Solltemperatur gesetzt werden kann. Ein Beispiel findet ihr in der Readme.
                      Grüße
                      Alex

                      Kommentar


                        #26
                        Hallo,

                        eine Frage: Ich möchte das Plugin um folgende Punkte bei den HKRs erweiteren
                        • Bezeichner des Aktors
                        • Verbindungsstatus des Aktors
                        • Solltemperatur mit ON und OFF
                        • Fensterstatus
                        • Batterieladezustand niedrig
                        • Fehlercodes
                        • Batterieladezustand in Prozent
                        • Tastensperre über UI/API
                        Diese Punkte sind per AHA bzw. per HTTP einstellbar.
                        Kann mir jemand einen Tipp geben, wo genau im PluginCode (welche Funktion im Plugin) die richtige wäre?

                        Danke und Gruß
                        Michael


                        Kommentar


                          #27
                          Hallo Sisamiwe ,

                          Du warst ja schon fleißig im AVM plugin. Trotzdem der Vollständigkeit halber noch eine Antwort auf Deine Frage oben:

                          Das AVM plugin basiert größtenteils noch auf dem alten TR-64 Protokoll. So auch das Empfangen von Statusnachrichten für den DECT 301. Allerdings werden dort nur sehr wenig Statusinfos bereitgestellt. Protokollinfos findest du hier:
                          https://avm.de/fileadmin/user_upload...x_homeauto.pdf

                          Das Steuern des DECT 301 hatte ich schon auf das neue AHA http Interface umgestellt:
                          https://avm.de/fileadmin/user_upload...-Interface.pdf

                          Falls jemand Zeit und Lust hat, kann er gerne den kompletten Statusempfang auf das neue AHA http interface mit deutlich mehr Möglichkeiten umstellen.

                          Soweit die Infos.

                          Viele Grüße


                          Kommentar


                            #28
                            Hallo aschwith ,

                            das AVM Plugin als solches ist zu mächtig für meine bescheidenen Programmierkenntisse mit Python, aber....

                            Ich habe (erstmal) ein eigenes Plugin für AVM Smarthome Geräte geschrieben. Dieses Plugin nutzt das AHA http Interface. Verwendet wird die Python Lib "pyfritzhome", die übrigens auch die Basis für das entsprechende Plugin für Homeassistant ist.

                            Inhaltlich werden Schalter, Thermostate, Temperatursensoren und Fensterkontakte unterstützt. Getestet habe ich es nur mit Thermostaten.

                            Das Plugin ist noch in meinem Github, kann aber gern getestet werden. https://github.com/sisamiwe/avm_smarthome
                            Wir können hier gern disktieren, man ggf. das aktuelle AVM Plugin auftrennen will oder meinen Entwurf in das Plugin integrieren.

                            Beste Grüße

                            Kommentar

                            Lädt...
                            X