Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. TR-064 Fritzbox Anrufbeantworter

    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

    TR-064 Fritzbox Anrufbeantworter

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

      @chris299

      Vielen Dank

      muss ich mir mal mit anschauen.
      Bis zur Firmware 8.xx konnte ich meine Nachrichten mit speex in wav konvertieren.
      Da AVM die Qualität der Nachrichten erhöt hat funktionierte das nicht mehr.
      Ich habe versucht eine komfortable Lösung mit den Imap-Adapter (nichts gegen den Adapter) zu finden, aber so richtig gefällt mir das auch nicht, da ich mir die Nachrichten per Mail schicken lassen muss und die immer im Posteingang liegen müssen.
      Dann habe ich hier ein Script gefunden, was mir schon besser gefällt.

      Wenn jetzt natürlich alles in einem Script vorhanden ist, dann um so besser. Da brauche ich weder dutzende einzelne Scripte oder gar Adapter. 👍

      Edit: Vielleicht kannst Du Dein sendTranskript Script ja um Telegram erweitern. 🙂

      C 1 Reply Last reply Reply Quote 0
      • C
        chris299 @falke69 last edited by chris299

        @falke69 senden des audio wav files per email geht.... telegram habe ich nicht. aber vermutlich muss man da auch nur den pfad an der richtigen Stelle im Aufruf einsetzen.
        per email ist das so:

        sendTo('email.1', 'send', {  text: 'Neue AB Nachricht im Anhang', to: 'test@test.de', subject: 'Neue AB Nachricht', 
               attachments:[ { path: tempFilePath, cid: 'message.wav' },],} );
        

        EDIT:
        scheint ziemlich leicht zu sein, die Wav auch per telegram zu senden, wenn man die o.e. Zeilen gegen die folgenden tauscht:

        sendTo('telegram.0', 'send', {
                        text: tempFilePath,
                        caption: 'Neue AB Nachricht',
                        user: 'yourUserName1,yourUserName2',
                    });
        

        https://github.com/iobroker-community-adapters/ioBroker.telegram/blob/master/docs/en/README.md#usage

        aber wie gesagt, Telegram hab ich nicht....

        EDIT 2 :
        das sendTranscipt.js ist eigentlich ein eher simples blockly....
        63806c5a-e6b6-49e9-a5ef-a8be8089c5c7-grafik.png
        das müsstest du mit dem telegram-blockly leicht ergänzen können:
        https://github.com/chris299/IOBrokerFritzboxTAMHandling/blob/main/sendTranskript_blockly.xml

        falke69 2 Replies Last reply Reply Quote 0
        • falke69
          falke69 @chris299 last edited by

          @chris299

          ok, vielen Dank.

          Schau ich mir mal an.

          1 Reply Last reply Reply Quote 0
          • falke69
            falke69 @chris299 last edited by

            @chris299

            ich habe jetzt mal das Script installiert. im Original von Dir funktioniert zumindest der Start ohne Probleme. Sobald ich aber den Pfad unter "userdata" im Script ändere, kommen Fehlermeldungen, beim Start und bei der Ausführung vom Script. (Vielleicht finde ich den Fehler später noch - ist aktuell nicht schlimm).

            Was mich aktuell verwundert:
            2025-06-25_114340.jpg

            Dieses Zeichen erhalte ich auch, in Telegram. Also kein Anhang, sondern nur dieses Zeichen.
            Bei einem weiteren Anruf mit einer hinterlassenen Nachricht, habe ich dann wieder "The." im Datenpunkt stehen.

            Also wenn ich das richtig verstanden habe, sollte sich doch eigentlich die Nachricht in den Datenpunkt befinden?

            Übrigens ich bin nicht für die Adaption den Scriptes verantwortlich - das war @mcu.😊

            C 1 Reply Last reply Reply Quote 0
            • C
              chris299 @falke69 last edited by

              @falke69 ja, da sollte das Transkript drin sein (nicht das audio file), aber auch nur, wenn der Call zu Azure cognitive services funktioniert hat. was sagt denn das javascript log?

              falke69 1 Reply Last reply Reply Quote 0
              • falke69
                falke69 @chris299 last edited by

                @chris299

                hier mal der log:

                javascript.0
                   2025-06-25 14:33:48.240	info	script.js.Anrufer.Wir.test.Skript_1: "Transkript : The."
                javascript.0
                   2025-06-25 14:33:48.240	info	script.js.Anrufer.Wir.test.Skript_1: {"durationMilliseconds":6040,"combinedPhrases":[{"text":"The."}],"phrases":[{"offsetMilliseconds":2920,"durationMilliseconds":80,"text":"The.","words":[{"text":"The.","offsetMilliseconds":2920,"durationMilliseconds":80}],"locale":"en-US","confidence":0.25603276}]}
                javascript.0
                   2025-06-25 14:33:47.702	info	script.js.Anrufer.Wir.test.Skript_1: FormData { _overheadLength: 264, _valueLength: 51, _valuesToMeasure: [ ReadStream { fd: null, path: '/tmp/Anrufer.Wir.test.Skript_1-5OP0qU/message.wav', flags: 'r', mode: 438, start: undefined, end: Infinity, pos: undefined, bytesRead: 0, _events: [Object], _readableState: [ReadableState], _maxListeners: 100, _eventsCount: 3, emit: [Function (anonymous)], [Symbol(kFs)]: [Object], [Symbol(kIsPerformingIO)]: false, [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false } ], writable: false, readable: true, dataSize: 0, maxDataSize: 2097152, pauseStreams: true, _released: false, _streams: [ '----------------------------379925215142652874426000\r\n' + 'Content-Disposition: form-data; name="definitions"\r\n' + '\r\n', '{"locales":["de-DE"], "profanityFilterMode":"None"}', [Function: bound ], '----------------------------379925215142652874426000\r\n' + 'Content-Disposition: form-data; name="audio"; filename="message.wav"\r\n' + 'Content-Type: audio/wave\r\n' + '\r\n', DelayedStream { source: [ReadStream], dataSize: 0, maxDataSize: Infinity, pauseStream: true, _maxDataSizeExceeded: false, _released: false, _bufferedEvents: [Array], _events: [Object: null prototype], _eventsCount: 1 }, [Function: bound ] ], _currentStream: null, _insideLoop: false, _pendingNext: false, _boundary: '--------------------------379925215142652874426000' }
                javascript.0
                   2025-06-25 14:33:47.700	info	script.js.Anrufer.Wir.test.Skript_1: post form data für azure transcribe:
                javascript.0
                   2025-06-25 14:33:47.694	info	script.js.Anrufer.Wir.test.Skript_1: Saved to /tmp/Anrufer.Wir.test.Skript_1-5OP0qU/message.wav
                javascript.0
                   2025-06-25 14:33:47.694	info	script.js.Anrufer.Wir.test.Skript_1: response header:connection: close content-type: audio/x-wav content-disposition: attachment; filename="message.wav"
                javascript.0
                   2025-06-25 14:33:45.936	info	script.js.Anrufer.Wir.test.Skript_1: Anzahl Neuer Nachrichten auf dem AB: 1
                javascript.0
                   2025-06-25 14:33:45.936	info	script.js.Anrufer.Wir.test.Skript_1: Nachricht neu [i]: [0]["1"] mit Index: ["0"] und gekürzt: 0
                javascript.0
                   2025-06-25 14:33:45.936	info	script.js.Anrufer.Wir.test.Skript_1: result.Root.Message.length: 1
                javascript.0
                   2025-06-25 14:33:45.930	info	script.js.Anrufer.Wir.test.Skript_1: wav download : http://192.168.178.1:49000/download.lua?path=/data/tam/rec/rec.0.000 ; post data : sid=2400874c61e0ae6e
                javascript.0
                   2025-06-25 14:33:45.929	info	script.js.Anrufer.Wir.test.Skript_1: Pfad zur neusten Message):http://192.168.178.1:49000/download.lua?path=/data/tam/rec/rec.0.000
                javascript.0
                   2025-06-25 14:33:45.929	info	script.js.Anrufer.Wir.test.Skript_1: no arrays anymore: {"Index":"0","Tam":"0","Called":"XXXXX","Date":"25.06.25 14:33","Duration":"0:01","Inbook":"1","Name":"USER","New":"1","Number":"0172XXXXXXX","Path":"/download.lua?path=/data/tam/rec/rec.0.000"}
                javascript.0
                   2025-06-25 14:33:45.928	info	script.js.Anrufer.Wir.test.Skript_1: neuesten Message (nach Datum):{"Index":["0"],"Tam":["0"],"Called":["XXXXX"],"Date":["25.06.25 14:33"],"Duration":["0:01"],"Inbook":["1"],"Name":["USER"],"New":["1"],"Number":["0172XXXXXXX"],"Path":["/download.lua?path=/data/tam/rec/rec.0.000"]}
                javascript.0
                   2025-06-25 14:33:45.927	info	script.js.Anrufer.Wir.test.Skript_1: Index der neuesten Message (nach Datum):0
                javascript.0
                   2025-06-25 14:33:45.926	info	script.js.Anrufer.Wir.test.Skript_1: TAMCalllist_JSON: {"Root":{"Message":[{"Index":["0"],"Tam":["0"],"Called":["XXXXX"],"Date":["25.06.25 14:33"],"Duration":["0:01"],"Inbook":["1"],"Name":["USER"],"New":["1"],"Number":["0172XXXXXXX"],"Path":["/download.lua?path=/data/tam/rec/rec.0.000"]}]}}
                javascript.0
                   2025-06-25 14:33:45.926	info	script.js.Anrufer.Wir.test.Skript_1: Ergebnis Umwandlung CallList XML in JSON: {"Root":{"Message":[{"Index":["0"],"Tam":["0"],"Called":["XXXXX"],"Date":["25.06.25 14:33"],"Duration":["0:01"],"Inbook":["1"],"Name":["USER"],"New":["1"],"Number":["0172XXXXXXX"],"Path":["/download.lua?path=/data/tam/rec/rec.0.000"]}]}}
                javascript.0
                   2025-06-25 14:33:45.920	info	script.js.Anrufer.Wir.test.Skript_1: FB_xml_TamCalls aus XML extrahiert: 1
                javascript.0
                   2025-06-25 14:33:45.511	info	script.js.Anrufer.Wir.test.Skript_1: sid : 2400874c61e0ae6e ; tamindex : 0
                javascript.0
                   2025-06-25 14:33:45.509	info	script.js.Anrufer.Wir.test.Skript_1: path from commandResult: http://192.168.178.1:49000/tamcalllist.lua?sid=2400874c61e0ae6e&tamindex=0
                javascript.0
                   2025-06-25 14:33:45.508	info	script.js.Anrufer.Wir.test.Skript_1: Antwort auf command im State tr-064.0.states.commandResult: {"NewURL":"http://192.168.178.1:49000/tamcalllist.lua?sid=2400874c61e0ae6e&tamindex=0"}
                tr-064.0
                   2025-06-25 14:33:44.961	info	{"NewURL":"http://192.168.178.1:49000/tamcalllist.lua?sid=2400874c61e0ae6e&tamindex=0"}
                tr-064.0
                   2025-06-25 14:33:44.914	info	{"NewURL":"http://192.168.178.1:49000/tamcalllist.lua?sid=2400874c61e0ae6e&tamindex=0"}
                javascript.0
                   2025-06-25 14:33:44.880	info	script.js.Anrufer.Wir.test.Skript_1: Soap Comand : {"service": "urn:dslforum-org:service:X_AVM-DE_TAM:1","action": "GetMessageList","params": {"NewIndex ": "0"}}
                javascript.0
                   2025-06-25 14:33:44.880	info	script.js.Anrufer.Wir.test.Skript_1: USER hat auf den Anrufbeantworter 0 gesprochen. Daten werden aus der Fritzbox ausgelesen...
                javascript.0
                   2025-06-25 14:33:44.877	info	script.js.Anrufer.Wir.AB_auf_neue_Nachrichten_prüfen-15-03-25: TypeError: Invalid URL at new URL (node:internal/url:806:29) at dispatchHttpRequest (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:2801:20) at /opt/iobroker/node_modules/axios/dist/node/axios.cjs:2721:5 at new Promise (<anonymous>) at wrapAsync (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:2701:10) at http (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:2739:10) at Axios.dispatchRequest (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:4116:10) at Axios._request (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:4416:33) at Axios.request (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:4271:25) at Axios.<computed> [as get] (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:4442:17) at Function.wrap [as get] (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:31:15) at Fritzbox_Anrufbeantworter_GetMessageList (script.js.Anrufer.Wir.AB_auf_neue_Nachrichten_prüfen-15-03-25:92:10) at Object.<anonymous> (script.js.Anrufer.Wir.AB_auf_neue_Nachrichten_prüfen-15-03-25:189:20) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3219:34) at listOnTimeout (node:internal/timers:581:17) at process.processTimers (node:internal/timers:519:7) at Axios.request (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:4276:41) { code: 'ERR_INVALID_URL', input: 'DE_HostListPath":"/devicehostlist.lua?sid=2400874c61e0ae6e' }
                

                Ich hoffe, das ich auch soweit alle meine persönlichen Daten unkentlich gemacht habe.

                C 1 Reply Last reply Reply Quote 0
                • C
                  chris299 @falke69 last edited by

                  @falke69 sieht eigentlich alles richtig aus. du bekommst als transkript der nachricht tatsächlich "The." zurück. Was sollte das denn sein? und welche Sprache wird da üblicherweise drauf gesprochen?
                  nimm mal die neue version, die ich gerade hochgeladen habe, die ist etwas robuster und gibt mehr mitteilungen im debug mode.

                  falke69 1 Reply Last reply Reply Quote 0
                  • falke69
                    falke69 @chris299 last edited by falke69

                    @chris299

                    jetzt geht es. 🙂
                    Bei uns wird deutsch gesprochen. Alles andere würde ich nicht verstehen. 🙂 🙂 🙂
                    Habe nur bisher nicht drauf gesprochen, sondern nur Geräusche gemacht um den AB
                    voll zu bekommen.

                    Hatte das Script sozusagen vollkommen falsch verstanden.
                    Ich war der Meinung, das es die Nachricht runterläd und in den Datenpunkt speichert.
                    So wie im Log zu sehen:

                    script.js.Anrufer.Wir.test.Skript_1: wav download : http://192.168.178.1:49000/download.lua?path=/data/tam/rec/rec.0.001 ; post data : sid=2400874c61e0ae6e
                    

                    Wo wird den der wav File gespeichert um diese direkt per Telegram, Mail oder WhatsApp mit der Nachricht über den Anrufer zu versenden?

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      chris299 @falke69 last edited by chris299

                      @falke69 habe eine neue Version hoch geladen, die einen neuen Datenpunkt auf macht, in dem dann der lokale Pfad zur Wav Datei steht. im Blockly kann man darauf zugreifen und das file versenden.....

                      falke69 1 Reply Last reply Reply Quote 0
                      • falke69
                        falke69 @chris299 last edited by

                        @chris299

                        sehr schön. Das mit dem wav File funktioniert. Leider funktioniert die Transkription nicht mehr.
                        Im Datenpunkt steht: "Transkription fehlgeschlagen".

                        Hier der Log:
                        log.txt

                        Hat leider von der Länge nicht direkt mit reingepasst.

                        C 1 Reply Last reply Reply Quote 0
                        • C
                          chris299 @falke69 last edited by chris299

                          @falke69 du musst da natürlich deinen eigenen Azure Key einsetzen. anscheinend hast du vorher eine version erwischt, in der ich versehentlich meinen key nicht gelöscht hatte....
                          und ja, ich muss die fehlermeldung für diesen Fall besser machen. so ist da deine ganze audio datei drin....

                          EDIT:
                          neue Version mit besserem logging hochgeladen

                          falke69 1 Reply Last reply Reply Quote 0
                          • falke69
                            falke69 @chris299 last edited by

                            @chris299

                            daran wird es wohl liegen.
                            Könnte man auch die Transkription im Script deaktivieren und nur den Wav File laden?
                            Habe gerade mir das mit Azure angeschaut - das scheint ja nicht unbedingt einfach zu sein, sich dort einen Key anzulegen. 😞

                            C 1 Reply Last reply Reply Quote 0
                            • C
                              chris299 @falke69 last edited by chris299

                              @falke69 dastranskribieren abschalten kann man auch:
                              einfach in der Zeile 61
                              aus

                              const transcribe = true;
                              
                              const transcribe = false;
                              

                              machen....

                              vielleicht mache ich auch später noch eine Version bei der man das mit einem button in einem datenpunkt ein und ausschalten kann.... mal sehen...
                              EDIT: neue version damit hochgeladen.

                              aber eigentlich sollte das Erzeugen einer Ressource und deren Keys im Portal von Azure über den Link, den ich in der Anleitung angegeben habe, nicht so schwer sein:
                              https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/SpeechServices
                              Man muss ein Abonement anlegen und dann darin die Ressource erstellen, dann kann man den Key abrufen.

                              falke69 2 Replies Last reply Reply Quote 0
                              • falke69
                                falke69 @chris299 last edited by

                                @chris299

                                Vielen Dank

                                ... irgendwie war der Abend gestern noch etwas stressig für mich geworden. Dann war ich schon mit der Registrierung bei Azure überfordert.

                                Ich werde mir das Script heute Nachmittag mal in Ruhe anschauen und dann berichten.

                                1 Reply Last reply Reply Quote 0
                                • falke69
                                  falke69 @chris299 last edited by

                                  @chris299

                                  habe jetzt Zeit gefunden Dein Script zu testen.

                                  Bis jetzt funktioniert es tadellos.
                                  Am Anfang hatte ich mich nur vertan, was Azure betrift.
                                  Ich hat nicht Westeurope ausgewählt.
                                  Also alles wieder gelöscht und jetzt richtig erstellt.

                                  Dann funktioniert jetzt alles.

                                  Vielen Dank für Deine Zeit und Hilfe.

                                  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

                                  867
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  16
                                  88
                                  9627
                                  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