Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Adapter Speedport

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    112

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Adapter Speedport

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
18 Beiträge 10 Kommentatoren 5.6k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Offline
    C Offline
    Conquest
    schrieb am zuletzt editiert von
    #1

    Hallo,

    habe gerade angefangen bei mir Dashui einzurichten nur leider habe ich dann gemerkt das es ja gar nicht mehr weiterentwickelt wird. Deswegen frage ich mich jetzt ob ich direkt mit iobroker und vis anfangen soll.. Leider gibt es aber nicht alle Adapter die es bei Dashui gab. Jetzt meine Frage ist ein Adapter für den Speedport der Telekom vorgesehen oder gibt es eine Liste wo man wünsche eintragen kann?

    Kenne mich leider mit der Programmierung gar nicht aus.

    Gruß Torsten

    1 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      Hallo Torsten,

      @spoerl.torsten:

      ist ein Adapter für den Speedport der Telekom vorgesehen `
      Ist mir noch nicht bekannt - im Moment wird von ruhr77 erst einmal einer für die Fritzbox entwickelt.

      @spoerl.torsten:

      gibt es eine Liste wo man wünsche eintragen kann? `
      zum einen hier… ;)

      zum anderen gibt es den Wünsche thread mit dem Tollen Namen Funktionsansagen.

      Gruß

      Rainer

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • C Offline
        C Offline
        cybertron
        schrieb am zuletzt editiert von
        #3

        Hallo zusammen,

        ich muss das Thema nochmal wieder ausgraben.

        Bis dato habe ich alles noch über eine Fritzbox. Und muss zugeben, an den Adapter hab ich micht echt gewöhnt.

        Jetzt bekommen wir Magenta als Hybrid mit dem entsprechenden Speedport.

        Hat sich zu dem Thema eventuell schon was getan?

        Ich möchte nur ungern auf die gewohnten Infos's aus dem Fritzboxadapter verzichten müssen.

        Ich habe auf github div. Projekte zum SpeedPort Hybrid gefunden. z.T. in php zum Bsp. für IP-Symcon, z.T. in Java.

        Bin aber selber leider nicht in der Lage, zu beurteilen, ob es für iobroker nutzbar und abänderbar ist und erst recht leider nicht in der Lage, es umzusetzen.

        Aber vielleicht findet sich ja jemand, der etwas damit anfangen kann und daraus was brauchbares für ioBroker machen kann.

        https://github.com/florianprobst/ips-speedport

        https://github.com/Stricted/speedport-hybrid-php-api

        https://github.com/melle/l33tport

        Gruss

        Silvio

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #4

          Schon diese Möglichkeit gesehen?

          https://avm.de/service/fritzbox/fritzbo … einsetzen/

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            SchuetzeSchulz
            schrieb am zuletzt editiert von
            #5

            Hallo zusammen,

            ich könnte mich daran versuchen, den Speedport-Adapter von CCU.io nach ioBroker zu postieren, allerdings kann ich das Ganze dann leider überhaupt nicht testen.

            Also, wenn Interesse besteht und sich Tester finden, dann gern hier nochmal melden…

            1 Antwort Letzte Antwort
            0
            • C Offline
              C Offline
              cybertron
              schrieb am zuletzt editiert von
              #6

              Ich hab mir die Sachen von Melle mal angesehen.

              Das ganze ist node-js basierend.

              Wenn man das Script local aufruft. (node ist ja schon durch iobroker vorhanden), erhält man die Angaben der versteckten Technical-Seite als Json.

              Ich werd mich irgendwann in den nächsten Tagen genauer damit befassen, welche Daten das Ding alles ausspuckt.

              Das ipsymcon-Projekt soll soweit ich das verstanden haben auch auf dieses l33tport zurückgreifen.

              Vielleicht bekommt man ja gemeinsam für den Speedport dann einen vernünftigen Adapter zusammen.

              Als Tester bin ich auf jeden Fall am Start.

              Hier mal ein Auszug aus einem der Json-Strings.

              [{"vartype":"value","varid":"device_name","varvalue":"Speedport Hybrid"},{"vartype":"value","varid":"provis_inet","varvalue":"x04"},{"vartype":"value","varid":"provis_voip","varvalue":"xx3"},{"vartype":"value","varid":"ppp_bnguser","varvalue":"0"},{"vartype":"value","varid":"bngscrat","varvalue":"0"},{"vartype":"value","varid":"router_state","varvalue":"OK"},{"vartype":"value","varid":"support_https","varvalue":"0"},{"vartype":"page_title","varid":"title","varvalue":"Speedport Hybrid Konfigurationsprogramm"},{"vartype":"status","varid":"onlinestatus","varvalue":"online"},{"vartype":"option","varid":"use_lte","varvalue":"1"},{"vartype":"value","varid":"lte_status","varvalue":"10"},{"vartype":"value","varid":"bonding_status","varvalue":"Online"},{"vartype":"value","varid":"lte_signal","varvalue":"4"},{"vartype":"status","varid":"loginstate","varvalue":"1"},{"vartype":"value","varid":"datetime","varvalue":"08.09.2016 20:20:39"},{"vartype":"value","varid":"device_name","varvalue":"Speedport Hybrid"},{"vartype":"value","varid":"imei","varvalue":"864230023577834"},{"vartype":"value","varid":"dsl_link_status","varvalue":"online"},{"vartype":"value","varid":"dsl_errnr","varvalue":""},{"vartype":"value","varid":"status","varvalue":"online"}]
              

              Ich müsste nur mal wissen, wie ich die einzelnen Werte z.B. in Node Red extrahiere.

              mit dem folgenden funktioniert es schon mal nicht… :((

              msg.payload = msg.payload.device_name;

              return msg;

              Gruss

              Silvio

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                cybertron
                schrieb am zuletzt editiert von
                #7

                Ich habe heute mal mit dem node-script von Melle ein wenig rumgespielt.

                mit der folgend Batch (bei mir l33tport.sh) kann man sich für alle möglichen Zweige des Speedport json-Dateien anlegen.

                #!/bin/bash
                rm /home/pi/l33tport/speedport_status_*.*
                node /home/pi/l33tport/l33tport.js -o json -f Status >> speedport_status.txt
                node /home/pi/l33tport/l33tport.js -o json -f dsl >> speedport_l33tport_dsl.txt
                node /home/pi/l33tport/l33tport.js -o json -f interfaces >> speedport_l33tport_interfaces.txt
                node /home/pi/l33tport/l33tport.js -o json -f arp >> speedport_l33tport_arp.txt
                node /home/pi/l33tport/l33tport.js -o json -f session >> speedport_l33tport_session.txt
                node /home/pi/l33tport/l33tport.js -o json -f dhcp_client >> speedport_l33tport_dhcp_client.txt
                node /home/pi/l33tport/l33tport.js -o json -f dhcp_server >> speedport_l33tport_dhcp_server.txt
                node /home/pi/l33tport/l33tport.js -o json -f ipv6 >> speedport_l33tport_ipv6.txt
                node /home/pi/l33tport/l33tport.js -o json -f dns >> speedport_l33tport_dns.txt
                node /home/pi/l33tport/l33tport.js -o json -f routing >> speedport_l33tport_routing.txt
                node /home/pi/l33tport/l33tport.js -o json -f igmp_proxy >> speedport_l33tport_igmp_proxy.txt
                node /home/pi/l33tport/l33tport.js -o json -f igmp_snooping >> speedport_l33tport_igmp_snooping.txt
                node /home/pi/l33tport/l33tport.js -o json -f wlan >> speedport_l33tport_wlan.txt
                node /home/pi/l33tport/l33tport.js -o json -f module >> speedport_l33tport_module.txt
                node /home/pi/l33tport/l33tport.js -o json -f memory >> speedport_l33tport_memory.txt
                node /home/pi/l33tport/l33tport.js -o json -f speed >> speedport_l33tport_speed.txt
                node /home/pi/l33tport/l33tport.js -o json -f webdav >> speedport_l33tport_webdav.txt
                node /home/pi/l33tport/l33tport.js -o json -f bonding_client >> speedport_l33tport_bonding_client.txt
                node /home/pi/l33tport/l33tport.js -o json -f bonding_tunnel >> speedport_l33tport_bonding_tunnel.txt
                node /home/pi/l33tport/l33tport.js -o json -f filterlist >> speedport_l33tport_filterlist.txt
                node /home/pi/l33tport/l33tport.js -o json -f bonding_tr181 >> speedport_l33tport_bonding_tr181.txt
                node /home/pi/l33tport/l33tport.js -o json -f lteinfo >> speedport_l33tport_lteinfo.txt
                node /home/pi/l33tport/l33tport.js -o json -f SecureStatus >> speedport_l33tport_SecureStatus.txt
                node /home/pi/l33tport/l33tport.js -o json -f Overview >> speedport_l33tport_Overview.txt
                node /home/pi/l33tport/l33tport.js -o json -f modules >> speedport_l33tport_modules.txt
                node /home/pi/l33tport/l33tport.js -o json -f Abuse >> speedport_l33tport_Abuse.txt
                node /home/pi/l33tport/l33tport.js -o json -f DECTStation >> speedport_l33tport_DECTStation.txt
                node /home/pi/l33tport/l33tport.js -o json -f hsdelmobil >> speedport_l33tport_hsdelmobil.txt
                node /home/pi/l33tport/l33tport.js -o json -f LAN >> speedport_l33tport_LAN.txt
                

                Das Script bekommt man unter https://github.com/melle/l33tport

                das ganze am einfachsten nach /home/pi/l33tport entpacken.

                in der Datei l33tport.js in den Zeilen 11 & 12 die IP-Adresse des Speedport eintragen und das Kennwort.

                das bash-script mit in das Verzeichnis und die Rechte anpassen.

                Ruft man dann ./l33tport.sh auf werden die einzelnen json-Dateien erzeugt.

                Mit diesen habe ich versucht in Node-red und auch mit javascript die Daten u extrahieren, bin aber mangels Wissen kläglich gescheitert.

                Aber vielleicht hilft mein Ansatz ja weiter.

                Gruss

                Silvio

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  pix
                  schrieb am zuletzt editiert von
                  #8

                  Hallo,

                  die node-red Lösung kenne ich nicht. ABer so gehts:

                  ! jsonstring = '[{"vartype":"value","varid":"device_name","varvalue":"Speedport Hybrid"},{"vartype":"value","varid":"provis_inet","varvalue":"x04"},{"vartype":"value","varid":"provis_voip","varvalue":"xx3"},{"vartype":"value","varid":"ppp_bnguser","varvalue":"0"},{"vartype":"value","varid":"bngscrat","varvalue":"0"},{"vartype":"value","varid":"router_state","varvalue":"OK"},{"vartype":"value","varid":"support_https","varvalue":"0"},{"vartype":"page_title","varid":"title","varvalue":"Speedport Hybrid Konfigurationsprogramm"},{"vartype":"status","varid":"onlinestatus","varvalue":"online"},{"vartype":"option","varid":"use_lte","varvalue":"1"},{"vartype":"value","varid":"lte_status","varvalue":"10"},{"vartype":"value","varid":"bonding_status","varvalue":"Online"},{"vartype":"value","varid":"lte_signal","varvalue":"4"},{"vartype":"status","varid":"loginstate","varvalue":"1"},{"vartype":"value","varid":"datetime","varvalue":"08.09.2016 20:20:39"},{"vartype":"value","varid":"device_name","varvalue":"Speedport Hybrid"},{"vartype":"value","varid":"imei","varvalue":"864230023577834"},{"vartype":"value","varid":"dsl_link_status","varvalue":"online"},{"vartype":"value","varid":"dsl_errnr","varvalue":""},{"vartype":"value","varid":"status","varvalue":"online"}]'; ! var objects = JSON.parse(jsonstring); var router = objects[0].varvalue; var dsl_link_status = objects[17].varvalue; log (router); !
                  Am besten, du packst den JSON String mal für eine bessere Lesbarkeit in einen JSON Viewer (zB http://jsonviewer.stack.hu), dann kannst du die Blöcke leichter durchzählen. Habe hier mal den ersten (device) und den 18. genommen (dsl_link_status)

                  Du kannst auch das JSON-table Widget nutzen, dann diesen Code:

                  ! ````
                  createState('Test.Speedport');
                  jsonstring = '[{"vartype":"value","varid":"device_name","varvalue":"Speedport Hybrid"},{"vartype":"value","varid":"provis_inet","varvalue":"x04"},{"vartype":"value","varid":"provis_voip","varvalue":"xx3"},{"vartype":"value","varid":"ppp_bnguser","varvalue":"0"},{"vartype":"value","varid":"bngscrat","varvalue":"0"},{"vartype":"value","varid":"router_state","varvalue":"OK"},{"vartype":"value","varid":"support_https","varvalue":"0"},{"vartype":"page_title","varid":"title","varvalue":"Speedport Hybrid Konfigurationsprogramm"},{"vartype":"status","varid":"onlinestatus","varvalue":"online"},{"vartype":"option","varid":"use_lte","varvalue":"1"},{"vartype":"value","varid":"lte_status","varvalue":"10"},{"vartype":"value","varid":"bonding_status","varvalue":"Online"},{"vartype":"value","varid":"lte_signal","varvalue":"4"},{"vartype":"status","varid":"loginstate","varvalue":"1"},{"vartype":"value","varid":"datetime","varvalue":"08.09.2016 20:20:39"},{"vartype":"value","varid":"device_name","varvalue":"Speedport Hybrid"},{"vartype":"value","varid":"imei","varvalue":"864230023577834"},{"vartype":"value","varid":"dsl_link_status","varvalue":"online"},{"vartype":"value","varid":"dsl_errnr","varvalue":""},{"vartype":"value","varid":"status","varvalue":"online"}]';
                  ! var objects = JSON.parse(jsonstring);
                  var router = objects[0].varvalue;
                  var dsl_link_status = objects[17].varvalue;
                  log (router);
                  log(dsl_link_status);
                  setState('Test.Speedport',jsonstring);

                  [{"tpl":"tplTableBody","data":{"visibility-cond":"==","visibility-val":1,"static_value":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"colName1":"","colWidth1":"","colAttr1":"","colCount":"3","colName2":"ID","colWidth2":"30%","colAttr2":"varid","colAttr3":"varvalue","colName3":"Wert","table_oid":"javascript.0.Test.Speedport","new_on_top":false,"colWidth3":"30%","colAttr4":"vartype","colWidth4":"30%","colName4":"Typ"},"style":{"left":"136px","top":"1395px","width":"761px","height":"495px","z-index":"30"},"widgetSet":"basic"}]

                  sieht so dann daus:

                  
                  Gruß
                  
                  Pix
                  [261_bildschirmfoto_2016-09-09_um_16.46.09.jpg](/assets/uploads/files/261_bildschirmfoto_2016-09-09_um_16.46.09.jpg)

                  ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    cybertron
                    schrieb am zuletzt editiert von
                    #9

                    Hallo Pix,

                    ich würde jetzt fast sagen… "Du bist mein Held" :)

                    DANKE...

                    Ich werd jetzt mal die nächsten Abende abtauchen und das Ganze mal versuchen aufzuarbeiten.

                    Fällt Dir eventuell noch ein Weg ein, den Json-String direkt aus der Datei auszulesen?

                    in jeder der erzeugten Textdateien ist ja jeweil nur ein für diese Abfrage relevanter Json-String drin.

                    Das wäre eventuell für später auch interessant, damit man auswählen kann, welche Infozweige man lesen will.

                    (denk da so an einen Adapter, obwohl ich jetzt erstmal anfangen muss mich mit js zu befassen ;)) )

                    Gruss

                    Silvio

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      cybertron
                      schrieb am zuletzt editiert von
                      #10

                      Hallo zusammen,

                      inzwischen bin ich mit meinem minimalen Entwicklungswissen schon ein Stück weiter gekommen.

                      Aber so langsam komme ich an meine Grenzen.

                      Ich habe das Ganze ersteinmal als Script begonnen. Die Abfrage der Rubrik lte-info funktioniert soweit schon mal.

                      Wenn ich die Rubrik dsl ebenfals auf true setze hakelt es irgendwie zwischendurch immer mal.

                      /* SpeedPort einlesen
                      
                      SpeedPort Hybrid - Status Daten in JS Variablen schreiben
                      
                      erstellt: 09.09.2016 von Cybertron
                      */
                      
                      var logging = false;
                      var instanz = 'javascript.0';  instanz = instanz + '.';
                      var pfad    =     'Status.SpeedPortHybrid.';
                      var l33tport_pfad = '/home/pi/l33tport/l33tport.js';
                      var cronStr = "*/1 * * * *";
                      
                      /*
                      Endpoints lt https://github.com/melle/l33tport
                      
                      dsl              DSL connection status and line information');
                      interfaces       Network interfaces');
                      arp              ARP table');
                      session          PPPoE Session');
                      dhcp_client      DHCP client');
                      dhcp_server      DHCP server, includes DHCP leases ');
                      ipv6             IPv6 Router Advertisement');
                      dns              DNS server and cache information');
                      routing          Routing table');
                      igmp_proxy       IGMP Proxy');
                      igmp_snooping    IGMP Snooping Table');
                      wlan             WLAN status and information');
                      module           Software version information');
                      memory           Memory and CPU utilization');
                      speed            Speed dial');
                      webdav           WebDAV URL');
                      bonding_client   Bonding HA client');
                      bonding_tunnel   Bonding tunnel');
                      filterlist       Filter list table');
                      bonding_tr181    Bonding TR-181');
                      lteinfo          LTE information');
                      Status           System information (no login needed)');
                      SecureStatus     Secure system information (login needed)');
                      Overview         General status information, i.e. tunnel status');
                      modules          ');
                      Abuse            trusted SMTP servers configuration');
                      DECTStation      DECT configuration');
                      hsdelmobil       DECT handset status');
                      LAN              LAN status (DHCP assigned IPs ect.)');
                      
                      zusätzliche Endpoints lt https://github.com/Stricted/speedport-hybrid-php-api
                      
                      Connect
                      WLANBasic
                      WLANAccess
                      NASLight
                      INetIP
                      FilterAndTime
                      Portforwarding
                      PhoneBook
                      PhoneCalls
                      SystemMessages
                      DynDNS
                      
                      */
                      // ############################################################################
                      // #             						Variablen												#
                      // ############################################################################
                      
                      var selection_dsl = false;
                      var selection_interfaces = false;
                      var selection_arp = false;
                      var selection_session = false;
                      var selection_dhcp_client = false;
                      var selection_dhcp_server = false;
                      var selection_ipv6 = false;
                      var selection_dns = false;
                      var selection_routing = false;
                      var selection_igmp_proxy = false;
                      var selection_igmp_snooping = false;
                      var selection_wlan = false;
                      var selection_module = false;
                      var selection_memory = false;
                      var selection_speed = false;
                      var selection_webdav = false;
                      var selection_bonding_client = false;
                      var selection_bonding_tunnel = false;
                      var selection_filterlist = false;
                      var selection_bonding_tr181 = false;
                      var selection_lteinfo = true;
                      var selection_Status = false;
                      var selection_SecureStatus = false;
                      var selection_Overview = false;
                      var selection_modules = false;
                      var selection_Abuse = false;
                      var selection_DECTStation = false;
                      var selection_hsdelmobil = false;
                      var selection_LAN = false;
                      //
                      // var selection_PhoneCalls = true;
                      //
                      var dpWrite_section = "";
                      var actual_section = "";
                      
                      // ################################################################
                      // #  					Datenpunkte erstellen								#
                      // ################################################################
                          if (selection_lteinfo === true) {
                              // {"imei":"864230023577834","imsi":"262014944528183","device_status":"Attached","card_status":"SIM OK","antenna_mode":"Antennal set to external","phycellid":"72","cellid":"28385538","rsrp":"-85","rsrq":"-10","service_status":"Effective service","tac":"13500"}
                      
                      		//		createState(instanz + pfad + 'LTE-Info.' + 'dsl_status',,{name: 'DSL Status', desc: 'DSL-Satus: online-offline', type: 'boolean'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'rsrpQual',{name: 'RSRP-Qualitaet', desc: 'Qualität des RSRP-Wertes', type: 'number'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'rsrqQual',{name: 'RSRQ-Qualitaet', desc: 'Qualität des RSRQ-Wertes', type: 'number'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'IMEI',{name: 'IMEI', desc: 'IMEI der Sim-Karte', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'IMSI',{name: 'IMSI', desc: 'IMSI der Sim-Karte', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'Device-Status',{name: 'Device-Status', desc: 'Device-Status', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'Card-Status',{name: 'Card-Status', desc: 'Status der Sim-Karte', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'Antenna-Mode',{name: 'Antenna-Mode', desc: 'Antennen-Mode', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'phycellid',{name: 'phycellid', desc: 'phycellid', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'cellid',{name: 'cellid', desc: 'cellid', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'rsrp',{name: 'rsrp', desc: 'rsrp', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'rsrq',{name: 'rsrq', desc: 'rsrq', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'Service-Status',{name: 'Service-Status', desc: 'Service-Status', type: 'string'});
                      		createState(instanz + pfad + 'LTE-Info.' + 'TAC',{name: 'TAC', desc: 'TAC', type: 'string'});
                      	}
                      
                          if (selection_dsl === true) {
                      
                      		createState(instanz + pfad + 'DSL.Connection.' + 'dsl_operaing_mode',{name: 'Operating-Mode', desc: 'Art des DSL-Anschlusses', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Connection.' + 'path_mode',{name: 'Path-Mode', desc: 'Path-Mode', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Connection.' + 'state',{name: 'State', desc: 'Status', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Connection.' + 'training_results',{name: 'Training-Results', desc: 'Training-Results', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Connection.' + 'mode_lo',{name: 'Mode_Lo', desc: 'Mode_Lo', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Connection.' + 'vpi_vci',{name: 'VPI-VCI', desc: 'VPI-VCI', type: 'string'});
                      		//
                      		createState(instanz + pfad + 'DSL.Line.' + 'uactual',{name: 'uactual', desc: 'Aktuelle Upload-Rate', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dactual',{name: 'dactual', desc: 'Aktuelle Download-Rate', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uattainable',{name: 'uattainable', desc: 'uattainable', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dattainable',{name: 'dattainable', desc: 'dattainable', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uSNR',{name: 'uSNR', desc: 'uSNR', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dSNR',{name: 'dSNR', desc: 'dSNR', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uSignal',{name: 'uSignal', desc: 'uSignal', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dSignal',{name: 'dSignal', desc: 'dSignal', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uLine',{name: 'uLine', desc: 'uLine', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dLine',{name: 'dLine', desc: 'dLine', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uFEC_size',{name: 'uFEC_size', desc: 'uFEC_size', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dFEC_size',{name: 'dFEC_size', desc: 'dFEC_size', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uCodeword',{name: 'uCodeword', desc: 'uCodeword', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dCodeword',{name: 'dCodeword', desc: 'dCodeword', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uInterleave',{name: 'uInterleave', desc: 'uInterleave', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dInterleave',{name: 'dInterleave', desc: 'dInterleave', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uCRC',{name: 'uCRC', desc: 'uCRC', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dCRC',{name: 'dCRC', desc: 'dCRC', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uHEC',{name: 'uHEC', desc: 'uHEC', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dHEC',{name: 'dHEC', desc: 'dHEC', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'uFEC',{name: 'uFEC', desc: 'uFEC', type: 'string'});
                      		createState(instanz + pfad + 'DSL.Line.' + 'dFEC',{name: 'dFEC', desc: 'dFEC', type: 'string'});
                      	    //
                          }
                      
                      // ######################################################################
                      // #               Abholen der Daten vom SpeedPort								#
                      // ######################################################################
                      function getData() {
                          if (selection_lteinfo === true) {
                              log('Daten für LTE-Info werden abgefragt: ');
                      		dpWrite_section = 'lteinfo';
                      		exec("node " + l33tport_pfad + " -o json -f lteinfo", function(err, stdout, stderr) {
                          	if (err) {
                            	    log(stderr,'error');
                            	return;
                          	}
                          	log('Rückgabewert: ' + stdout);
                          	writeDP(stdout,dpWrite_section);
                          	dpWrite_section='';
                      		});
                      	}
                      	if (selection_dsl === true) {
                              log('Daten für DSL werden abgefragt: ');
                      		dpWrite_section = 'dsl';
                      		exec("node " + l33tport_pfad + " -o json -f dsl", function(err, stdout, stderr) {
                          	if (err) {
                            	    log(stderr,'error');
                            	return;
                          	}
                          	log('Rückgabewert: ' + stdout);
                      		writeDP(stdout,dpWrite_section);
                      		dpWrite_section='';
                      		});
                      	}
                      }
                      
                      function writeDP (jsonString,selection) {
                      
                         	var objects = JSON.parse(jsonString);
                      	var jsonStr = jsonString; 
                          log (jsonStr);
                      
                          if (selection === 'lteinfo') {
                              var imei = objects.imei;
                              var imsi = objects.imsi;
                              var device_status = objects.device_status;
                              var card_status = objects.card_status;
                              var antenna_mode = objects.antenna_mode;
                              var phycellid = objects.phycellid;
                              var cellid = objects.cellid;
                              var rsrp = objects.rsrp;
                              var rsrq = objects.rsrq;
                              var service_status = objects.service_status;
                              var tac = objects.tac;
                              var rsrp_qual = 0;
                              var rsrq_qual = 0;
                      
                      		// SetState für lteinfo mit SubPfad LTE-Info
                      		// setState(instanz + pfad + 'LTE-Info.' + Wertezweig,variable);
                      		setState(instanz + pfad + 'LTE-Info.' + 'IMEI', imei);
                      		setState(instanz + pfad + 'LTE-Info.' + 'IMSI', imsi);
                      		setState(instanz + pfad + 'LTE-Info.' + 'Device-Status', device_status);
                      		setState(instanz + pfad + 'LTE-Info.' + 'Card-Status', card_status);
                      		setState(instanz + pfad + 'LTE-Info.' + 'Antenna-Mode', antenna_mode);
                      		log('phycellid ist vom Typ: ' + typeof phycellid);
                      		setState(instanz + pfad + 'LTE-Info.' + 'phycellid', phycellid);
                      		setState(instanz + pfad + 'LTE-Info.' + 'cellid', cellid);
                      		setState(instanz + pfad + 'LTE-Info.' + 'rsrp', rsrp);
                      		setState(instanz + pfad + 'LTE-Info.' + 'rsrq', rsrq);
                      		setState(instanz + pfad + 'LTE-Info.' + 'Service-Status', service_status);
                      		setState(instanz + pfad + 'LTE-Info.' + 'TAC', tac);
                      
                          log ('RSRQ-Wert = ' + rsrq);
                          rsrq = parseInt(rsrq);
                          if(rsrq >= -15) rsrq_qual = 1;
                          if(rsrq >= -11) rsrq_qual = 2;
                          if(rsrq >= -8) rsrq_qual = 3;
                          if(rsrq >= -5) rsrq_qual = 4;
                          if(rsrq >= -3) rsrq_qual = 5;
                          setState(instanz + pfad + 'LTE-Info.' + 'rsrqQual', rsrq_qual);
                      
                          // analog mit rsrp          rsrp_qual
                          log ('rsrp-Wert = ' + rsrp);
                          rsrp = parseInt(rsrp);
                          if(rsrp >= -124) rsrp_qual = 1;
                          if(rsrp >= -109) rsrp_qual = 2;
                          if(rsrp >= -95) rsrp_qual =3;
                          if(rsrp >= -80) rsrp_qual =4;
                          if(rsrp >= -65) rsrp_qual =5;
                      
                          setState(instanz + pfad + 'LTE-Info.' + 'rsrpQual', rsrp_qual);
                      
                      	}
                      
                      	 if (selection === 'dsl') {
                              var dsl_operaing_mode = objects.Connection.dsl_operaing_mode;
                              var path_mode = objects.Connection.path_mode;
                              var state = objects.Connection.state;
                              var training_results = objects.Connection.training_results;
                              var mode_lo = objects.Connection.mode_lo;
                              var vpi_vci = objects.Connection.vpi_vci;
                              //
                              var uactual = objects.Line.uactual;
                              var dactual = objects.Line.dactual;
                              var uattainable = objects.Line.uattainable;
                              var dattainable = objects.Line.dattainable;
                              var uSNR = objects.Line.uSNR;
                              var dSNR = objects.Line.dSNR;
                              var uSignal = objects.Line.uSignal;
                              var dSignal = objects.Line.dSignal;
                              var uLine = objects.Line.uLine;
                              var dLine = objects.Line.dLine;
                              var uFEC_size = objects.Line.uFEC_size;
                              var dFEC_size = objects.Line.dFEC_size;
                              var uCodeword = objects.Line.uCodeword;
                              var dCodeword = objects.Line.dCodeword;
                              var uInterleave = objects.Line.uInterleave;
                              var dInterleave = objects.Line.dInterleave;
                              var uCRC = objects.Line.uCRC;
                              var dCRC = objects.Line.dCRC;
                              var uHEC = objects.Line.uHEC;
                              var dHEC = objects.Line.dHEC;
                              var uFEC = objects.Line.uFEC;
                              var dFEC = objects.Line.dFEC;
                      
                      		// SetState für lteinfo mit SubPfad LTE-Info
                      		// setState(instanz + pfad + 'LTE-Info.' + Wertezweig,variable);
                      		setState(instanz + pfad + 'DSL.Connection.' + 'dsl_operaing_mode', dsl_operaing_mode);
                      		setState(instanz + pfad + 'DSL.Connection.' + 'path_mode', path_mode);
                      		setState(instanz + pfad + 'DSL.Connection.' + 'state', state);
                      		setState(instanz + pfad + 'DSL.Connection.' + 'training_results', training_results);
                      		setState(instanz + pfad + 'DSL.Connection.' + 'mode_lo', mode_lo);
                      		setState(instanz + pfad + 'DSL.Connection.' + 'vpi_vci', vpi_vci);
                      		//
                      		setState(instanz + pfad + 'DSL.Line.' + 'uactual', uactual);
                      		setState(instanz + pfad + 'DSL.Line.' + 'dactual', dactual);
                      		setState(instanz + pfad + 'DSL.Line.' + 'uattainable',uattainable );
                      		setState(instanz + pfad + 'DSL.Line.' + 'dattainable',dattainable );
                      		setState(instanz + pfad + 'DSL.Line.' + 'uSNR', uSNR);
                      		setState(instanz + pfad + 'DSL.Line.' + 'dSNR',dSNR );
                      		setState(instanz + pfad + 'DSL.Line.' + 'uSignal',uSignal );
                      		setState(instanz + pfad + 'DSL.Line.' + 'dSignal',dSignal );
                      		setState(instanz + pfad + 'DSL.Line.' + 'uLine',uLine );
                      		setState(instanz + pfad + 'DSL.Line.' + 'dLine',dLine );
                      		setState(instanz + pfad + 'DSL.Line.' + 'uFEC_size', uFEC_size);
                      		setState(instanz + pfad + 'DSL.Line.' + 'dFEC_size', dFEC_size);
                      		setState(instanz + pfad + 'DSL.Line.' + 'uCodeword', uCodeword);
                      		setState(instanz + pfad + 'DSL.Line.' + 'dCodeword', dCodeword);
                      		setState(instanz + pfad + 'DSL.Line.' + 'uInterleave',uInterleave );
                      		setState(instanz + pfad + 'DSL.Line.' + 'dInterleave',dInterleave );
                      		setState(instanz + pfad + 'DSL.Line.' + 'uCRC',uCRC );
                      		setState(instanz + pfad + 'DSL.Line.' + 'dCRC',dCRC );
                      		setState(instanz + pfad + 'DSL.Line.' + 'uHEC',uHEC );
                      		setState(instanz + pfad + 'DSL.Line.' + 'dHEC',dHEC );
                      		setState(instanz + pfad + 'DSL.Line.' + 'uFEC',uFEC );
                      		setState(instanz + pfad + 'DSL.Line.' + 'dFEC',dFEC );
                      
                      	}	
                      }
                      
                      // regelmässige Wiederholungen
                      // -----------------------------------------------------------------------------
                      schedule(cronStr, getData);
                      
                      

                      Da ich ja im Ursprung das alles lieber als Adapter gehabt hätte, habe ich dies im Ansatz auf Github https://github.com/ssbingo/iobroker.speedport-hybrid mal versucht anzufangen.

                      Muss aber zugeben, dass ich da mangels Wissen komplett scheitere.

                      Vielleicht findet sich ja jemand, der Lust und Interesse hat, da mit zu werkeln.

                      Bis heute habe ich ersteinmal die Datenpunkte für die ersten 4 Rubriken definiert und die admin.html angepasst.

                      Die restlichen mit l33tport machbaren Rubriken werde ich nach und nach weiter einpflegen.

                      An dem eigentlichen Adapter sehe ich mich aber kläglich scheitern.

                      Gruss

                      Silvio

                      edit: Vorschalg von paul53 in script übernommen

                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #11

                        Die switch/case-Arie kann man verkürzen:

                        log ('RSRQ-Wert = ' + rsrq);
                        rsrq = parseInt(rsrq);
                        var qual = 0;
                        if(rsrq >= -15) qual = 1;
                        if(rsrq >= -11) qual = 2;
                        if(rsrq >= -8) qual = 3;
                        if(rsrq >= -5) qual = 4;
                        if(rsrq >= -3) qual = 5;
                        setState(instanz + pfad + 'LTE-Info.' + 'rsrqQual', qual);
                        
                        // analog mit rsrp
                        log ('rsrp-Wert = ' + rsrp);
                        rsrp = parseInt(rsrp);
                        qual = 0;
                        if(
                        ...
                        setState(instanz + pfad + 'LTE-Info.' + 'rsrpQual', qual);
                        
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        0
                        • C Offline
                          C Offline
                          cybertron
                          schrieb am zuletzt editiert von
                          #12

                          Danke

                          hab den Vorschlag direkt übernommen und auch im Thread direkt mit übernommen.

                          Gruss

                          Silvio

                          1 Antwort Letzte Antwort
                          0
                          • C Offline
                            C Offline
                            cybertron
                            schrieb am zuletzt editiert von
                            #13

                            Hallo zusammen,

                            ich habe es inzwischen (dank vielem Abgucken bei anderen Adaptern) geschafft, dass ich den Adapter installieren kann und dass die später mal verfügbaren Rubriken in den Objekten angelegt werden.

                            Für die ersten 4 Rubriken (lteinfo, dsl, module, bonding_tr181) werden auch die einzelnen Objekte angelegt.

                            Offensichtlich habe ich aber noch einen gröberen Fehler in der main.js

                            ich versuche, wie im Script bereits, das l33tport.js über exec aufzurufen.

                            Im Log wird diesbezüglich nur eine Fehlermeldung ausgegeben.

                            Code aus Script:

                                  exec("node " + l33tport_pfad + " -o json -f lteinfo", function(err, stdout, stderr) {
                                   if (err) {
                                         log(stderr,'error');
                                     return;
                                   }
                                   log('Rückgabewert: ' + stdout);
                                   writeDP(stdout,dpWrite_section);
                                   dpWrite_section='';
                                  });
                            

                            Code aus Adapter (main.js)

                            		exec("node " + l33tport_pfad + "l33tport.js -o json -f lteinfo", function(err, stdout, stderr) {
                            		adapter.log.debug ('START: l33tport for lteinfo');
                                	if (err) {
                                  	adapter.log.error(stderr,"error");
                                  	return;
                                	}
                                	adapter.log.debug("Rueckgabewert: " + stdout);
                                	writeDP(stdout,dpWrite_section);
                                	dpWrite_section = "";
                            		});
                            

                            Der Pfad ist vorher so definiert:

                            var l33tport_pfad =	'/home/pi/l33tport/';
                            

                            Vielleicht könnte jemand mit mehr Wissen mal drüber schauen und mir helfen, wo ich den Fehler mache.

                            Geht "exec" vielleicht innerhalb des Adapters so gar nicht?

                            Da ich wie bereits erwähnt ganz am Anfang mit meinen Erfahrungen stehe und das Ganze rein im Editor schreibe bin ich an dieser Stelle momentan echt aufgeschmissen.

                            Danke schon mal

                            Gruss

                            Silvio

                            zu finden ist das Ganze unter https://github.com/ssbingo/iobroker.speedporthybrid

                            1 Antwort Letzte Antwort
                            0
                            • kmxakK Offline
                              kmxakK Offline
                              kmxak
                              Most Active
                              schrieb am zuletzt editiert von
                              #14

                              Moin gerade über dein Thema gestolpert. Ich habe ebenfalls diesen Router.

                              Anscheinend Arbeitest du aber nicht mehr an dem Adapter ist das so?

                              Gruß

                              Alex

                              Gruß Alex

                              1 Antwort Letzte Antwort
                              0
                              • apollon77A Online
                                apollon77A Online
                                apollon77
                                schrieb am zuletzt editiert von
                                #15

                                @cybertron: Was ist denn genau die Fehlermeldung?

                                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                1 Antwort Letzte Antwort
                                0
                                • kmxakK Offline
                                  kmxakK Offline
                                  kmxak
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #16

                                  Ich habe nun den Speedport Hybrind mittels der FHEM Anleitung und FHEM eingebunden.

                                  https://forum.fhem.de/index.php/topic,54211.0.html
                                  

                                  ` > Nach der Definition ist das Attribut fieldnames noch unbelegt.

                                  Wenn man alles auswählt wird die Readingsliste sehr, sehr lang. `

                                  Ganz wichtig :lol: Es sind wirklich sehr viele Infos die eingelesen werden! Mein Browser ging nach 10 min wieder :mrgreen:

                                  Ich habe aktuell nur dsl und lte info das reicht mir und es läd nun auch wieder fix ;)
                                  2343_lte.jpg

                                  Gruß Alex

                                  1 Antwort Letzte Antwort
                                  0
                                  • lobomauL Offline
                                    lobomauL Offline
                                    lobomau
                                    schrieb am zuletzt editiert von
                                    #17

                                    Läuft das Script soweit?

                                    Was muss ich an Anpassungen vornehmen?

                                    Ich hatte nur für mich den Pfad "var l33tport_pfad = '/home/pi/l33tport/l33tport.js';" angepasst. Er meckert dass Modul fehlt "l33tport.js".

                                    Edit:

                                    habe gerade gelesen, dass man folgendes installieren muss:

                                    npm install sjcl
                                    npm install commander
                                    

                                    @cybertron:

                                    Hallo zusammen,

                                    inzwischen bin ich mit meinem minimalen Entwicklungswissen schon ein Stück weiter gekommen.

                                    Aber so langsam komme ich an meine Grenzen.

                                    Ich habe das Ganze ersteinmal als Script begonnen. Die Abfrage der Rubrik lte-info funktioniert soweit schon mal.

                                    Wenn ich die Rubrik dsl ebenfals auf true setze hakelt es irgendwie zwischendurch immer mal.

                                    ! ````
                                    /* SpeedPort einlesen
                                    ! SpeedPort Hybrid - Status Daten in JS Variablen schreiben
                                    ! erstellt: 09.09.2016 von Cybertron
                                    /
                                    ! var logging = false;
                                    var instanz = 'javascript.0'; instanz = instanz + '.';
                                    var pfad = 'Status.SpeedPortHybrid.';
                                    var l33tport_pfad = '/home/pi/l33tport/l33tport.js';
                                    var cronStr = "
                                    /1 * * * ";
                                    ! /

                                    Endpoints lt https://github.com/melle/l33tport
                                    ! dsl DSL connection status and line information');
                                    interfaces Network interfaces');
                                    arp ARP table');
                                    session PPPoE Session');
                                    dhcp_client DHCP client');
                                    dhcp_server DHCP server, includes DHCP leases ');
                                    ipv6 IPv6 Router Advertisement');
                                    dns DNS server and cache information');
                                    routing Routing table');
                                    igmp_proxy IGMP Proxy');
                                    igmp_snooping IGMP Snooping Table');
                                    wlan WLAN status and information');
                                    module Software version information');
                                    memory Memory and CPU utilization');
                                    speed Speed dial');
                                    webdav WebDAV URL');
                                    bonding_client Bonding HA client');
                                    bonding_tunnel Bonding tunnel');
                                    filterlist Filter list table');
                                    bonding_tr181 Bonding TR-181');
                                    lteinfo LTE information');
                                    Status System information (no login needed)');
                                    SecureStatus Secure system information (login needed)');
                                    Overview General status information, i.e. tunnel status');
                                    modules ');
                                    Abuse trusted SMTP servers configuration');
                                    DECTStation DECT configuration');
                                    hsdelmobil DECT handset status');
                                    LAN LAN status (DHCP assigned IPs ect.)');
                                    ! zusätzliche Endpoints lt https://github.com/Stricted/speedport-hybrid-php-api
                                    ! Connect
                                    WLANBasic
                                    WLANAccess
                                    NASLight
                                    INetIP
                                    FilterAndTime
                                    Portforwarding
                                    PhoneBook
                                    PhoneCalls
                                    SystemMessages
                                    DynDNS
                                    ! */
                                    // ############################################################################
                                    // # Variablen #
                                    // ############################################################################
                                    ! var selection_dsl = false;
                                    var selection_interfaces = false;
                                    var selection_arp = false;
                                    var selection_session = false;
                                    var selection_dhcp_client = false;
                                    var selection_dhcp_server = false;
                                    var selection_ipv6 = false;
                                    var selection_dns = false;
                                    var selection_routing = false;
                                    var selection_igmp_proxy = false;
                                    var selection_igmp_snooping = false;
                                    var selection_wlan = false;
                                    var selection_module = false;
                                    var selection_memory = false;
                                    var selection_speed = false;
                                    var selection_webdav = false;
                                    var selection_bonding_client = false;
                                    var selection_bonding_tunnel = false;
                                    var selection_filterlist = false;
                                    var selection_bonding_tr181 = false;
                                    var selection_lteinfo = true;
                                    var selection_Status = false;
                                    var selection_SecureStatus = false;
                                    var selection_Overview = false;
                                    var selection_modules = false;
                                    var selection_Abuse = false;
                                    var selection_DECTStation = false;
                                    var selection_hsdelmobil = false;
                                    var selection_LAN = false;
                                    //
                                    // var selection_PhoneCalls = true;
                                    //
                                    var dpWrite_section = "";
                                    var actual_section = "";
                                    ! // ################################################################
                                    // # Datenpunkte erstellen #
                                    // ################################################################
                                    if (selection_lteinfo === true) {
                                    // {"imei":"864230023577834","imsi":"262014944528183","device_status":"Attached","card_status":"SIM OK","antenna_mode":"Antennal set to external","phycellid":"72","cellid":"28385538","rsrp":"-85","rsrq":"-10","service_status":"Effective service","tac":"13500"}
                                    ! // createState(instanz + pfad + 'LTE-Info.' + 'dsl_status',,{name: 'DSL Status', desc: 'DSL-Satus: online-offline', type: 'boolean'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'rsrpQual',{name: 'RSRP-Qualitaet', desc: 'Qualität des RSRP-Wertes', type: 'number'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'rsrqQual',{name: 'RSRQ-Qualitaet', desc: 'Qualität des RSRQ-Wertes', type: 'number'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'IMEI',{name: 'IMEI', desc: 'IMEI der Sim-Karte', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'IMSI',{name: 'IMSI', desc: 'IMSI der Sim-Karte', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'Device-Status',{name: 'Device-Status', desc: 'Device-Status', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'Card-Status',{name: 'Card-Status', desc: 'Status der Sim-Karte', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'Antenna-Mode',{name: 'Antenna-Mode', desc: 'Antennen-Mode', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'phycellid',{name: 'phycellid', desc: 'phycellid', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'cellid',{name: 'cellid', desc: 'cellid', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'rsrp',{name: 'rsrp', desc: 'rsrp', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'rsrq',{name: 'rsrq', desc: 'rsrq', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'Service-Status',{name: 'Service-Status', desc: 'Service-Status', type: 'string'});
                                    createState(instanz + pfad + 'LTE-Info.' + 'TAC',{name: 'TAC', desc: 'TAC', type: 'string'});
                                    }

                                    if (selection_dsl === true) {
                                        
                                      createState(instanz + pfad + 'DSL.Connection.' + 'dsl_operaing_mode',{name: 'Operating-Mode', desc: 'Art des DSL-Anschlusses', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Connection.' + 'path_mode',{name: 'Path-Mode', desc: 'Path-Mode', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Connection.' + 'state',{name: 'State', desc: 'Status', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Connection.' + 'training_results',{name: 'Training-Results', desc: 'Training-Results', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Connection.' + 'mode_lo',{name: 'Mode_Lo', desc: 'Mode_Lo', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Connection.' + 'vpi_vci',{name: 'VPI-VCI', desc: 'VPI-VCI', type: 'string'});
                                      //
                                      createState(instanz + pfad + 'DSL.Line.' + 'uactual',{name: 'uactual', desc: 'Aktuelle Upload-Rate', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dactual',{name: 'dactual', desc: 'Aktuelle Download-Rate', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uattainable',{name: 'uattainable', desc: 'uattainable', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dattainable',{name: 'dattainable', desc: 'dattainable', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uSNR',{name: 'uSNR', desc: 'uSNR', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dSNR',{name: 'dSNR', desc: 'dSNR', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uSignal',{name: 'uSignal', desc: 'uSignal', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dSignal',{name: 'dSignal', desc: 'dSignal', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uLine',{name: 'uLine', desc: 'uLine', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dLine',{name: 'dLine', desc: 'dLine', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uFEC_size',{name: 'uFEC_size', desc: 'uFEC_size', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dFEC_size',{name: 'dFEC_size', desc: 'dFEC_size', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uCodeword',{name: 'uCodeword', desc: 'uCodeword', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dCodeword',{name: 'dCodeword', desc: 'dCodeword', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uInterleave',{name: 'uInterleave', desc: 'uInterleave', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dInterleave',{name: 'dInterleave', desc: 'dInterleave', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uCRC',{name: 'uCRC', desc: 'uCRC', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dCRC',{name: 'dCRC', desc: 'dCRC', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uHEC',{name: 'uHEC', desc: 'uHEC', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dHEC',{name: 'dHEC', desc: 'dHEC', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'uFEC',{name: 'uFEC', desc: 'uFEC', type: 'string'});
                                      createState(instanz + pfad + 'DSL.Line.' + 'dFEC',{name: 'dFEC', desc: 'dFEC', type: 'string'});
                                      //
                                    }
                                    

                                    ! // ######################################################################
                                    // # Abholen der Daten vom SpeedPort #
                                    // ######################################################################
                                    function getData() {
                                    if (selection_lteinfo === true) {
                                    log('Daten für LTE-Info werden abgefragt: ');
                                    dpWrite_section = 'lteinfo';
                                    exec("node " + l33tport_pfad + " -o json -f lteinfo", function(err, stdout, stderr) {
                                    if (err) {
                                    log(stderr,'error');
                                    return;
                                    }
                                    log('Rückgabewert: ' + stdout);
                                    writeDP(stdout,dpWrite_section);
                                    dpWrite_section='';
                                    });
                                    }
                                    if (selection_dsl === true) {
                                    log('Daten für DSL werden abgefragt: ');
                                    dpWrite_section = 'dsl';
                                    exec("node " + l33tport_pfad + " -o json -f dsl", function(err, stdout, stderr) {
                                    if (err) {
                                    log(stderr,'error');
                                    return;
                                    }
                                    log('Rückgabewert: ' + stdout);
                                    writeDP(stdout,dpWrite_section);
                                    dpWrite_section='';
                                    });
                                    }
                                    }
                                    ! function writeDP (jsonString,selection) {
                                    ! var objects = JSON.parse(jsonString);
                                    var jsonStr = jsonString;
                                    log (jsonStr);

                                    !
                                    if (selection === 'lteinfo') {
                                    var imei = objects.imei;
                                    var imsi = objects.imsi;
                                    var device_status = objects.device_status;
                                    var card_status = objects.card_status;
                                    var antenna_mode = objects.antenna_mode;
                                    var phycellid = objects.phycellid;
                                    var cellid = objects.cellid;
                                    var rsrp = objects.rsrp;
                                    var rsrq = objects.rsrq;
                                    var service_status = objects.service_status;
                                    var tac = objects.tac;
                                    var rsrp_qual = 0;
                                    var rsrq_qual = 0;

                                      // SetState für lteinfo mit SubPfad LTE-Info
                                      // setState(instanz + pfad + 'LTE-Info.' + Wertezweig,variable);
                                      setState(instanz + pfad + 'LTE-Info.' + 'IMEI', imei);
                                      setState(instanz + pfad + 'LTE-Info.' + 'IMSI', imsi);
                                      setState(instanz + pfad + 'LTE-Info.' + 'Device-Status', device_status);
                                      setState(instanz + pfad + 'LTE-Info.' + 'Card-Status', card_status);
                                      setState(instanz + pfad + 'LTE-Info.' + 'Antenna-Mode', antenna_mode);
                                      log('phycellid ist vom Typ: ' + typeof phycellid);
                                      setState(instanz + pfad + 'LTE-Info.' + 'phycellid', phycellid);
                                      setState(instanz + pfad + 'LTE-Info.' + 'cellid', cellid);
                                      setState(instanz + pfad + 'LTE-Info.' + 'rsrp', rsrp);
                                      setState(instanz + pfad + 'LTE-Info.' + 'rsrq', rsrq);
                                      setState(instanz + pfad + 'LTE-Info.' + 'Service-Status', service_status);
                                      setState(instanz + pfad + 'LTE-Info.' + 'TAC', tac);
                                    

                                    ! log ('RSRQ-Wert = ' + rsrq);
                                    rsrq = parseInt(rsrq);
                                    if(rsrq >= -15) rsrq_qual = 1;
                                    if(rsrq >= -11) rsrq_qual = 2;
                                    if(rsrq >= -8) rsrq_qual = 3;
                                    if(rsrq >= -5) rsrq_qual = 4;
                                    if(rsrq >= -3) rsrq_qual = 5;
                                    setState(instanz + pfad + 'LTE-Info.' + 'rsrqQual', rsrq_qual);
                                    ! // analog mit rsrp rsrp_qual
                                    log ('rsrp-Wert = ' + rsrp);
                                    rsrp = parseInt(rsrp);
                                    if(rsrp >= -124) rsrp_qual = 1;
                                    if(rsrp >= -109) rsrp_qual = 2;
                                    if(rsrp >= -95) rsrp_qual =3;
                                    if(rsrp >= -80) rsrp_qual =4;
                                    if(rsrp >= -65) rsrp_qual =5;
                                    ! setState(instanz + pfad + 'LTE-Info.' + 'rsrpQual', rsrp_qual);
                                    !
                                    }

                                    if (selection === 'dsl') {
                                    var dsl_operaing_mode = objects.Connection.dsl_operaing_mode;
                                    var path_mode = objects.Connection.path_mode;
                                    var state = objects.Connection.state;
                                    var training_results = objects.Connection.training_results;
                                    var mode_lo = objects.Connection.mode_lo;
                                    var vpi_vci = objects.Connection.vpi_vci;
                                    //
                                    var uactual = objects.Line.uactual;
                                    var dactual = objects.Line.dactual;
                                    var uattainable = objects.Line.uattainable;
                                    var dattainable = objects.Line.dattainable;
                                    var uSNR = objects.Line.uSNR;
                                    var dSNR = objects.Line.dSNR;
                                    var uSignal = objects.Line.uSignal;
                                    var dSignal = objects.Line.dSignal;
                                    var uLine = objects.Line.uLine;
                                    var dLine = objects.Line.dLine;
                                    var uFEC_size = objects.Line.uFEC_size;
                                    var dFEC_size = objects.Line.dFEC_size;
                                    var uCodeword = objects.Line.uCodeword;
                                    var dCodeword = objects.Line.dCodeword;
                                    var uInterleave = objects.Line.uInterleave;
                                    var dInterleave = objects.Line.dInterleave;
                                    var uCRC = objects.Line.uCRC;
                                    var dCRC = objects.Line.dCRC;
                                    var uHEC = objects.Line.uHEC;
                                    var dHEC = objects.Line.dHEC;
                                    var uFEC = objects.Line.uFEC;
                                    var dFEC = objects.Line.dFEC;

                                      // SetState für lteinfo mit SubPfad LTE-Info
                                      // setState(instanz + pfad + 'LTE-Info.' + Wertezweig,variable);
                                      setState(instanz + pfad + 'DSL.Connection.' + 'dsl_operaing_mode', dsl_operaing_mode);
                                      setState(instanz + pfad + 'DSL.Connection.' + 'path_mode', path_mode);
                                      setState(instanz + pfad + 'DSL.Connection.' + 'state', state);
                                      setState(instanz + pfad + 'DSL.Connection.' + 'training_results', training_results);
                                      setState(instanz + pfad + 'DSL.Connection.' + 'mode_lo', mode_lo);
                                      setState(instanz + pfad + 'DSL.Connection.' + 'vpi_vci', vpi_vci);
                                      //
                                      setState(instanz + pfad + 'DSL.Line.' + 'uactual', uactual);
                                      setState(instanz + pfad + 'DSL.Line.' + 'dactual', dactual);
                                      setState(instanz + pfad + 'DSL.Line.' + 'uattainable',uattainable );
                                      setState(instanz + pfad + 'DSL.Line.' + 'dattainable',dattainable );
                                      setState(instanz + pfad + 'DSL.Line.' + 'uSNR', uSNR);
                                      setState(instanz + pfad + 'DSL.Line.' + 'dSNR',dSNR );
                                      setState(instanz + pfad + 'DSL.Line.' + 'uSignal',uSignal );
                                      setState(instanz + pfad + 'DSL.Line.' + 'dSignal',dSignal );
                                      setState(instanz + pfad + 'DSL.Line.' + 'uLine',uLine );
                                      setState(instanz + pfad + 'DSL.Line.' + 'dLine',dLine );
                                      setState(instanz + pfad + 'DSL.Line.' + 'uFEC_size', uFEC_size);
                                      setState(instanz + pfad + 'DSL.Line.' + 'dFEC_size', dFEC_size);
                                      setState(instanz + pfad + 'DSL.Line.' + 'uCodeword', uCodeword);
                                      setState(instanz + pfad + 'DSL.Line.' + 'dCodeword', dCodeword);
                                      setState(instanz + pfad + 'DSL.Line.' + 'uInterleave',uInterleave );
                                      setState(instanz + pfad + 'DSL.Line.' + 'dInterleave',dInterleave );
                                      setState(instanz + pfad + 'DSL.Line.' + 'uCRC',uCRC );
                                      setState(instanz + pfad + 'DSL.Line.' + 'dCRC',dCRC );
                                      setState(instanz + pfad + 'DSL.Line.' + 'uHEC',uHEC );
                                      setState(instanz + pfad + 'DSL.Line.' + 'dHEC',dHEC );
                                      setState(instanz + pfad + 'DSL.Line.' + 'uFEC',uFEC );
                                      setState(instanz + pfad + 'DSL.Line.' + 'dFEC',dFEC );
                                    

                                    }
                                    }

                                    ! // regelmässige Wiederholungen
                                    // -----------------------------------------------------------------------------
                                    schedule(cronStr, getData);
                                    ! ````
                                    ! Da ich ja im Ursprung das alles lieber als Adapter gehabt hätte, habe ich dies im Ansatz auf Github https://github.com/ssbingo/iobroker.speedport-hybrid mal versucht anzufangen.
                                    ! Muss aber zugeben, dass ich da mangels Wissen komplett scheitere.
                                    ! Vielleicht findet sich ja jemand, der Lust und Interesse hat, da mit zu werkeln.
                                    ! Bis heute habe ich ersteinmal die Datenpunkte für die ersten 4 Rubriken definiert und die admin.html angepasst.
                                    ! Die restlichen mit l33tport machbaren Rubriken werde ich nach und nach weiter einpflegen.
                                    ! An dem eigentlichen Adapter sehe ich mich aber kläglich scheitern.
                                    ! Gruss
                                    ! Silvio
                                    ! edit: Vorschalg von paul53 in script übernommen `

                                    Host: NUC8i3 mit Proxmox:

                                    • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                                    • Slave: Pi4
                                    1 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      sveni_lee
                                      schrieb am zuletzt editiert von
                                      #18

                                      ich habe jetzt mal versucht den Adapter zu installieren…

                                      allerdings bekomme ich schon einige Fehlermeldungen wenn ich versuche sjcl und commander zu installieren

                                      ! ````
                                      svenilee@Gotham-City:/opt/iobroker$ npm install sjcl
                                      ! > bufferutil@1.1.0 install /opt/iobroker/node_modules/bufferutil
                                      node-gyp rebuild
                                      ! make: Verzeichnis „/opt/iobroker/node_modules/bufferutil/build“ wird betreten
                                      CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
                                      In file included from ../node_modules/nan/nan.h:82:0,
                                      from ../src/bufferutil.cc:16:
                                      ../node_modules/nan/nan_new.h: In function ‘v8::Local NanIntern::To(v8::Handlev8::integer) [with T = v8::Int32; v8::Handle v8::integer= v8::Localv8::integer]’:
                                      ../node_modules/nan/nan_new.h:34:64: warning: ‘v8::Local v8::int32v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                                      Tov8::int32(v8::Handle v8::integeri) { return i->ToInt32(); }
                                      ^
                                      In file included from ../src/bufferutil.cc:7:0:
                                      /home/svenilee/.node-gyp/6.12.3/include/node/v8.h:8214:14: note: declared here
                                      Local <int32>Value::ToInt32() const {
                                      ^
                                      In file included from ../node_modules/nan/nan.h:82:0,
                                      from ../src/bufferutil.cc:16:
                                      ../node_modules/nan/nan_new.h: In function ‘v8::Local NanIntern::To(v8::Handlev8::integer) [with T = v8::Uint32; v8::Handle v8::integer= v8::Localv8::integer]’:
                                      ../node_modules/nan/nan_new.h:39:65: warning: ‘v8::Local v8::uint32v8::Value::ToUint32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                                      Tov8::uint32(v8::Handle v8::integeri) { return i->ToUint32(); }
                                      ^
                                      In file included from ../src/bufferutil.cc:7:0:
                                      /home/svenilee/.node-gyp/6.12.3/include/node/v8.h:8208:15: note: declared here
                                      Local <uint32>Value::ToUint32() const {
                                      ^
                                      In file included from ../node_modules/nan/nan_new.h:189:0,
                                      from ../node_modules/nan/nan.h:82,
                                      from ../src/bufferutil.cc:16:
                                      ../node_modules/nan/nan_implementation_12_inl.h: In static member function ‘static NanIntern::FactoryBasev8::booleanobject::return_t NanIntern::Factoryv8::booleanobject::New(bool)’:
                                      ../node_modules/nan/nan_implementation_12_inl.h:49:38: warning: ‘static v8::Local v8::valuev8::BooleanObject::New(bool)’ is deprecated: Pass an isolate [-Wdeprecated-declarations]
                                      return v8::BooleanObject::New(value).Asv8::booleanobject();
                                      ^
                                      In file included from /home/svenilee/.node-gyp/6.12.3/include/node/v8.h:25:0,
                                      from ../src/bufferutil.cc:7:
                                      /home/svenilee/.node-gyp/6.12.3/include/node/v8.h:4009:56: note: declared here
                                      V8_DEPRECATED("Pass an isolate", static Local <value>New(bool value));
                                      ^
                                      /home/svenilee/.node-gyp/6.12.3/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
                                      declarator attribute((deprecated(message)))
                                      ^
                                      In file included from ../node_modules/nan/nan_new.h:189:0,
                                      from ../node_modules/nan/nan.h:82,
                                      from ../src/bufferutil.cc:16:
                                      ../node_modules/nan/nan_implementation_12_inl.h: In static member function ‘static NanIntern::FactoryBasev8::script::return_t NanIntern::Factoryv8::script::New(v8::Localv8::string)’:
                                      ../node_modules/nan/nan_implementation_12_inl.h:166:69: warning: ‘static v8::Local v8::scriptv8::ScriptCompiler::Compile(v8::Isolate*, v8::ScriptCompiler::Source*, v8::ScriptCompiler::CompileOptions)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                                      return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &src);
                                      ^
                                      In file included from /home/svenilee/.node-gyp/6.12.3/include/node/v8.h:25:0,
                                      from ../src/bufferutil.cc:7:
                                      /home/svenilee/.node-gyp/6.12.3/include/node/v8.h:1354:21: note: declared here
                                      Local</v8::script></v8::string></v8::script></v8::script></value></v8::booleanobject></v8::value></v8::booleanobject></v8::booleanobject></uint32></v8::integer></v8::uint32></v8::uint32></v8::integer></v8::integer></v8::integer></int32></v8::integer></v8::int32></v8::int32></v8::integer></v8::integer></v8::integer>

                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate
                                      FAQ Cloud / IOT
                                      HowTo: Node.js-Update
                                      HowTo: Backup/Restore
                                      Downloads
                                      BLOG

                                      780

                                      Online

                                      32.5k

                                      Benutzer

                                      81.7k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe