Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Pegelwerte Fritzbox 6490 Cable auslesen?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Pegelwerte Fritzbox 6490 Cable auslesen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      ichderarnd @Wolfshunter last edited by

      @wolfshunter
      Ich sehe in Deinem Log, dass Deine Fritzbox 32 DOCSIS 3.0 Downstream-Kanäle hat. Bisher hat das Script nur 31 Kanäle unterstützt.
      Ich habe das Script daher angepasst. Probier bitte mal, ob die Meldungen im Log daher kommen.

      @MartinP
      Negative Werte sollten jetzt nicht mehr auftreten. Probier bitte mal.

      DocsisInfoV2.1.zip

      W wollerosekaufe D 4 Replies Last reply Reply Quote 0
      • W
        Wolfshunter @ichderarnd last edited by

        @ichderarnd

        Danke Dir, jetzt läuft es super. Die meldungen sind weg

        1 Reply Last reply Reply Quote 1
        • W
          Wolfshunter @ichderarnd last edited by

          @ichderarnd

          Jetzt muß ich das nur noch hinbekommen das ich diese influxDB installiert und im ioBroker eingebunden
          bekomme. Aktuell nutze ich ja SQL aber irgendwie ist Grafana da wohl nicht so leicht mit zu bedienen.

          Denn ich habe mir schon Videos angeschaut, aber dort sieht es so easy aus mit dem Erstellen von
          Diagrammen oder ähnlichen. Doch ich bekomme zwar die Datenbank zur Auswahl, aber dann wars
          das schon. Bin auch nicht so gut was Datanbank Abfragen angeht 😞

          1 Reply Last reply Reply Quote 0
          • wollerosekaufe
            wollerosekaufe @ichderarnd last edited by

            @ichderarnd said in Pegelwerte Fritzbox 6490 Cable auslesen?:

            DocsisInfoV2.1.zip

            nice, vielen dank! 🙂

            bei mir quieckt nun allerdings die influxdb, da sich ein type geändert hat
            wundert mich nur dass niemand anders das meldet - an der FB hat sich nichts geändert, kann eigtl. nur am script liegen...?

            javascript.0.Internet.Docsis31.US.C00.Frequency war immer eine zahl, nun ein string -> 29.775 - 64.775

            hab schon etliches ausprobiert, aber umstellen bringt nichts. influxdb manual verweist drauf schlicht im adapter den type umzustellen 😕

            	influxdb.0
            	2023-11-16 22:33:53.254	info	disabled logging of javascript.0.Internet.Docsis31.US.C00.Frequency
            influxdb.0
            	2023-11-16 22:33:44.398	error	HttpError: runtime error @4:12-4:151: filter: type conflict: bool != string
            influxdb.0
            	2023-11-16 22:33:43.446	error	HttpError: runtime error @4:12-4:151: filter: type conflict: bool != string
            influxdb.0
            	2023-11-16 22:33:11.978	warn	Add javascript.0.Internet.Docsis31.US.C00.Frequency to conflicting Points (1 now)
            influxdb.0
            	2023-11-16 22:33:11.977	warn	Error on writePoint("{"value":"29.775 - 64.775","time":"2023-11-16T21:33:00.590Z","from":"system.adapter.javascript.0","q":0,"ack":true}): HttpError: failure writing points to database: partial write: field type conflict: input field "value" on measurement "javascript.0.Internet.Docsis31.US.C00.Frequency" is type string, already exists as type float dropped=1 / "failure writing points to database: partial write: field type conflict: input field \"value\" on measurement \"javascript.0.Internet.Docsis31.US.C00.Frequency\" is type string, already exists as type float dropped=1""
            influxdb.0
            	2023-11-16 22:33:11.975	warn	Point could not be written to database: iobroker
            
            I 1 Reply Last reply Reply Quote 0
            • I
              ichderarnd @wollerosekaufe last edited by

              @wollerosekaufe
              In den Fritzboxdaten war es auch schon in der alten Fritz-OS Version so, dass für den DOCSIS 3.1 Upstream ein Frequenzbereich statt einer einzelnen Frequenz angegeben war. Daher habe ich das mal im Script korrigiert.
              Es sollte daher in der Datenbank als String und nicht als Zahlenwert gespeichert werden.

              Du kannst Dir das Script allerdings auch so anpassen, dass wieder eine Zahl gespeichert wird:

              setState('Internet.Docsis31.US.C00.Frequency', parseInt(tableData.data.channelUs.docsis31[0].frequency), true);
              
              wollerosekaufe 1 Reply Last reply Reply Quote 0
              • wollerosekaufe
                wollerosekaufe @ichderarnd last edited by

                @ichderarnd said in Pegelwerte Fritzbox 6490 Cable auslesen?:

                setState('Internet.Docsis31.US.C00.Frequency', parseInt(tableData.data.channelUs.docsis31[0].frequency), true);

                hmm, ich hatte das script nie geändert, aber die werte sind definitiv bisher als zahl gespeichert

                javascript.0.Internet.Docsis31.US.C00.Frequency.jpg

                dein vorschlag stellt jetzt aber eigtl. ohne not den wert um, oder?
                was ist jetzt besser, ich will ja nicht auf zwang eine zahl speichern, sondern den richtigen wert 😄
                hab nur keine ahnung wie ich die bisherigen daten nun konvertieren kann

                I 1 Reply Last reply Reply Quote 0
                • M
                  madison last edited by

                  Guten Morgen,
                  Prinzipiell funktioniert das Script sehr gut.
                  Aber unterstützt das Script nur 5 Up-Stream Kanäle?
                  Ich habe 6!

                  Markus

                  I 1 Reply Last reply Reply Quote 0
                  • I
                    ichderarnd @wollerosekaufe last edited by

                    @wollerosekaufe sagte in Pegelwerte Fritzbox 6490 Cable auslesen?:

                    hmm, ich hatte das script nie geändert, aber die werte sind definitiv bisher als zahl gespeichert
                    dein vorschlag stellt jetzt aber eigtl. ohne not den wert um, oder?
                    was ist jetzt besser, ich will ja nicht auf zwang eine zahl speichern, sondern den richtigen wert 😄
                    hab nur keine ahnung wie ich die bisherigen daten nun konvertieren kann

                    Es war vorher ein Fehler im Script. Wer die korrekten Frequenzen in der Auswertung sehen möchte, hat nun mit dem aktuellen Script die richtige Variante.
                    Ich denke, Du kannst weiterhin den Zahlenwert nutzen. Dann tausche die eine Zeile im Script aus, siehe vorheriger Post. Durch die Funktion parseInt() wird der erste Zahlenwert aus dem String genommen und an den Datenpunkt übergeben.

                    Um den Wert künftig als String abzulegen muss vermutlich das Speichern für den Wert abgeschaltet und neu eingeschaltet werden. Der SQL-Adapter, den ich verwende, legt die Daten dann in die Tabelle ts_string statt ts_number. Per SQL-Befehl muss man dann die Daten für die entsprechende ID umkopieren. Die ausführliche Erklärung führt allerdings hier zu weit... Daher: nimm weiterhin den Zahlenwert. Er sollte ohnehin immer konstant sein.

                    1 Reply Last reply Reply Quote 0
                    • I
                      ichderarnd @madison last edited by

                      @madison
                      Richtig, das Script fragt 5 DOCSIS 3.0 Up-Stream Kanäle ab. Mehr habe ich noch nicht gesehen. Das heißt, Dein Anschluss nutzt 6 DOCSIS 3.0 Kanäle und vermutlich gar keinen DOCSIS 3.1?

                      Wenn Du die beiden Kommentarzeichen vor der Zeile

                      //log(JSON.stringify(tableData), 'info');
                      

                      entfernst, dann erhältst Du unten im Protokoll-Fenster des Javascript Editors den JSON-String, den Deine Fritzbox zurückliefert.
                      Den kannst Du mir über den Chat schicken, dann sehe ich mir das an.

                      Du kannst aber auch einfach mal in diesen Zeilen

                      // Upstream DOCSIS 3.0
                      for (var i = 1; i <= 5; i++){
                      

                      die 5 durch eine 6 ersetzen. Dann würden 6 Kanäle angelegt und auch mit Daten gefüllt werden.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        madison @ichderarnd last edited by madison

                        @ichderarnd die Änderung auf 6 im Script hat gereicht, danke!

                        1 Reply Last reply Reply Quote 1
                        • wollerosekaufe
                          wollerosekaufe last edited by

                          @ichderarnd
                          danke nochmal! 🙂
                          läuft nun alles, hab mal ein simples dashboard draus (+speedtest&ping) gebastelt. verweifle noch "etwas" an grafana und regex - macht wie üblich erstmal nicht dass, was die anleitungen sagen. daher viel zu viel text in der legende. mal schauen... nächstes projekt. irgendwann 😄

                          kabelwerte-6h.jpg

                          MartinP 1 Reply Last reply Reply Quote 0
                          • MartinP
                            MartinP @wollerosekaufe last edited by MartinP

                            @wollerosekaufe Nutzt noch jemand dieses Script?

                            die hier veröffentlichten Versionen nutzen ja auch das vermaledeite "request", was seit ein paar Wochen nicht mehr funktioniert ...

                            Bevor ich das Rad neu erfinde: Hat da jemand schon die Korrekturen auf Http Get vorgenommen?

                            I 1 Reply Last reply Reply Quote 0
                            • I
                              ichderarnd @MartinP last edited by

                              @martinp sagte in Pegelwerte Fritzbox 6490 Cable auslesen?:

                              @wollerosekaufe Nutzt noch jemand dieses Script?

                              Ja, sicher.
                              Mein Vodafone Kabelanschluss ist weiterhin katastrophal (mehrstündige Komplettausfälle an drei Tagen diese Woche) und wird durch das Script dokumentiert. Und das request muss ich wohl mal endlich umschreiben…

                              1 Reply Last reply Reply Quote 0
                              • D
                                DasKind91 @ichderarnd last edited by

                                @ichderarnd

                                Ich habe das Script aus diesem Post benutzt und die Logindaten sowie die Adresse geändert, halt von fritz.box auf meine IP.

                                Mein Problem ist, dass ich mit allen Skripten die hier im Post stehen nur folgende Fehler bekomme:

                                javascript.0	19:48:41.806	error	script.js.common.Netzwerk.Kabel-Werte: ReferenceError: request is not defined
                                javascript.0	19:48:41.806	error	at loginAndGetSID (script.js.common.Netzwerk.Kabel-Werte:163:5)
                                javascript.0	19:48:41.806	error	at script.js.common.Netzwerk.Kabel-Werte:448:1
                                javascript.0	19:48:41.806	error	at script.js.common.Netzwerk.Kabel-Werte:472:3
                                

                                Ich habe eine Fritz Box 6660 Cable mit Fritz OS 7.57

                                Ich hoffe du oder jemand anderes kann mir helfen, Javascript ist noch nicht so meins....

                                Vielen Dank!

                                I 1 Reply Last reply Reply Quote 0
                                • I
                                  ichderarnd @DasKind91 last edited by

                                  @daskind91
                                  Das hängt offensichtlich mit dem etwas weiter oben beschriebenen "request" zusammen, dass von neueren Javascript Versionen nicht mehr unterstützt wird. Ich stelle das gerade auf die axios Library um und werde die aktualisierte Version hier posten.

                                  D MartinP 2 Replies Last reply Reply Quote 0
                                  • D
                                    DasKind91 @ichderarnd last edited by

                                    @ichderarnd

                                    Okay, perfekt vielen Dank für deine Bemühungen

                                    1 Reply Last reply Reply Quote 0
                                    • MartinP
                                      MartinP @ichderarnd last edited by MartinP

                                      @ichderarnd

                                      Habe schon angefangen, nur mit dem httpPost in getCableModemChannelInfosV2()
                                      gibt es Probleme Auskommentiert der Request, und darunter der httpPost...

                                      //    var options = {
                                      //        url: docsisURL,
                                      //        method: 'POST',
                                      //        headers: {
                                      //            'Content-Type': 'application/x-www-form-urlencoded'
                                      //        },
                                      //        body: 'xhr=1&sid=' + sid + '&lang=de&page=docInfo&xhrId=all&no_sidrenew='
                                      //    }
                                      //    request(options, function(error, response, body) {
                                            httpPost(docsisURL, 
                                              {
                                                  title : 'channels',
                                                  body: 'xhr=1&sid=' + sid + '&lang=de&page=docInfo&xhrId=all&no_sidrenew=',
                                                  user_id : '1'
                                              }, 
                                              {
                                      
                                                  timeout: 2000,
                                                  headers: {
                                                     'Content-Type': 'application/x-www-form-urlencoded'
                                                  },
                                              },
                                              (error, response) => {
                                              if (!error && response.statusCode == 200) {
                                                  log ('status ' + response.statusCode);
                                                  log ('headers ' + response.headers);
                                                  log ('data: ' + response.data);
                                                  const body = response.data;
                                                  tableData = JSON.parse(body);
                                                  if(tableData){
                                      
                                      
                                      MartinP F 2 Replies Last reply Reply Quote 0
                                      • MartinP
                                        MartinP @MartinP last edited by

                                        @martinp Noch eine Frage.

                                        Ich habe mich vor längerer Zeit sozusagen "geforkt" vom Quellcode hier...

                                        Bei den Experimenten habe ich festgestellt. dass der Schedule, der am Ende des Script-Codes aufgerufen wird anscheinend weiter aufgerufen wird, auch wenn man das Script selber gestoppt hat ...

                                        Startet man das Script nach Änderungen erneut, wird ein weiterer Schedule erzeugt ....

                                        
                                        schedule("* * * * *", function() {                          // Zu jeder vollen Minute die Fritzbox DOCSIS-Daten abfragen
                                            getCableModemChannelInfosV2();
                                        });
                                        
                                        
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          fastfoot @MartinP last edited by

                                          @martinp es könnte helfen body: durch data: zu ersetzen

                                          MartinP 1 Reply Last reply Reply Quote 0
                                          • MartinP
                                            MartinP @fastfoot last edited by

                                            @fastfoot Das hat auch nicht geholfen ...

                                            2024-07-04 07:22:00.197 - info: javascript.0 (33499) script.js.Fritzbox.DOCSISV01: status 200
                                            2024-07-04 07:22:00.198 - info: javascript.0 (33499) script.js.Fritzbox.DOCSISV01: headers cache-control: no-cache, no-cache, no-store, must-revalidate
                                            connection: close
                                            content-type: text/html; charset=utf-8
                                            date: Thu, 04 Jul 2024 05:22:00 GMT
                                            expires: -1
                                            pragma: no-cache
                                            x-frame-options: SAMEORIGIN
                                            x-xss-protection: 1; mode=block
                                            x-content-type-options: nosniff
                                            content-security-policy: default-src 'none'; connect-src 'self'; font-src 'self'; frame-src https://service.avm.de https://fritzhelp.avm.de/help/ https://help.avm.de https://www.avm.de https://avm.de https://assets.avm.de https://clickonce.avm.de http://clickonce.avm.de http://download.avm.de https://download.avm.de 'self'; img-src 'self' https://tv.avm.de https://help.avm.de/images/ http://help.avm.de/images/ data:; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; frame-ancestors 'self'; media-src 'self'
                                            2024-07-04 07:22:00.199 - info: javascript.0 (33499) script.js.Fritzbox.DOCSISV01: data:
                                            2024-07-04 07:22:00.204 - error: javascript.0 (33499) Error in callback: SyntaxError: Unexpected token '<', ")
                                            2024-07-04 07:22:00.205 - error: javascript.0 (33499) at Object. (script.js.Fritzbox.DOCSISV01:292:30)
                                            2024-07-04 07:22:00.205 - error: javascript.0 (33499) at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1242:38
                                            2024-07-04 07:22:00.206 - error: javascript.0 (33499) at processTicksAndRejections (node:internal/process/task_queues:95:5)
                                            
                                            
                                            MartinP 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

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            20
                                            199
                                            26929
                                            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