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. String umwandeln in Number und neues Objekt anlegen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    365

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.8k

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

String umwandeln in Number und neues Objekt anlegen

Scheduled Pinned Locked Moved Skripten / Logik
9 Posts 4 Posters 823 Views 2 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.
  • B Offline
    B Offline
    bitwicht
    wrote on last edited by
    #1

    Hallo zusammen.

    Der device-reminder Adapter schreibt leider alle Werte als String die ich im Grafana nicht vernünftig auswerten kann.
    Ein Weg wäre wohl ein neues Objekt als number anzulegen und die Werte neu zu speichern (schon ein paar Beiträge).

    Vielleicht kann mir jemand bei dem Script helfen.
    Wie rechne ich die Zeit in Sekunden um ?

    Datenpunkt: device-reminder.0.Trockner.lastRuntime
    Wert der geschrieben wird: 00:02:20

    Wenn ich das richtig verstanden haben, muss ich Javascript bauen:

    on("device-reminder.0.Trockner.lastRuntime", function (obj) {
       inhalt = JSON.parse(obj.state.val);
       setState("javascript.0.Test1", inhalt.Sekunden, true);
    });
    

    Aber wie lasse ich die Zeit in Sekunden umrechnen?

    lg
    Bit

    paul53P 1 Reply Last reply
    0
    • B bitwicht

      Hallo zusammen.

      Der device-reminder Adapter schreibt leider alle Werte als String die ich im Grafana nicht vernünftig auswerten kann.
      Ein Weg wäre wohl ein neues Objekt als number anzulegen und die Werte neu zu speichern (schon ein paar Beiträge).

      Vielleicht kann mir jemand bei dem Script helfen.
      Wie rechne ich die Zeit in Sekunden um ?

      Datenpunkt: device-reminder.0.Trockner.lastRuntime
      Wert der geschrieben wird: 00:02:20

      Wenn ich das richtig verstanden haben, muss ich Javascript bauen:

      on("device-reminder.0.Trockner.lastRuntime", function (obj) {
         inhalt = JSON.parse(obj.state.val);
         setState("javascript.0.Test1", inhalt.Sekunden, true);
      });
      

      Aber wie lasse ich die Zeit in Sekunden umrechnen?

      lg
      Bit

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @bitwicht sagte: Wert der geschrieben wird: 00:02:20

      on("device-reminder.0.Trockner.lastRuntime", function (obj) {
         const arr = obj.state.val.split(':');
         const sec = 3600 * arr[0] + 60 * arr[1] + parseInt(arr[2]);
         setState("javascript.0.Test1", sec, true);
      });
      

      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 Reply Last reply
      0
      • David G.D Online
        David G.D Online
        David G.
        wrote on last edited by
        #3

        Bekommt man das nicht auch mit einem Alias hin?

        Zeigt eure Lovelace-Visualisierung klick
        (Auch ideal um sich Anregungen zu holen)

        Meine Tabellen für eure Visualisierung klick

        1 Reply Last reply
        0
        • B Offline
          B Offline
          bitwicht
          wrote on last edited by bitwicht
          #4

          @paul53

          Danke.
          Wird der Wert automatisch angelegt oder muss ich das noch einbauen:

          createState("javascript.0.Test1", 0, {type: 'number', read: 'true', write: 'true'});
          

          Das createState würde dann bei jedem Script Neustart aufgerufen werden, ist das ein Problem?

          T 1 Reply Last reply
          0
          • B bitwicht

            @paul53

            Danke.
            Wird der Wert automatisch angelegt oder muss ich das noch einbauen:

            createState("javascript.0.Test1", 0, {type: 'number', read: 'true', write: 'true'});
            

            Das createState würde dann bei jedem Script Neustart aufgerufen werden, ist das ein Problem?

            T Do not disturb
            T Do not disturb
            ticaki
            wrote on last edited by ticaki
            #5

            @bitwicht
            Nö kein Problem, kannst ja noch ein if( !existsState('bla.bla.bla')) davor einbauen.

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            1 Reply Last reply
            0
            • B Offline
              B Offline
              bitwicht
              wrote on last edited by
              #6

              @paul53

              Der Datenpunkt wurde erzeugt aber nicht befüllt.
              Ich bekomme folgenden Fehler:

              
              javascript.0
              2024-03-08 18:10:37.282	error	at processImmediate (node:internal/timers:476:21)
              
              javascript.0
              2024-03-08 18:10:37.282	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62)
              
              javascript.0
              2024-03-08 18:10:37.282	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
              
              javascript.0
              2024-03-08 18:10:37.281	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38)
              
              javascript.0
              2024-03-08 18:10:37.281	error	at Object.<anonymous> (script.js.Test-Trockner:3:26)
              
              javascript.0
              2024-03-08 18:10:37.279	error	Error in callback: TypeError: Cannot read properties of undefined (reading '0')
              
              admin.0
              2024-03-08 18:06:26.192	info	<== Disconnect system.user.admin from ::ffff:192.168.0.100 javascript
              
              javascript.0
              2024-03-08 18:06:19.113	warn	This object will not be created in future versions. Please report this to the developer.
              
              javascript.0
              2024-03-08 18:06:19.113	warn	Object javascript.0.Test1 is invalid: obj.common.read has an invalid type! Expected "boolean", received "string"
              
              javascript.0
              2024-03-08 18:06:19.107	info	script.js.Test-Trockner: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
              
              paul53P 1 Reply Last reply
              0
              • B bitwicht

                @paul53

                Der Datenpunkt wurde erzeugt aber nicht befüllt.
                Ich bekomme folgenden Fehler:

                
                javascript.0
                2024-03-08 18:10:37.282	error	at processImmediate (node:internal/timers:476:21)
                
                javascript.0
                2024-03-08 18:10:37.282	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62)
                
                javascript.0
                2024-03-08 18:10:37.282	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
                
                javascript.0
                2024-03-08 18:10:37.281	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38)
                
                javascript.0
                2024-03-08 18:10:37.281	error	at Object.<anonymous> (script.js.Test-Trockner:3:26)
                
                javascript.0
                2024-03-08 18:10:37.279	error	Error in callback: TypeError: Cannot read properties of undefined (reading '0')
                
                admin.0
                2024-03-08 18:06:26.192	info	<== Disconnect system.user.admin from ::ffff:192.168.0.100 javascript
                
                javascript.0
                2024-03-08 18:06:19.113	warn	This object will not be created in future versions. Please report this to the developer.
                
                javascript.0
                2024-03-08 18:06:19.113	warn	Object javascript.0.Test1 is invalid: obj.common.read has an invalid type! Expected "boolean", received "string"
                
                javascript.0
                2024-03-08 18:06:19.107	info	script.js.Test-Trockner: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                
                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #7

                @bitwicht sagte: obj.common.read has an invalid type! Expected "boolean", received "string"

                createState("javascript.0.Test1", 0, {type: 'number', read: true, write: false, role: 'value'});
                

                EDIT: In Zeile 2 war ein Fehler. Habe ich oben korrigiert:

                split(':')
                

                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 Reply Last reply
                0
                • B Offline
                  B Offline
                  bitwicht
                  wrote on last edited by
                  #8

                  @paul53

                  Super, Danke!
                  Das neue Objekt wird befüllt und passt auch:
                  Adapter Objekt: 00:02:10
                  Neues Objekt: 130

                  Ich würde jetzt gerne noch ein weiteres Objekt anlegen das bei jedem Lauf einfach mit 1 befüllt wird.
                  Dann kann ich die Anzahl pro Tag einfach im Grafana aggregieren.

                  Wäre das dann so richtig:

                  on("device-reminder.0.Trockner.lastRuntime", function (obj) {
                     const arr = obj.state.val.split(':');
                     const sec = 3600 * arr[0] + 60 * arr[1] + parseInt(arr[2]);
                     setState("javascript.0.Test1", sec, true);
                         const xxx = 1
                         setState("javascript.0.Test2", xxx, true);
                  });
                  
                  1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    bitwicht
                    wrote on last edited by
                    #9

                    Falls es jemand brauchen kann:

                    on("device-reminder.0.Trockner.lastRuntime", function (obj) {
                       const arr = obj.state.val.split(':');
                       const lastRuntime_in_sec = 3600 * arr[0] + 60 * arr[1] + parseInt(arr[2]);
                       setState("javascript.0.device-reminder.Trockner.lastruntime_in_sec", lastRuntime_in_sec, true);
                       const Runtime_counter = 1;
                       setState("javascript.0.device-reminder.Trockner.runtime_counter", Runtime_counter, true);
                    });
                    createState("javascript.0.device-reminder.Trockner.lastruntime_in_sec", 0, {type: 'number', read: true, write: false, role: 'value'});
                    createState("javascript.0.device-reminder.Trockner.runtime_counter", 0, {type: 'number', read: true, write: false, role: 'value'});
                    
                    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

                    720

                    Online

                    32.7k

                    Users

                    82.5k

                    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