Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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
    1.6k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] split is not a function

Scheduled Pinned Locked Moved Solved JavaScript
javascript
10 Posts 2 Posters 1.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CKMartensC Offline
    CKMartensC Offline
    CKMartens
    wrote on last edited by 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 Reply Last reply
    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
      wrote on last edited by
      #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 Reply Last reply
      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
        wrote on last edited by 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 Reply Last reply
        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
          wrote on last edited by
          #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 Replies Last reply
          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
            wrote on last edited by
            #5

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

            1 Reply Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by 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 Reply Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      402

                      Online

                      32.6k

                      Users

                      82.1k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe