Ankündigung

Einklappen
Keine Ankündigung bisher.

AVM Plugin

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

    mich wundert der "Content-Type: text/xutf-8"" bei mir geht es nur mit "Content-Type: text/xml; charset="utf-8"", bei letzterem macht auch das "" Sinn

    und weiter bin ich:

    Code:
    curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialGetConfig" -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:X_AVM-DE_DialGetConfig xmlns:u='urn:dslforum-org:service:X_VoIP:1' /></s:Body></s:Envelope>" -s -k
    
    <?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:X_AVM-DE_DialGetConfigResponse xmlns:u="urn:dslforum-org:service:X_VoIP:1">
    <NewX_AVM-DE_PhoneName>FON1: ALARM</NewX_AVM-DE_PhoneName>
    </u:X_AVM-DE_DialGetConfigResponse>
    </s:Body>
    </s:Envelope>a
    Was ich jetzt nicht raffe ist, warum ich da nicht einfach meine DECT Telefone oder meine 3 VOIP Rufnummern habe... Ideen?

    Ich bin doof.. das gibt nur das konfigurierte zurück... Liste via:
    Code:
    curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetClients" -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:X_AVM-DE_GetClients xmlns:u='urn:dslforum-org:service:X_VoIP:1' /></s:Body></s:Envelope>" -s -k
    Offenbar will er also das, was unter Telefonie -> Telefoniegeräte -> Bezeichnung steht, als Parameter für die setConfig.. Ich passe das README noch an bzw. teste das nochmal.

    Update: das hier ist recht spannend zum Thema, was als Parameter der X_AVM-DE_DialSetConfig zulässig ist: https://forum.fhem.de/index.php?topic=49262.0
    Zuletzt geändert von psilo; 04.11.2016, 07:35.

    Kommentar


      So jetzt bin ich wirklich schlauer:

      Erlaubte Strings für den Parameter von set_call_origin kriegt ihr via:
      Code:
      curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetPhonePort" -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:X_AVM-DE_GetPhonePort xmlns:u='urn:dslforum-org:service:X_VoIP:1'><s:NewIndex>1</s:NewIndex></u:X_AVM-DE_GetPhonePort></s:Body></s:Envelope>" -s -k
      dabei <s:NewIndex>1</s:NewIndex> von 1 hochzählen.

      Ich habe mit einem der Werte jetzt set_call_origin aufgerufen und es wird korrekt gesetzt.

      Abfrage via:
      Code:
      curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialGetConfig" -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:X_AVM-DE_DialGetConfig xmlns:u='urn:dslforum-org:service:X_VoIP:1' /></s:Body></s:Envelope>" -s -k
      Wenn jemand eine Idee hat, wie ich die Werte exakt so auch via GUI kriege, bitte mir mitteilen. Ansonsten werde ich im Plugin die Abfragefunktion mit Index als Parameter ergänzen.

      Kommentar


        Cool, funktioniert nun auch bei mir... mit aktueller Fritz!OS. Macht es Sinn die set_call_origin() um eine Abfrage und Syntaxprüfung zu ergänzen?

        Kommentar


          gama beschreib mal genau.. das prob ist, dass du die indizes nicht weisst die via X_AVM-DE_GetPhonePort existieren, das automatisch abzufragen ist m.E. daher nicht gescheit möglich... was mich noch wundert: ich hatte vor Änderung ein "Fon 1: ALARM" drin. das kriege ich jetzt a) nichtmehr rein, b) taucht es nicht bei GetPhonePort auf.. Wir sollten da noch etwas experimentieren

          Kommentar


            Der wert in dem Feld ist übrigens identisch mit dem, was unter Telefonie -> Anrufe -> Wählhilfe verwenden -> Verbindung mit dem Telefon steht. Damit habe ich es jetzt auf FON1: ALARM umgestellt

            gama https://github.com/smarthomeNG/smart...9a0507a7811b01
            Zuletzt geändert von psilo; 04.11.2016, 10:53.

            Kommentar


              Code:
              git pull
              ist schon eine tolle Sache

              Wäre interessant zu wissen, wie AVM mit den Port IDs umgeht... wären diese immer ab "1" fortlaufend gefüllt, könnte man einen loop starten bis ein leerer Eintrag zurück kommt... nicht schön, aber evtl. ein praktikabler workaround.

              Zum Test habe ich ein paar "IP Telefone" angelegt, die aber bei der Wahlhilfe gar nicht angezeigt werden...

              Frage ich der Reihe nach die Ports ab so kommen nur 2 Einträge zurück:

              Code:
              1:ISDN und Schnurlostelefone
              2:DECT: S68H
              ab dem 3. Port kommt
              Code:
              <errorDescription>SpecifiedArrayIndexInvalid</errorDescription>
              Würde AVM die Ports der Reihe nach belegen, so wäre das evtl. die end-loop Bedingung.

              Mir ist jedoch noch nicht die AVM Logik klar, denn:

              In der Wählhilfe stehen folgende Telefone zur Auswahl:
              Code:
              Telefon FON 1
              Telefon FON 2
              ISDN und Schnurlostelefone
              S68H
              Unter der Liste "Telefoniegeräte" sind insgesamt folgende Telefone eingerichtet:
              Answering Machine integriert
              IP-Telefon 1 LAN/WLAN
              IP-Telefon 2 LAN/WLAN
              IP-Telefon 3 LAN/WLAN
              IP-Telefon 4 LAN/WLAN
              S68H DECT
              Telefon FON 1 FON 1
              Telefon FON 2 FON 2

              Hast Du eine Idee, warum die "FON *" und "LAN/WLAN" nicht angezeigt werden? Vielleicht eine (noch) fehlende Implementierung seitens des Herstellers?


              Kommentar


                P.S: start_call('**9') funktioniert jetzt mit der neuen set_call_origin('DECT: S68H')!

                Kommentar


                  P.P.S: noch eine Ergänzung für das curl script um nicht im xml suchen zu müssen:

                  Code:
                  | grep -oP '(?<=<NewX_AVM-DE_PhoneName>).*(?=</NewX_AVM-DE_PhoneName)'
                  extrahiert den Namen...

                  Kommentar


                    gama nein, wie gesagt ich versuche das auch herauszufinden und bin über interpretationshilfe dankbar spannend ist, dass ich via wählhilfe mehr als origin reinkriege, als über die soap-funktion. das verstehe ich noch nicht so ganz

                    der link zu fhem sagt aber vermutlich schon die antwort - Zitat:

                    " Das ist mal wieder so Beispiel für die Qualität von TR064 bei AVM. Anscheinend kann man nur Namen eingeben, die auch über
                    get Fritzbox tr064Command X_VoIP:1 x_voip X_AVM-DE_GetPhonePort NewIndex 1...21 auswählbar sind.

                    Das sind bei mir aber nur die Dect-Telefone oder "ISDN und Schnurlostelefone".

                    Fon1 kann man nicht über TR064 einstellen."


                    Kommentar


                      Erstmal danke für eure Arbeit an dem Plugin...

                      Heute habe ich nochmal den Versuch gestartet per GA mein Telefon klingeln zu lassen und was soll ich sagen... es funktioniert...
                      Hier noch der Item-Code für die Nachwelt:
                      Code:
                      [tuerklingel]
                          name = Türklingel
                          type = foo
                          eval = (sh.fb1.set_call_origin("**51"), sh.fb1.start_call("**620")) if sh.tuerklingel.an() == 1 else None
                          eval_trigger = tuerklingel.an
                          [[an]]
                              type = bool
                              knx_dpt = 1
                              knx_listen = x/x/x
                              value = 0
                              visu_acl = r
                              enforce_updates = yes


                      aber eine Fehlermeldung habe ich noch die ich nicht verstehe, da ich die Items aus der ReadMe übernommen habe
                      Code:
                      avm.message_number_old Item avm.message_number_old: problem evaluating (sh.avm.tam.message_number_total()-sh.avm.tam.message_number_new()): 'Item' object has no attribute 'message_number_total'
                      Edith sagt: Problem hat sich erledigt... hatte bei dem Items Fehler bei den [ ]
                      Zuletzt geändert von Yfkt5A; 09.11.2016, 00:50.
                      cu Yfkt5A
                      DALI(ABB DG/S1.1), KODI RaspberryPi4, QNAP TS-509, Zehnder ComfoAir 200 L Luxe
                      DELL T20 mit Proxmox - VM´s: SmartHomeNG/smartVISU, TVHeadend, jellyfin

                      Kommentar



                        sh.fb1.set_call_origin("**51") dürfte nach den neusten erkenntnissen aber eigentlich nicht gehen. hier muss laut spec ein ausgeschriebener name rein. siehe doku / neue funktionen im readme im dev strang

                        Kommentar


                          Hab ich etwas gesagt das ich auf DEV bin
                          evtl. geht ja sh.fb1.set_call_origin("**51") gar nicht, aber das Telefon klingelt... also funktioniert zumindest sh.fb1.start_call("**620") und im Log sind keine Fehler mehr...

                          Was ich aber nicht hinbekommen habe, die Telefonliste wie auf https://github.com/smarthomeNG/smarthome/wiki/AVM beschrieben in die SV einzubinden. Anfänglich hatte ich ein paar Fehlermeldungen durch Syntax/Einrückungsfehler die ich beheben konnte, dann habe ich noch die Pfade angepasst /var/www/html/smartvisu/temp/calllist.csv.
                          Trotz alledem wird die calllist.csv erst garnicht erstellt und in der smartVISU erscheint dann in der Fehlermeldung der komplette Code der avm_sv.php, vermutlich eben weil er die Datei nicht findet.

                          Wird die Einbindung des AVM-SmartHome-Plugins in smartVISU den weg ins (nächste) Release schaffen? So dringend wär das für mich nämlich noch nicht und würde mich dann um wichtigere Sachen kümmern...
                          cu Yfkt5A
                          DALI(ABB DG/S1.1), KODI RaspberryPi4, QNAP TS-509, Zehnder ComfoAir 200 L Luxe
                          DELL T20 mit Proxmox - VM´s: SmartHomeNG/smartVISU, TVHeadend, jellyfin

                          Kommentar


                            Yfkt5A nein aber das ist unabhängig. man muss als parameter einen klarnamen übergeben, die kriegt man nur über einen anderen webservice raus. für diesen habe ich im dev eine neue funktion gebaut. ansonsten greift als origin das, was du über die wählhilfe gesetzt hast

                            bei dem csv hast du vermutlich rechteprobleme bei der erstellung, ich arbeite auf einem synology nas, das kann bei euch ggf anders sein. auf fehler im log achten. die lösung ist ein beispiel und nicht zwingend allgemein 1:1 gültig

                            Kommentar


                              Der Log von SmartHome spuckt aber im Moment keine Fehlermeldung aus...
                              Der Log im Backend entspricht doch den Dateien im log-Verzeichnis oder gibts irgendwo noch mehr Logs?

                              An ein Rechteproblem hatte ich auch schon gedacht, aber wird die Datei nicht als Benutzer smarthome erstellt? Der sollte doch auch Rechte haben in temp zu schreiben...
                              cu Yfkt5A
                              DALI(ABB DG/S1.1), KODI RaspberryPi4, QNAP TS-509, Zehnder ComfoAir 200 L Luxe
                              DELL T20 mit Proxmox - VM´s: SmartHomeNG/smartVISU, TVHeadend, jellyfin

                              Kommentar


                                Nein er entspricht diesen. Kann den Fehler konkret auch nicht weiter ansehen. Schau halt an, ob Deine Logik das Richtige macht, pack selber Debugausgaben rein etc.

                                Kommentar

                                Lädt...
                                X