Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Fritzbox Anrufbeantworter komplexe Schaltung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Fritzbox Anrufbeantworter komplexe Schaltung

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Taddy81 last edited by

      @taddy81 Also erstens hilft es nichts wenn Du aus dem Debug Fenster irgendwas mit der Maus kopierst. Wenn musst Du Werte schon komplett aus dem Debugfenster kopieren und dann hier in codetags einstellen.

      copy path.gif

      Was willst Du denn überhaupt erreichen und was willst Du denn auswerten?

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

        So ich benutze zwar keinen Anrufbeantworter - aber mit GetList bekommst du ja nur allgemeines Bla, Bla.

        Du musst Dir dieses Dokument anschauen: https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_tam.pdf

        Wenn Du diese Schnittstelle nutzt, dann bekommst Du ja entsprechende Anweisungen wie die payload aussehen muss.

        Willst Du also zu Deinem Anrufbeantworter mit dem Index 0 - Informationen haben dann rufst Du GetInfo auf.

        4bc53e20-56d9-4a82-8024-727ec3f8652d-image.png

        Unter in stehen dann immer die Parameter die Du mitliefern musst, über out die Parameter die Du bekommst.

        Wenn Du auf die Lupe gehst - dann holt die Node alle möglichen Kommandos aus dem Dokument, die Du absetzen kannst.

        9294e988-1a58-4a90-91b4-b6cf4f76f4a4-image.png

        Wenn Du dann zum Beispiel GetInfo ausgewählt hast, dann erhälst Du unten eine Anleitung, wie eine payload auszusehen hat.

        12dbcc6d-caba-4044-8881-093482e881d8-image.png

        Also in diesem Fall

        {
          "NewIndex": "value"
        }
        

        Das kopierst Du die raus und erstellst ein entsprechendes Objekt in der payload mit dem Index den Du abfragen möchtest.

        Deine payload. um den Anrufbeantworter mit dem Index 0 abzufragen, schaut also so aus:

        435c4551-91ac-4fc0-8c27-a023e91ff0fe-image.png

        Als Ergebnis bekommst Du dann alle out Parameter wie in der Doku angegeben:

        fd00cff3-59d5-429f-8ac9-603a318360e7-image.png

        Um jetzt einen Anrufbeantworter zu enablen oder disablen nutzt Du halt die Methode

        d743d6b9-7dbb-42c0-bc2a-1c63c32b230f-image.png

        74e6d1f6-a4c8-4592-a99f-7b321eb76825-image.png

        Wie gesagt ich benutze keinen Anrufbeantworter - musst Du aber schauen.

        Wichtig ist aber, dass Du genau diese Syntax verwendest - also Zeichenketten als Werte verschickst und nicht bei true nun einen Boolean sondern wirklich "true" als Wert sendest.

        Die Kommandos MarkMessage oder DeleteMessage dürften ja selbsterklärend sein.

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

          Um jetzt eine Liste der Nachrichten auf einem Anrufbeantworter zu erhalten, wählst Du ja

          GetMessageList mit dem entsprechenden Index des jeweiligen Anrufbeantworters.

          e7e589da-c6c0-4f54-858d-38a060796e1e-image.png

          Als Resultat bekommst Du eine URL mit Deinen verschlüsselten Credentials zurück, mit der Du diese Liste abrufen kannst.

          904b1928-476d-449a-99e1-31c568a90463-image.png

          Du kannst also diese Url - als msg.url direkt in einer HTTP-Request Node verwenden und solltest dann eine Liste mit Deinen Nachrichten bekommen:

          f23cc6b2-b980-4665-85fa-6e9a066e32ea-image.png

          Diese Liste kannst ja mit der XML Node ggf. wieder parsen , irgendwo ausgeben oder analysieren, um best. Nachrichten zu löschen usw.

          Da ich wie gesagt keinen Anrufbeantworter benutze, solltest Du aber eine valide Liste bekommen.

          Die XML Node parsed eigentlich das ganz gut - wenn Du Liste mit der XML Node parsed bekommst Du schon ein vernünftiges Objekt zurück.

          1619b01c-8484-43a0-88a1-e18811650b5f-image.png

          Was die einzelnen Parameter bedeuten siehst Du ja in der Doku:

          df4145d4-ceaa-4665-8425-4f5654369c78-image.png

          Um aus der Liste zum Beispiele alle aktiven ABs zu ermitteln benutzt Du natürlich das mächtige JSONATA und siehst dann auf einen Blick, was aktiv ist und was nicht:

          fb8a0fa9-212d-4011-8075-78aa2f5589cf-image.png

          So nun solltest Du eigentlich alle Infos haben, um damit Deine Anrufbeantworter zu steuern bzw. kannst auswerten was aktiv ist oder nicht.

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

            Und falls Du irgendwelche Timer brauchst - dann nutze die cron-plus Node - die ist super mächtig.

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

              @taddy81 sagte in Fritzbox Anrufbeantworter komplexe Schaltung:

                                                                                                                                          10.5.2024, 10:36:44node: debug 105                                                                                                                                                                            msg : Object                                                                                                                                                                            object                                                                                                                                                                            _msgid: "12bdf65b50981df3"                                                                                                                                                                            payload: object                                                                                                                                                                            NewTAMList: string                                                                                                                                                                            <List><TAMRunning>1</TAMRunning><Stick>0</Stick><Status>0</Status><Capacity>3131</Capacity><Item><Index>0</Index><Display>1</Display><Enable>0</Enable><Name>#Notruf Wochenende 10-11Uhr</Name></Item><Item><Index>1</Index><Display>1</Display><Enable>0</Enable><Name>#Ansage  AußerhalbSprechstunde</Name></Item><Item><Index>2</Index><Display>1</Display><Enable>0</Enable><Name>Notdienst werktags</Name></Item><Item><Index>3</Index><Display>1</Display><Enable>1</Enable><Name>Sprechzeitenbeschränkt</Name></Item><Item><Index>4</Index><Display>1</Display><Enable>0</Enable><Name>Mittwoch zu (löschen)</Name></Item></List>                                                                                                                                                                            topic: ""                                            
              

              Wenn Du die Nachrichten über das Debugfenster auch richtig rauskopierst, wie ich Dir das in meinem ersten Post beschrieben habe, dann muss man sich auch nicht solche Verrenkungen machen, um Dein XML daraus zu extrahieren:

              f06f7c56-95a1-4f32-abdb-e150a57761b6-image.png

              Wenn Du dann den aktiven AB mit dem entsprechenden Index selektieren willst, dann erstellst Du daraus einfach mit JSONATA ein neues Objekt um den Index des AB zu erhalten, den Du dann ggf. deaktivieren musst.

              b8db7442-208e-4499-8227-616effb48447-image.png

              Hier das Ganze zum Ausprobieren:

              [
                 {
                     "id": "9fe064b470068754",
                     "type": "xml",
                     "z": "98625098e8162bbe",
                     "name": "",
                     "property": "payload",
                     "attr": "",
                     "chr": "",
                     "x": 510,
                     "y": 1700,
                     "wires": [
                         [
                             "2965d63e00796433",
                             "21758197ea07baa6",
                             "151785ef7897a99f"
                         ]
                     ]
                 },
                 {
                     "id": "2965d63e00796433",
                     "type": "debug",
                     "z": "98625098e8162bbe",
                     "name": "parsed XML",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 670,
                     "y": 1700,
                     "wires": []
                 },
                 {
                     "id": "21758197ea07baa6",
                     "type": "change",
                     "z": "98625098e8162bbe",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.List.Item.Name",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 710,
                     "y": 1760,
                     "wires": [
                         [
                             "e2b4901573aa9c47"
                         ]
                     ]
                 },
                 {
                     "id": "e2b4901573aa9c47",
                     "type": "debug",
                     "z": "98625098e8162bbe",
                     "name": "Liste Anrufbeantworter",
                     "active": false,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 940,
                     "y": 1760,
                     "wires": []
                 },
                 {
                     "id": "151785ef7897a99f",
                     "type": "change",
                     "z": "98625098e8162bbe",
                     "name": "Aktiver AB",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.List.Item[Enable[0]=\"1\"].{\"Name\":Name[0],\"Index\":Index[0]}",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 690,
                     "y": 1820,
                     "wires": [
                         [
                             "2bfb64afc11893f3"
                         ]
                     ]
                 },
                 {
                     "id": "2bfb64afc11893f3",
                     "type": "debug",
                     "z": "98625098e8162bbe",
                     "name": "Aktiver AB",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 910,
                     "y": 1820,
                     "wires": []
                 }
              ]
              

              39d012a5-609a-48f8-815f-52e36a3bd3a0-image.png

              payload.List.Item[Enable[0]="1"].{"Name":Name[0],"Index":Index[0]}
              

              und hier die JSONATA Seite zum Testen Deines Codes eventuell:

              https://try.jsonata.org/1ug0vrQIX

              1 Reply Last reply Reply Quote 0
              • T
                Taddy81 last edited by

                Re: Fritzbox Anrufbeantworter komplexe Schaltung

                Vielen vielen Dank @mickym, musste mich am Wochenende um eine Menge Reallife kümmern, danke für deine Zeit und werde mich nun mal um die Umsetzung kümmern

                1 Reply Last reply Reply Quote 0
                • T
                  Taddy81 last edited by

                  Ich hatte gehofft weiter zukommen, aber leider habe ich nun ein Problem mit dem TR064, auch der neuinstallierte Adapter kann sich nicht verbinden

                  784ebe9f-8bc5-492e-aa5a-0488b2a9db53-image.png

                  Auch ein Neustart der Fritzbox hat kein Effekt gehabt, muss ich mich morgen nochmal mit beschäftigen

                  mickym Thomas Braun 2 Replies Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Taddy81 last edited by mickym

                    @taddy81 du brauchst den ADAPTER nicht, wenn Du die Nodes verwendest! Wahrscheinlich versucht sowohl Node-Red und der Adapter sich zu verbinden und das ist großer Käse. Entweder Du nutzt den Adapter oder die Nodes.

                    Und Du hattest doch bereits verbindung mit Deiner Node in Node-Red, sonst hättest Du den Status doch gar nicht auslesen können. Wenn Du die Kommandos über den Adapter absetzen wolltest das geht im command Datenpunkt ist das viel mühseliger.

                    T 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @Taddy81 last edited by Thomas Braun

                      @taddy81

                      Ebenfalls Käse ist es, eine ungerade Version von nodejs zu verwenden. Bring das auf die vorgesehene und derzeitig empfohlene Version 18.

                      iob nodejs-update 18
                      
                      1 Reply Last reply Reply Quote 0
                      • T
                        Taddy81 @mickym last edited by

                        @mickym ich habe den flow deaktiviert, da die Nodes nicht mehr funktioniert haben, bzw eine Fehlermeldung ausgegeben habe (irgendwas mit internal Error, bin gerade nicht am Handy und habe daher keinen Zugriff auf die Fehlermeldung)

                        Ein Update von nodejs werde ich gleich morgen durchführen!

                        Den Tipp mit der Cron Node ist übrigens echt super, nutze ich nun auch schon seit längerem und wundere mich, warum NodeRed keine ähnlich vielseitige injectnode anbieter

                        mickym Thomas Braun 2 Replies Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Taddy81 last edited by mickym

                          @taddy81 Na dann wird wahrscheinlich alles damit zusammenhängen, dass Du eine schiefe NodeJS Version installiert hast. Erstens installiert man nur gerade Versionsnummern und für den iobroker ist gerade nur V18 freigegeben. Die normale LTS Version ist auch V20 (damit läuft auch NodeRed bzw. ist freigegeben)

                          379ae114-19ee-4dde-bf9e-867924c6abf6-image.png

                          Grundsätzlich installiert man nur LTS (Long Term Support) Versionen - es ist auch schon ein V.22 verfügbar. Aber an diesen Dingern schraubt man eigentlich nicht rum, bis eine entsprechende Freigabe erfolgt und da gibts dann im iobroker - Befehle die für Dich das update übernehmen. Also die Version V21 - ist auch keine LTS Version, das sind ggf. Beta oder Zwischenversionen.

                          1 Reply Last reply Reply Quote 0
                          • Thomas Braun
                            Thomas Braun Most Active @Taddy81 last edited by Thomas Braun

                            @taddy81 sagte in Fritzbox Anrufbeantworter komplexe Schaltung:

                            Ein Update von nodejs werde ich gleich morgen durchführen!

                            Eher ein Downgrade auf die V18.

                            Also die Version V21 - ist auch keine LTS Version, das sind ggf. Beta oder Zwischenversionen.

                            Und auch zwischenzeitlich abgekündigt.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            830
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            3
                            13
                            536
                            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