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. Skripten / Logik
  4. JavaScript
  5. [gelöst] split is not a function

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    969

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    693

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[gelöst] split is not a function

Geplant Angeheftet Gesperrt Verschoben Gelöst JavaScript
javascript
10 Beiträge 2 Kommentatoren 1.8k 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.
  • CKMartensC Offline
    CKMartensC Offline
    CKMartens
    schrieb am zuletzt editiert von CKMartens
    #1

    Hallo,
    ich bin gerade dabei ein Script zu erstellen das mir den 3stündigen Trend für die Barometerdaten errechnet. Dazu habe lege ich alle 5 Minuten den Wert für den Unterschied zum vorherigen Wert in einem Datenpunkt als Liste ab

    -0.05,0.02,0.04,0.04,0,0.08,0.06,0,0.03,0.03,-0.02,-0.05,0.05,-0.05,0.06,0.02,-0.12,0.06,0.02,-0.04,0.07,0.04,-0.02,0.02,0.04,0.04,0.01,-0.02,0.06,0.04,-0.07,-0.11,0.11,-0.11,0,0.02,-0.02,0.05,0.02,0,0.03,0.01,0.04,-0.09,0.02,-0.04,0.03,0.06,0.1,-0.08,-0.04,0.05,0.03,0.01,0.02,0.01,0.05,0.03,0.1,0,0.01,-0.02,0.02,-0.01,-0.04,0.04,0.08,0.03,-0.05,-0.12,0.09,0.07
    

    Diese Liste lese ich mit ein und will sie mit split zum errechnen des Trends zerlegen

    function barotrend() {
      var tmpelements = getState(DP_BAROTREND_DATA).val.split(',');
      for (let i = 2; i <= ELEMENTS - 1; i++) {
        b_tmp = parseFloat(tmpelements[i]);
        A_BAROTRENDTEMPDATA.push(b_tmp);
        b_akt_diff = b_akt_diff + b_tmp;
     }
      A_BAROTRENDTEMPDATA.push(b_diff);
      b_akt_diff = b_akt_diff + b_diff;  b_akt_diff = Math.round((b_akt_diff / ELEMENTS) * 100 ) / 100;
      setState(DP_BAROTREND_DATA, A_BAROTRENDTEMPDATA);
      setState(DP_BAROTREND_ALT, b);
      setState(DP_BAROTREND_TREND, b_akt_diff);
    }
    
    schedule('*/'+CRON+' * * * *', function () {
      barotrend();
    });
    

    Allerdings kommt spätestens nach dem zweiten Aufruf der Funktion barotrend() der Fehler

    javascript.1	2019-11-05 19:49:00.018	error	(2070) at Timer.processTimers (timers.js:223:10)
    javascript.1	2019-11-05 19:49:00.017	error	(2070) at listOnTimeout (timers.js:263:5)
    javascript.1	2019-11-05 19:49:00.017	error	(2070) at tryOnTimeout (timers.js:300:5)
    javascript.1	2019-11-05 19:49:00.017	error	(2070) at ontimeout (timers.js:436:11)
    javascript.1	2019-11-05 19:49:00.017	error	(2070) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
    javascript.1	2019-11-05 19:49:00.016	error	(2070) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
    javascript.1	2019-11-05 19:49:00.016	error	(2070) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
    javascript.1	2019-11-05 19:49:00.016	error	(2070) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1279:34)
    javascript.1	2019-11-05 19:49:00.015	error	(2070) at Object.<anonymous> (script.js.Test.Weathercalc:417:3)
    javascript.1	2019-11-05 19:49:00.015	error	(2070) at barotrend (script.js.Test.Weathercalc:390:53)
    javascript.1	2019-11-05 19:49:00.014	error	(2070) Error in callback: TypeError: getState(...).val.split is not a function
    

    Node.js v10.17.0
    NPM 6.11.3
    js-controller: 2.0.39

    Kann mir einer sagen wo da der Fehler ist?

    paul53P 1 Antwort Letzte Antwort
    0
    • CKMartensC CKMartens

      Hallo,
      ich bin gerade dabei ein Script zu erstellen das mir den 3stündigen Trend für die Barometerdaten errechnet. Dazu habe lege ich alle 5 Minuten den Wert für den Unterschied zum vorherigen Wert in einem Datenpunkt als Liste ab

      -0.05,0.02,0.04,0.04,0,0.08,0.06,0,0.03,0.03,-0.02,-0.05,0.05,-0.05,0.06,0.02,-0.12,0.06,0.02,-0.04,0.07,0.04,-0.02,0.02,0.04,0.04,0.01,-0.02,0.06,0.04,-0.07,-0.11,0.11,-0.11,0,0.02,-0.02,0.05,0.02,0,0.03,0.01,0.04,-0.09,0.02,-0.04,0.03,0.06,0.1,-0.08,-0.04,0.05,0.03,0.01,0.02,0.01,0.05,0.03,0.1,0,0.01,-0.02,0.02,-0.01,-0.04,0.04,0.08,0.03,-0.05,-0.12,0.09,0.07
      

      Diese Liste lese ich mit ein und will sie mit split zum errechnen des Trends zerlegen

      function barotrend() {
        var tmpelements = getState(DP_BAROTREND_DATA).val.split(',');
        for (let i = 2; i <= ELEMENTS - 1; i++) {
          b_tmp = parseFloat(tmpelements[i]);
          A_BAROTRENDTEMPDATA.push(b_tmp);
          b_akt_diff = b_akt_diff + b_tmp;
       }
        A_BAROTRENDTEMPDATA.push(b_diff);
        b_akt_diff = b_akt_diff + b_diff;  b_akt_diff = Math.round((b_akt_diff / ELEMENTS) * 100 ) / 100;
        setState(DP_BAROTREND_DATA, A_BAROTRENDTEMPDATA);
        setState(DP_BAROTREND_ALT, b);
        setState(DP_BAROTREND_TREND, b_akt_diff);
      }
      
      schedule('*/'+CRON+' * * * *', function () {
        barotrend();
      });
      

      Allerdings kommt spätestens nach dem zweiten Aufruf der Funktion barotrend() der Fehler

      javascript.1	2019-11-05 19:49:00.018	error	(2070) at Timer.processTimers (timers.js:223:10)
      javascript.1	2019-11-05 19:49:00.017	error	(2070) at listOnTimeout (timers.js:263:5)
      javascript.1	2019-11-05 19:49:00.017	error	(2070) at tryOnTimeout (timers.js:300:5)
      javascript.1	2019-11-05 19:49:00.017	error	(2070) at ontimeout (timers.js:436:11)
      javascript.1	2019-11-05 19:49:00.017	error	(2070) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2019-11-05 19:49:00.016	error	(2070) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2019-11-05 19:49:00.016	error	(2070) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2019-11-05 19:49:00.016	error	(2070) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1279:34)
      javascript.1	2019-11-05 19:49:00.015	error	(2070) at Object.<anonymous> (script.js.Test.Weathercalc:417:3)
      javascript.1	2019-11-05 19:49:00.015	error	(2070) at barotrend (script.js.Test.Weathercalc:390:53)
      javascript.1	2019-11-05 19:49:00.014	error	(2070) Error in callback: TypeError: getState(...).val.split is not a function
      

      Node.js v10.17.0
      NPM 6.11.3
      js-controller: 2.0.39

      Kann mir einer sagen wo da der Fehler ist?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @CKMartens sagte:

      wo da der Fehler ist?

      Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.

      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

      CKMartensC 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @CKMartens sagte:

        wo da der Fehler ist?

        Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.

        CKMartensC Offline
        CKMartensC Offline
        CKMartens
        schrieb am zuletzt editiert von CKMartens
        #3

        @paul53 sagte in split is not a function:

        @CKMartens sagte:

        wo da der Fehler ist?

        Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.

        Wie muss ich dann vorgehen @paul53 ?

        paul53P 1 Antwort Letzte Antwort
        0
        • CKMartensC CKMartens

          @paul53 sagte in split is not a function:

          @CKMartens sagte:

          wo da der Fehler ist?

          Enthält der Datenpunkt schon ein Array ? Dann funktioniert .split(',') nicht und ist auch nicht erforderlich.

          Wie muss ich dann vorgehen @paul53 ?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @CKMartens sagte:

          Wie muss ich dann vorgehen

          Ohne split() einlesen.

            var tmpelements = getState(DP_BAROTREND_DATA).val;
          

          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

          CKMartensC 2 Antworten Letzte Antwort
          1
          • paul53P paul53

            @CKMartens sagte:

            Wie muss ich dann vorgehen

            Ohne split() einlesen.

              var tmpelements = getState(DP_BAROTREND_DATA).val;
            
            CKMartensC Offline
            CKMartensC Offline
            CKMartens
            schrieb am zuletzt editiert von
            #5

            @paul53 Ah... Ok, versuche ich morgen. Danke schon einmal.

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @CKMartens sagte:

              Wie muss ich dann vorgehen

              Ohne split() einlesen.

                var tmpelements = getState(DP_BAROTREND_DATA).val;
              
              CKMartensC Offline
              CKMartensC Offline
              CKMartens
              schrieb am zuletzt editiert von
              #6

              @paul53 sagte in split is not a function:

              @CKMartens sagte:

              Wie muss ich dann vorgehen

              Ohne split() einlesen.

                var tmpelements = getState(DP_BAROTREND_DATA).val;
              

              Hallo @paul53
              leider habe ich jetzt das Problem das jetzt die Variable tmpelements als Elemente jedes Zeichen enthält. Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.

              paul53P 1 Antwort Letzte Antwort
              0
              • CKMartensC CKMartens

                @paul53 sagte in split is not a function:

                @CKMartens sagte:

                Wie muss ich dann vorgehen

                Ohne split() einlesen.

                  var tmpelements = getState(DP_BAROTREND_DATA).val;
                

                Hallo @paul53
                leider habe ich jetzt das Problem das jetzt die Variable tmpelements als Elemente jedes Zeichen enthält. Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #7

                @CKMartens sagte:

                Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.

                Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.

                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

                CKMartensC 1 Antwort Letzte Antwort
                1
                • paul53P paul53

                  @CKMartens sagte:

                  Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.

                  Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.

                  CKMartensC Offline
                  CKMartensC Offline
                  CKMartens
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 sagte in split is not a function:

                  @CKMartens sagte:

                  Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.

                  Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.

                  Hmmm, eigentlich greift nur noch ein andres Script lesend auf den DP zu. Danke für den Tip, ich mach mich da mal geziehlt auf die Suche

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • CKMartensC CKMartens

                    @paul53 sagte in split is not a function:

                    @CKMartens sagte:

                    Also aus dem Wert -0.3 werden die Elemente "-", "0", "." und "3" gemacht. Der Typ des Datenpunktes ist ein Array.

                    Dann wurde das Array an anderer Stelle als String im Datenpunkt gespeichert. Das muss korrigiert werden.

                    Hmmm, eigentlich greift nur noch ein andres Script lesend auf den DP zu. Danke für den Tip, ich mach mich da mal geziehlt auf die Suche

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @CKMartens sagte:

                    ich mach mich da mal geziehlt auf die Suche
                    Der Typ des Datenpunktes ist ein Array.

                    Wenn in einem Skript ein String in einen Datenpunkt vom Typ "array" geschrieben wird, erfolgt eine Warnung "wrong type ...". Im Reiter "Log" findet man dazu den Skriptnamen und die Zeilennummer.

                    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

                    CKMartensC 1 Antwort Letzte Antwort
                    1
                    • paul53P paul53

                      @CKMartens sagte:

                      ich mach mich da mal geziehlt auf die Suche
                      Der Typ des Datenpunktes ist ein Array.

                      Wenn in einem Skript ein String in einen Datenpunkt vom Typ "array" geschrieben wird, erfolgt eine Warnung "wrong type ...". Im Reiter "Log" findet man dazu den Skriptnamen und die Zeilennummer.

                      CKMartensC Offline
                      CKMartensC Offline
                      CKMartens
                      schrieb am zuletzt editiert von
                      #10

                      @paul53 Habe es gefunden. Ein Testscript ist noch gelaufen obwohl es im eigentlich deaktiviert gewesen sein sollte.

                      Jetzt läuft es. Danke nochmals!

                      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

                      876

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      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