Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Datenpunkt "clearen" - Fritzbox - missedTableHTML

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Datenpunkt "clearen" - Fritzbox - missedTableHTML

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      spaceduck last edited by

      Hallo,

      ich bastele gerade an einem kleinem Script welches mir die Anzahl der "missed calls" und die "history" mit den Rufnummern zurücksetzt.

      Folgender Code:

      setState("fritzbox.0.calls.missedCount",0);
      setState("fritzbox.0.history.missedTableHTML",'');
      

      die erste Zeile tut was sie soll, sie setzt den Counter auf 0 und wenn ein neuer Anruf kommt zählt er wieder ab 1 hoch.

      Problem: Die 2. Zeile cleart mir zwar die Tabelle mit dem missed calls & Rufnummern –> Sobald aber wieder ein Anruf kommt erscheinen die alten Rufnummern wieder die ich eigentlich weggelöscht habe.

      Was mache ich falsch?

      Jan

      1 Reply Last reply Reply Quote 0
      • ruhr70
        ruhr70 last edited by

        Du machst nichts falsch.

        Die Anruferlisten werden im Speicher gehalten und mit jedem Ende eines neuen Anrufs neu aufgebaut und dann in die Datenpunkte geschrieben. Damit ist die Liste dann wieder vollständig.

        Ohne den Adapter zu ändern könntest Du ein Workaround bauen:

        • Einen neuen Datenpunkt im Skript für die Anruferliste erstellen

        • "fritzbox.0.calls.missedCount" auf Änderung abfragen:

        – wenn 0, den neuen Datenpunkt mit "keine verpassten Anrufe" füllen

        -- wenn !== 0 den Datenpunkt des Frizboxadapter kopieren

        In Vis wird dann statt des Fritzbox-Datenpunkts der Datenpunkt aus dem Javascript verwendet.

        Alternativ könntest Du natürlich auch nach jedem Löschen der Zählers für verpasste Anrufe den Fritzbox-Adapter kurz stoppen und wieder starten 😉

        1 Reply Last reply Reply Quote 0
        • S
          spaceduck last edited by

          Danke Dir! Das erklärt das Verhalten des Skriptes. Ich werde mir mal überlegen wie ich den workaround umsetze. Adapter restart wäre natürlich schnell umzusetzen, aber kann ich überhaupt per script einen Adapter neu starten? Wie sieht die Syntax dazu aus?

          Jan

          1 Reply Last reply Reply Quote 0
          • ruhr70
            ruhr70 last edited by

            Der zweite Vorschlag war eigentlich ein Spaß. Deswegen auch der 😉

            Der erste Vorschlag hat leider ein Denkfehler. Du kannst zwar auf "fritzbox.0.calls.missedCount" reagieren, damit Dein Wunsch funktioniert, müsstest Du dann aber die html-Tabelle, die in den neuen Datenpunkt geschrieben wird per Skript kürzen. Ansonsten hättest Du wieder alle verpassen Anrufe. Ich ha das beim Adapter (Github) unter "Issues" als Wunsch ergänzt.

            1 Reply Last reply Reply Quote 0
            • ruhr70
              ruhr70 last edited by

              @spaceduck:

              ch werde mir mal überlegen wie ich den workaround umsetze. `

              Anbei Dein Skript:

              ! idVerpassteAnrufeHTML = "fritzbox.history.missedTableHTML"; ! createState(idVerpassteAnrufeHTML, "init", { name: 'Liste verpasster Anrufe', desc: 'Verpasste Anrufe als html. In der Anzahl der nicht abgefragten Anrufe.', type: 'string', role: 'value', }); ! function missedCallsKuerzen(anzahl) { var listNew = ""; var listGesamt = getState("fritzbox.0.history.missedTableHTML").val; for ( i=0; i<=10; i++ ) { var zeile = listGesamt.match(/.*? /); listGesamt = listGesamt.replace(zeile, ""); listNew = listNew + zeile; if(i>=anzahl) return listNew; } return listNew; } ! on({id: "fritzbox.0.calls.missedCount", change: "ne"} , function(obj) { setState(idVerpassteAnrufeHTML,missedCallsKuerzen(parseInt(obj.newState.val))); }); !

              Die verkürzte Liste wird unter

              javascript.0.fritzbox.history.missedTableHTML
              

              gespeichert.

              [EDIT]

              Zu:

              @spaceduck:

              Hallo,

              ich bastele gerade an einem kleinem Script welches mir die Anzahl der "missed calls" und die "history" mit den Rufnummern zurücksetzt.

              setState("fritzbox.0.calls.missedCount",0);
              
              ```` `  
              

              Der Datenpunkt mir den verpassten Anrufen ist ein String.

              Eigentlich müsstest Du bei Dir

              setState("fritzbox.0.calls.missedCount","0");
              
              

              im Skript setzen.

              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                @ruhr70:

                @spaceduck:

                Ich werde mir mal überlegen wie ich den workaround umsetze. `

                Anbei Dein Skript:

                ! idVerpassteAnrufeHTML = "fritzbox.history.missedTableHTML"; ! createState(idVerpassteAnrufeHTML, "init", { name: 'Liste verpasster Anrufe', desc: 'Verpasste Anrufe als html. In der Anzahl der nicht abgefragten Anrufe.', type: 'string', role: 'value', }); ! function missedCallsKuerzen(anzahl) { var listNew = ""; var listGesamt = getState("fritzbox.0.history.missedTableHTML").val; for ( i=0; i<=10; i++ ) { var zeile = listGesamt.match(/.*? /); listGesamt = listGesamt.replace(zeile, ""); listNew = listNew + zeile; if(i>=anzahl) return listNew; } return listNew; } ! on({id: "fritzbox.0.calls.missedCount", change: "ne"} , function(obj) { setState(idVerpassteAnrufeHTML,missedCallsKuerzen(parseInt(obj.newState.val))); }); ! `

                Konntest Du mit dem Skript was anfangen?

                1 Reply Last reply Reply Quote 0
                • S
                  spaceduck last edited by

                  Hallo,

                  danke für das Skript. Kann es erst am Wochenende ausprobieren - werde dann Feedback geben.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  857
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  1145
                  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