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

NEWS

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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    568

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.8k

String umwandeln in Number und neues Objekt anlegen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 4 Kommentatoren 755 Aufrufe 2 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.
  • B Offline
    B Offline
    bitwicht
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • David G.D Offline
        David G.D Offline
        David G.
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • B Offline
          B Offline
          bitwicht
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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 Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            0
            • B Offline
              B Offline
              bitwicht
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                0
                • B Offline
                  B Offline
                  bitwicht
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • B Offline
                    B Offline
                    bitwicht
                    schrieb am zuletzt editiert von
                    #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 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

                    419

                    Online

                    32.5k

                    Benutzer

                    81.8k

                    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