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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • 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 @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

                          643
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

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