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. Sekunden in d/h/m umrechnen

NEWS

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

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

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

Sekunden in d/h/m umrechnen

Scheduled Pinned Locked Moved JavaScript
19 Posts 5 Posters 2.3k 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.
  • G Offline
    G Offline
    guergen
    wrote on last edited by guergen
    #1

    Hallo,

    ich wollte die "uptime" des Nuc´s umrechnen.
    Da ich das mit den Zeiten des NAS schon habe, dachte ich mir, ändere die Datenpunkte und gut ist.
    Beim Nas (wo es funktioniert) sieht es folgendermaßen aus:

    on({id: 'snmp.0.192_168_1_91.UpTime', change: "ne"}, function (dp) {
    
    	var timesec = dp.state.val.split(' ');
    
    	var timenew = Math.floor(timesec[0] / 8640000 )+'Tage'+Math.floor( (timesec[0] % 8640000) / 360000 )+'h'+Math.floor( (timesec[0] % 360000) / 6000 )+'min';
    
        	setState("javascript.0.Eigene_Datenpunkte.NAS.NAS_8_TB_Uptime",timenew);
    
    
    });
    

    Beim Nuc habe ich das Script äquivalent so eingebaut:

    on({id: 'system.host.NUC.uptime', change: "ne"}, function (dp) {
    
    	var timesec = dp.state.val.split(' ');
    
    	var timenew = Math.floor(timesec[0] / 3600 )+'h'+Math.floor( (timesec[0] % 3600) / 60 )+'min';
    
        	setState("javascript.0.Eigene_Datenpunkte.Haus.Uptime_NUC",timenew);
    
    });
    

    Leider bekomme ich beim Nuc-Script folgenden Fehler:

    13:15:48.009 error javascript.0 (2836) at Object.<anonymous> (script.js.common.Diverse_Scripte.nuc-test:3:29)
    

    Habe es auch probiert, das "NUC-Script" im golbal laufen zu lassen, hilft nichts!
    Die Ursprungs-dp sind boolean, aber auch als Zahl geht es nicht.

    Wo liegt hier der Fehler?

    MicM 1 Reply Last reply
    0
    • G guergen

      Hallo,

      ich wollte die "uptime" des Nuc´s umrechnen.
      Da ich das mit den Zeiten des NAS schon habe, dachte ich mir, ändere die Datenpunkte und gut ist.
      Beim Nas (wo es funktioniert) sieht es folgendermaßen aus:

      on({id: 'snmp.0.192_168_1_91.UpTime', change: "ne"}, function (dp) {
      
      	var timesec = dp.state.val.split(' ');
      
      	var timenew = Math.floor(timesec[0] / 8640000 )+'Tage'+Math.floor( (timesec[0] % 8640000) / 360000 )+'h'+Math.floor( (timesec[0] % 360000) / 6000 )+'min';
      
          	setState("javascript.0.Eigene_Datenpunkte.NAS.NAS_8_TB_Uptime",timenew);
      
      
      });
      

      Beim Nuc habe ich das Script äquivalent so eingebaut:

      on({id: 'system.host.NUC.uptime', change: "ne"}, function (dp) {
      
      	var timesec = dp.state.val.split(' ');
      
      	var timenew = Math.floor(timesec[0] / 3600 )+'h'+Math.floor( (timesec[0] % 3600) / 60 )+'min';
      
          	setState("javascript.0.Eigene_Datenpunkte.Haus.Uptime_NUC",timenew);
      
      });
      

      Leider bekomme ich beim Nuc-Script folgenden Fehler:

      13:15:48.009 error javascript.0 (2836) at Object.<anonymous> (script.js.common.Diverse_Scripte.nuc-test:3:29)
      

      Habe es auch probiert, das "NUC-Script" im golbal laufen zu lassen, hilft nichts!
      Die Ursprungs-dp sind boolean, aber auch als Zahl geht es nicht.

      Wo liegt hier der Fehler?

      MicM Offline
      MicM Offline
      Mic
      Developer
      wrote on last edited by Mic
      #2

      @guergen sagte in Sekunden in d/h/m umrechnen:

      'system.host.NUC.uptime'

      Hi,

      1. welcher Datentyp ist denn der State "'system.host.NUC.uptime'"? Findest du unter Objekte, da den Datenpunkt auswählen, rechts auf den "Stift" klicken, da unter "Raw", Zeile "type":
        welcherstates.png

      2. Kopiere hier mal ein Beispiel rein eines State-Inhaltes.

      G 1 Reply Last reply
      0
      • MicM Mic

        @guergen sagte in Sekunden in d/h/m umrechnen:

        'system.host.NUC.uptime'

        Hi,

        1. welcher Datentyp ist denn der State "'system.host.NUC.uptime'"? Findest du unter Objekte, da den Datenpunkt auswählen, rechts auf den "Stift" klicken, da unter "Raw", Zeile "type":
          welcherstates.png

        2. Kopiere hier mal ein Beispiel rein eines State-Inhaltes.

        G Offline
        G Offline
        guergen
        wrote on last edited by guergen
        #3

        @Mic Hier der inhalt von NUC.uptime:

        {
          "from": "system.adapter.admin.0",
          "user": "system.user.admin",
          "ts": 1577495005124,
          "common": {
            "name": "Controller - uptime in seconds",
            "type": "string",
            "role": "value",
            "unit": "seconds",
            "read": true,
            "write": false
          },
          "native": {},
          "acl": {
            "object": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator",
            "state": 1636
          },
          "_id": "system.host.NUC.uptime",
          "type": "state"
        }
        

        Und hier mein DP:

        {
          "from": "system.adapter.admin.0",
          "user": "system.user.admin",
          "ts": 1573829622690,
          "common": {
            "name": "Uptime_NUC",
            "role": "",
            "type": "string",
            "desc": "Manuell erzeugt",
            "read": true,
            "write": true
          },
          "native": {},
          "acl": {
            "object": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator",
            "state": 1636
          },
          "_id": "javascript.0.Eigene_Datenpunkte.Haus.Uptime_NUC",
          "type": "state"
        }
        

        Folgende Fehler kommen dann im Log:
        javascript.0 2019-12-29 09:20:25.538 error (1857) at processImmediate (timers.js:658:5)
        javascript.0 2019-12-29 09:20:25.538 error (1857) at tryOnImmediate (timers.js:676:5)
        javascript.0 2019-12-29 09:20:25.538 error (1857) at runCallback (timers.js:705:18)
        javascript.0 2019-12-29 09:20:25.538 error (1857) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
        javascript.0 2019-12-29 09:20:25.538 error (1857) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
        javascript.0 2019-12-29 09:20:25.538 error (1857) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
        javascript.0 2019-12-29 09:20:25.538 error (1857) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
        javascript.0 2019-12-29 09:20:25.538 error (1857) at Object.<anonymous> (script.js.common.Diverse_Scripte.nuc-test:3:29)
        javascript.0 2019-12-29 09:20:25.537 error (1857) Error in callback: TypeError: dp.state.val.split is not a function

        Das Zeichen für das ausführen des Scriptes wird gelb

        1 Reply Last reply
        0
        • DolomitiD Offline
          DolomitiD Offline
          Dolomiti
          wrote on last edited by Dolomiti
          #4

          Hallo,

          was werden den in beiden Fällen für Werte geliefert? Wenn ich die Uptime von meinem Host anzeigen lasse, steht dort eine Zahl. Mit der Split-Funktion versuchst du bei jedem Leerzeichen die Zahl zu trennen. Da du aber nur eine Zahl ohne Leerzeichen hast funktioniert das nicht.
          Versuch mal das Split wegzulassen und dann bei timesec die eckigen Klammern.

          on({id: 'system.host.ioBroker-Test.uptime'/*Controller - uptime in seconds*/, change: "ne"}, function (dp) {
           log (dp.state.val);
          	var timesec = dp.state.val;
           
          	var timenew = Math.floor(timesec / 3600 )+'h'+Math.floor( (timesec % 3600) / 60 )+'min';
           
              setState('javascript.0.Uptime_iobtest'/*javascript 0 Uptime iobtest*/,timenew);
           log (timenew);
          });
          

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Intel N100 (32GB,256GB SSD), Proxmox -> Debian 12 in VM (Master) + Debian 12 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

          G 1 Reply Last reply
          0
          • NashraN Offline
            NashraN Offline
            Nashra
            Most Active Forum Testing
            wrote on last edited by Nashra
            #5

            Warum so kompliziert. Einfach ein Basic-html Widget in VIS (gehe mal davon aus das Du es dafür brauchst)
            und im html Bereich dies rein

            Uptime : {d:proxmox.0.node_Netzserver.uptime;Math.floor( ((d)/60/60/24) )} Tage‚{h:proxmox.0.node_Netzserver.uptime;Math.floor( ((h)/60/60) % 24 )} Std‚ {m:proxmox.0.node_Netzserver.uptime;Math.floor( ((m)/60) % 60 )} Min
            

            Gruß Ralf
            Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

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

            1 Reply Last reply
            1
            • DolomitiD Dolomiti

              Hallo,

              was werden den in beiden Fällen für Werte geliefert? Wenn ich die Uptime von meinem Host anzeigen lasse, steht dort eine Zahl. Mit der Split-Funktion versuchst du bei jedem Leerzeichen die Zahl zu trennen. Da du aber nur eine Zahl ohne Leerzeichen hast funktioniert das nicht.
              Versuch mal das Split wegzulassen und dann bei timesec die eckigen Klammern.

              on({id: 'system.host.ioBroker-Test.uptime'/*Controller - uptime in seconds*/, change: "ne"}, function (dp) {
               log (dp.state.val);
              	var timesec = dp.state.val;
               
              	var timenew = Math.floor(timesec / 3600 )+'h'+Math.floor( (timesec % 3600) / 60 )+'min';
               
                  setState('javascript.0.Uptime_iobtest'/*javascript 0 Uptime iobtest*/,timenew);
               log (timenew);
              });
              
              G Offline
              G Offline
              guergen
              wrote on last edited by
              #6

              @Dolomiti Das interessante ist ja, dass bei beiden die selben Werte gesetzt werden, bei dem einen Script geht es, bei dem anderen nicht

              1 Reply Last reply
              0
              • DolomitiD Offline
                DolomitiD Offline
                Dolomiti
                wrote on last edited by Dolomiti
                #7

                @guergen
                Du hast Recht. Hab es mit meinem NAS ausprobiert. Hier funktioniert es auch. Hängt es vielleicht mit der Struktur der Ausgangswerte zusammen?

                Edit: Bei der System-Uptime ist der Type Number, beim NAS ein String. Meines Wissens nach funktioniert Split nur beim String. Bei Number macht das ja auch keinen Sinn, das es nur einen Wert gibt ohne Leerzeichen o.Ä. Beim NAS findet er kein Leerzeichen und nimmt deshalb auromatisch die ganze Zahl.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Intel N100 (32GB,256GB SSD), Proxmox -> Debian 12 in VM (Master) + Debian 12 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

                G 1 Reply Last reply
                0
                • DolomitiD Dolomiti

                  @guergen
                  Du hast Recht. Hab es mit meinem NAS ausprobiert. Hier funktioniert es auch. Hängt es vielleicht mit der Struktur der Ausgangswerte zusammen?

                  Edit: Bei der System-Uptime ist der Type Number, beim NAS ein String. Meines Wissens nach funktioniert Split nur beim String. Bei Number macht das ja auch keinen Sinn, das es nur einen Wert gibt ohne Leerzeichen o.Ä. Beim NAS findet er kein Leerzeichen und nimmt deshalb auromatisch die ganze Zahl.

                  G Offline
                  G Offline
                  guergen
                  wrote on last edited by
                  #8

                  @Dolomiti Mit Deinem Vorschlag des Scripts fängt er jetzt grade bei 1 minute an.... es sind aber 11700 sekunden

                  1 Reply Last reply
                  0
                  • DolomitiD Offline
                    DolomitiD Offline
                    Dolomiti
                    wrote on last edited by
                    #9

                    @guergen
                    Bei mir passt es zusammen
                    Anmerkung 2019-12-29 132959.png
                    Anmerkung 2019-12-29 1329592.png

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Intel N100 (32GB,256GB SSD), Proxmox -> Debian 12 in VM (Master) + Debian 12 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

                    G 2 Replies Last reply
                    0
                    • DolomitiD Dolomiti

                      @guergen
                      Bei mir passt es zusammen
                      Anmerkung 2019-12-29 132959.png
                      Anmerkung 2019-12-29 1329592.png

                      G Offline
                      G Offline
                      guergen
                      wrote on last edited by
                      #10

                      @Dolomiti Hmmh.....:
                      5ab4b6ac-0156-4a8e-b59f-324dbab45531-grafik.png

                      1 Reply Last reply
                      0
                      • DolomitiD Dolomiti

                        @guergen
                        Bei mir passt es zusammen
                        Anmerkung 2019-12-29 132959.png
                        Anmerkung 2019-12-29 1329592.png

                        G Offline
                        G Offline
                        guergen
                        wrote on last edited by
                        #11

                        @Dolomiti Wenn ich jetzt die eckigen Klammern einfüge kommt folgendes:
                        1c265fce-a494-4d29-959a-0aebdbcd64c3-grafik.png

                        1 Reply Last reply
                        0
                        • DolomitiD Offline
                          DolomitiD Offline
                          Dolomiti
                          wrote on last edited by
                          #12

                          @guergen
                          Hat der Tag nicht nur 86400 Sekunden. Sind da nicht zwei Nullen zuviel?
                          Poste mal dein Skript.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Intel N100 (32GB,256GB SSD), Proxmox -> Debian 12 in VM (Master) + Debian 12 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

                          G 1 Reply Last reply
                          0
                          • DolomitiD Dolomiti

                            @guergen
                            Hat der Tag nicht nur 86400 Sekunden. Sind da nicht zwei Nullen zuviel?
                            Poste mal dein Skript.

                            G Offline
                            G Offline
                            guergen
                            wrote on last edited by
                            #13

                            @Dolomiti Ähhh... ja.... habe es grade geändert, das andere waren hundertstel Sekunden....
                            Aber es nutzt trotzdem nichts:

                            on({id: 'system.host.NUC.uptime', change: "ne"}, function (dp) {
                            
                             log (dp.state.val);
                            
                            	var timesec = dp.state.val;
                            
                             
                            
                            	var timenew = Math.floor(timesec[0] / 86400 )+'Tage'+Math.floor( (timesec[0] % 86400) / 3600 )+'h'+Math.floor( (timesec[0] % 3600) / 60 )+'min';
                            
                             
                            
                                setState('javascript.0.Eigene_Datenpunkte.Haus.Uptime_NUC',timenew);
                            
                             log (timenew);
                            
                            });
                            

                            eafefd02-dcae-4b0a-9a2b-f77de1ce6411-grafik.png

                            Homer.J.H 1 Reply Last reply
                            0
                            • DolomitiD Offline
                              DolomitiD Offline
                              Dolomiti
                              wrote on last edited by
                              #14

                              @guergen
                              Du musst die eckigen Klammern weglassen.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                              Intel N100 (32GB,256GB SSD), Proxmox -> Debian 12 in VM (Master) + Debian 12 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

                              G 1 Reply Last reply
                              0
                              • DolomitiD Dolomiti

                                @guergen
                                Du musst die eckigen Klammern weglassen.

                                G Offline
                                G Offline
                                guergen
                                wrote on last edited by
                                #15

                                @Dolomiti Oh man...
                                Manchmal sieht man vor lauter Bäumen den Wald nicht...
                                Danke!
                                Lauft!

                                1 Reply Last reply
                                0
                                • G guergen

                                  @Dolomiti Ähhh... ja.... habe es grade geändert, das andere waren hundertstel Sekunden....
                                  Aber es nutzt trotzdem nichts:

                                  on({id: 'system.host.NUC.uptime', change: "ne"}, function (dp) {
                                  
                                   log (dp.state.val);
                                  
                                  	var timesec = dp.state.val;
                                  
                                   
                                  
                                  	var timenew = Math.floor(timesec[0] / 86400 )+'Tage'+Math.floor( (timesec[0] % 86400) / 3600 )+'h'+Math.floor( (timesec[0] % 3600) / 60 )+'min';
                                  
                                   
                                  
                                      setState('javascript.0.Eigene_Datenpunkte.Haus.Uptime_NUC',timenew);
                                  
                                   log (timenew);
                                  
                                  });
                                  

                                  eafefd02-dcae-4b0a-9a2b-f77de1ce6411-grafik.png

                                  Homer.J.H Offline
                                  Homer.J.H Offline
                                  Homer.J.
                                  wrote on last edited by Homer.J.
                                  #16

                                  @guergen nimm mal das.

                                  ({id: 'proxmox.0.qemu_iobroker.uptime'/*uptime*/, change: "ne"}, function (dp) {
                                   //log (dp.state.val);
                                  	var timesec = dp.state.val;
                                   
                                  	var timenew = Math.floor(timesec /60/60/24 )+' Tag(e), '+Math.floor(timesec / 60/60 % 24)+' Std, '+Math.floor( (timesec / 60) % 60  )+' Min';
                                  
                                   
                                      setState('javascript.0.Vis.Anzeige.iobroker_Laufzeit'/*iobroker Laufzeit*/,timenew);
                                   //log (timenew);
                                  })
                                  
                                  G 1 Reply Last reply
                                  1
                                  • Homer.J.H Homer.J.

                                    @guergen nimm mal das.

                                    ({id: 'proxmox.0.qemu_iobroker.uptime'/*uptime*/, change: "ne"}, function (dp) {
                                     //log (dp.state.val);
                                    	var timesec = dp.state.val;
                                     
                                    	var timenew = Math.floor(timesec /60/60/24 )+' Tag(e), '+Math.floor(timesec / 60/60 % 24)+' Std, '+Math.floor( (timesec / 60) % 60  )+' Min';
                                    
                                     
                                        setState('javascript.0.Vis.Anzeige.iobroker_Laufzeit'/*iobroker Laufzeit*/,timenew);
                                     //log (timenew);
                                    })
                                    
                                    G Offline
                                    G Offline
                                    guergen
                                    wrote on last edited by
                                    #17

                                    @Homer-J das "code_" und das "text" muss noch raus :-)

                                    Homer.J.H 1 Reply Last reply
                                    0
                                    • G guergen

                                      @Homer-J das "code_" und das "text" muss noch raus :-)

                                      Homer.J.H Offline
                                      Homer.J.H Offline
                                      Homer.J.
                                      wrote on last edited by Homer.J.
                                      #18

                                      @guergen jab ändere es. :blush:
                                      funktioniert es. ?

                                      G 1 Reply Last reply
                                      0
                                      • Homer.J.H Homer.J.

                                        @guergen jab ändere es. :blush:
                                        funktioniert es. ?

                                        G Offline
                                        G Offline
                                        guergen
                                        wrote on last edited by
                                        #19

                                        @Homer-J JA!
                                        Sieht einfacher aus... dann kommt man mit den Nullen nicht durcheinander!

                                        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

                                        371

                                        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