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. Visualisierung
  4. [erledigt] Sekunden in Stunden und Minuten anzeigen.

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    774

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

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

[erledigt] Sekunden in Stunden und Minuten anzeigen.

Scheduled Pinned Locked Moved Visualisierung
37 Posts 10 Posters 10.1k Views 7 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.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    wrote on last edited by
    #2

    Wenn du das in einem bestehenden Script einbauen willst könntest du das mit der Javascript Math.floor umrechnen.

    var time = 4760; // Zeit in Sekunden
    timenew = Math.floor(time / 3600 )+'h'+Math.floor( (time % 3600) / 60 )+'min';
    log(timenew);
    
    

    Das Ergebnis (1h19min) dann in einen weiteren Datenpunkt schreiben lassen und diesen in Vis anzeigen.

    Ich beantworte keine Fragen zu Themen via PN

    1 Reply Last reply
    0
    • R Offline
      R Offline
      root_
      wrote on last edited by
      #3

      So hast du mir gleich 2x geholfen. Auch hierfür ein dickes Dankeschön.

      1 Reply Last reply
      0
      • R Offline
        R Offline
        root_
        wrote on last edited by
        #4

        Irgendwie sind dann meine Java skills doch zu schlecht. Meine Timesoure wär der Datenpunkt "fhem.0.WAYH2891.BSH_Common_Option_RemainingProgramTime" und das Ergebnis soll nach "#eigene_variablen.0.Waschmaschine-Restzeit".

        Ich bekomm es nicht hin :(

        1 Reply Last reply
        0
        • PeoplesP Offline
          PeoplesP Offline
          Peoples
          wrote on last edited by
          #5

          Kein Thema!

          habe es nicht getestet sollte so aber funktionieren:

          on({id: 'fhem.0.WAYH2891.BSH_Common_Option_RemainingProgramTime', change: "ne"}, function (dp) {
          	timenew = Math.floor(dp.state.val / 3600 )+'h'+Math.floor( (dp.state.val % 3600) / 60 )+'min';
              	setState("eigene_variablen.0.Waschmaschine-Restzeit",timenew);
          });
          

          wobei ich nicht verstehe woher das:"eigene_variablen.0." kommt. Wird der Datenpunkt via fhem angelegt den du beschreiben möchtest?

          Bei mir z.B. würde es "javascript.0.eigene_variablen…..." heißen da dort alle Script Datenpunkte gelistet sind.

          Ebenfalls könnte man sich überlegen ob es wirklich notwendig ist, jede Sekunde den Wert zu erfassen und ihn um zu rechnen. Man könnte nämlich auch alle 60 Sekunden auslesen?

          Ich beantworte keine Fragen zu Themen via PN

          1 Reply Last reply
          0
          • R Offline
            R Offline
            root_
            wrote on last edited by
            #6

            Ich lege alle selbst erstellen Datenpunke in einem eigenen Ordner an (#eigene_variablen.0.).

            Der Wert wird glaube ich eh nur alle 30 oder 60s über fhem vom homeconnect Server ausgelesen.

            Irgendwie funktioniert es noch nicht. Ich denke es liegt an der Ausgabe vom "Sekunden" Datenpunkt. Dort wird nicht nur zm bsp "3360" sondern "3360 seconds" ausgegeben. Das wird dann scheinbar nicht richtig umgerechnet. Ergebnis "NaNhNaNmin". Hatte das hier nicht geschrieben. Sorry dafür.

            1 Reply Last reply
            0
            • PeoplesP Offline
              PeoplesP Offline
              Peoples
              wrote on last edited by
              #7

              @root_:

              Ich lege alle selbst erstellen Datenpunke in einem eigenen Ordner an (#eigene_variablen.0.).

              Der Wert wird glaube ich eh nur alle 30 oder 60s über fhem vom homeconnect Server ausgelesen.

              Irgendwie funktioniert es noch nicht. Ich denke es liegt an der Ausgabe vom "Sekunden" Datenpunkt.

              Dort wird nicht nur zm bsp "3360" sondern "3360 seconds" ausgegeben. Das wird dann scheinbar nicht richtig umgerechnet. Ergebnis "NaNhNaNmin". Hatte das hier nicht geschrieben. Sorry dafür. `

              Das sollte auch lösbar sein, dazu gleich die folgende Frage: steht zwischen der Zahl und dem seconds wirklich immer ein leerzeichen?

              Ich beantworte keine Fragen zu Themen via PN

              1 Reply Last reply
              0
              • R Offline
                R Offline
                root_
                wrote on last edited by
                #8

                Ja, immer mit Leerzeichen.

                1 Reply Last reply
                0
                • PeoplesP Offline
                  PeoplesP Offline
                  Peoples
                  wrote on last edited by
                  #9

                  @root_:

                  Ja, immer mit Leerzeichen. `

                  versuch mal folgendes:

                  on({id: 'fhem.0.WAYH2891.BSH_Common_Option_RemainingProgramTime', 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("eigene_variablen.0.Waschmaschine-Restzeit",timenew);
                  });
                  

                  Ich beantworte keine Fragen zu Themen via PN

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    root_
                    wrote on last edited by
                    #10

                    Funktioniert nun perfekt. Danke dir für deine Hilfe :)

                    1 Reply Last reply
                    0
                    • PeoplesP Offline
                      PeoplesP Offline
                      Peoples
                      wrote on last edited by
                      #11

                      Gern geschehen,

                      wenn du keine Fragen mehr hast setz bitte noch den Thread-Titel auf erledigt

                      Ich beantworte keine Fragen zu Themen via PN

                      1 Reply Last reply
                      0
                      • JB_SullivanJ Offline
                        JB_SullivanJ Offline
                        JB_Sullivan
                        wrote on last edited by
                        #12

                        Hallo, der Thread ist zwar schon ein paar Tage alt - aber ich versuche mal mein Glück.

                        Ich wollte ebenfalls eine Umrechnung für einen Sekundenwert angezeigt bekommen. Darum habe ich mir das letzte Skript genommen, meine Datenpunkt und Pfadnamen entsprechend angepasst ….... und ERROR

                        ****javascript.0 2018-12-16 12:35:51.354 error at Object. <anonymous>(script.js.common.Stundenrechner:2:29)

                        javascript.0 2018-12-16 12:35:51.354 error Error in callback: TypeError: dp.state.val.split is not a function</anonymous>****

                        Wo liegt der Fehler?

                        on({id: 'octoprint.0.printjob.progress.printtime_left', 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.Berechnen.Stundenrechner",timenew);
                        });
                        

                        ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                        1 Reply Last reply
                        0
                        • PeoplesP Offline
                          PeoplesP Offline
                          Peoples
                          wrote on last edited by
                          #13

                          @JB_Sullivan:

                          Hallo, der Thread ist zwar schon ein paar Tage alt - aber ich versuche mal mein Glück.

                          Ich wollte ebenfalls eine Umrechnung für einen Sekundenwert angezeigt bekommen. Darum habe ich mir das letzte Skript genommen, meine Datenpunkt und Pfadnamen entsprechend angepasst ….... und ERROR

                          ****javascript.0 2018-12-16 12:35:51.354 error at Object. <anonymous>(script.js.common.Stundenrechner:2:29)

                          javascript.0 2018-12-16 12:35:51.354 error Error in callback: TypeError: dp.state.val.split is not a function</anonymous>****

                          Wo liegt der Fehler?

                          on({id: 'octoprint.0.printjob.progress.printtime_left', 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.Berechnen.Stundenrechner",timenew);
                          });
                          
                          ```` `  
                          

                          mach mal folgendes:

                          on({id: 'octoprint.0.printjob.progress.printtime_left', change: "any"}, function (dp) {
                          	log(dp.state.val);
                          
                          });
                          

                          Und poste mal die Ausgabe, dass ich weis was dein Datenpunk überhaupt ausgiebt

                          Ich beantworte keine Fragen zu Themen via PN

                          1 Reply Last reply
                          0
                          • JB_SullivanJ Offline
                            JB_SullivanJ Offline
                            JB_Sullivan
                            wrote on last edited by
                            #14

                            Der Datenpunkt von Octoprint gibt einen Zahlenwert in Sekunden aus - also z.B. 75684

                            ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                            1 Reply Last reply
                            0
                            • PeoplesP Offline
                              PeoplesP Offline
                              Peoples
                              wrote on last edited by
                              #15

                              @JB_Sullivan:

                              Der Datenpunkt von Octoprint gibt einen Zahlenwert in Sekunden aus - also z.B. 75684 `

                              Dann bringt dir ja der Split-Befehl nichts, da du ja nichts zum splitten hast. Wenn die Ausgabe Sekunden sind:

                              on({id: 'octoprint.0.printjob.progress.printtime_left', change: "ne"}, function (dp) {
                              	var timenew = Math.floor(dp.state.val / 3600 )+'h'+Math.floor( (dp.state.val % 3600) / 60 )+'min';
                                  	setState("javascript.0.Berechnen.Stundenrechner",timenew);
                              });
                              
                              

                              Schau mal das sollte den gewünschten Erfolg bringen. Bei mir im log steht dann 21h1min

                              Ich beantworte keine Fragen zu Themen via PN

                              Enrico HesseE 1 Reply Last reply
                              0
                              • JB_SullivanJ Offline
                                JB_SullivanJ Offline
                                JB_Sullivan
                                wrote on last edited by
                                #16

                                Vielen Dank für deine Mühe, aber es geht bei mir nicht. Das liegt vermutlich noch nicht einmal am Skript, sondern weil ich keine Ahnung von javascript habe.

                                Ich habe den Datenpunkt händisch erzeugt. Der sieht so aus:

                                {
                                  "_id": "javascript.0.Berechnen.roombarechner",
                                  "type": "state",
                                  "common": {
                                    "name": "roombarechner",
                                    "role": "",
                                    "type": "string",
                                    "desc": "Manuell erzeugt",
                                    "unit": "Std.",
                                    "min": 0,
                                    "max": 100,
                                    "def": 0,
                                    "read": true,
                                    "write": true
                                  },
                                  "native": {},
                                  "from": "system.adapter.admin.0",
                                  "ts": 1545073568832,
                                  "acl": {
                                    "object": 1636,
                                    "owner": "system.user.admin",
                                    "ownerGroup": "system.group.administrator",
                                    "state": 1636
                                  }
                                }
                                

                                Dann habe ich dein Skript verwendet, welches jetzt so bei mir aussieht:

                                on({id: 'roomba.0.statistics.time.avgMin', change: "ne"}, function (dp) {
                                	var timenew = Math.floor(dp.state.val / 3600 )+'h'+Math.floor( (dp.state.val % 3600) / 60 )+'min';
                                    	setState("javascript.0.Berechnen.roombarechner",timenew);
                                });
                                

                                Den Ursprungsdatenpunkt roomba.0.statistics.time.avgMin gibt aktuell den Wert (value) 3460 aus. Trotzdem wird in dem oben erzeugten Daten nur 0 angezeigt.

                                Der Fehler liegt garantiert auf meiner Seite :? :?

                                ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                                1 Reply Last reply
                                0
                                • PeoplesP Offline
                                  PeoplesP Offline
                                  Peoples
                                  wrote on last edited by
                                  #17

                                  Das glaube ich nicht :lol:

                                  Mach mal anstelle von:

                                  on({id: 'roomba.0.statistics.time.avgMin', change: "ne"}, function (dp) {
                                  

                                  das:

                                  on({id: 'roomba.0.statistics.time.avgMin', change: "any"}, function (dp) {
                                  

                                  das ne ist falsch.

                                  Du könntest auch den Datenpunkt einfach über:

                                  createState('javascript.0.Berechnen.roombarechner',0, {type: 'string',name: 'roombarechner'});
                                  

                                  erstellen.

                                  Sag mal Bescheid ob es dann geht.

                                  Ich beantworte keine Fragen zu Themen via PN

                                  metaxaM 1 Reply Last reply
                                  0
                                  • JB_SullivanJ Offline
                                    JB_SullivanJ Offline
                                    JB_Sullivan
                                    wrote on last edited by
                                    #18

                                    In der Tat - jetzt geht es.

                                    Wenn man weiß wie es geht ist es immer einfach. Bei mir scheitert es oftmals schon beim anlegen des Datenpunktes, weil ich nie weiß, was ich da eintragen soll - ist es eine Zahl, ein Feld, ein Objekt, eine Zeichenkette oder, oder, oder.

                                    Aber jetzt bin ich erst einmal Glücklich und habe wieder etwas dazu gelernt - VIELEN DANK :D :D

                                    ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                                    1 Reply Last reply
                                    0
                                    • PeoplesP Offline
                                      PeoplesP Offline
                                      Peoples
                                      wrote on last edited by
                                      #19

                                      Gern geschehn.

                                      Das "Verstehen" kommt wenn du am Ball bleibst schneller als du denkst. Alternativ kannst du ja auch Blocky verwenden, damit habe ich mich jedoch nie wirklich beschäftigt

                                      Denn:

                                      Wenn Salat, dann codesalat :mrgreen:

                                      Ich beantworte keine Fragen zu Themen via PN

                                      1 Reply Last reply
                                      0
                                      • PeoplesP Peoples

                                        Das glaube ich nicht :lol:

                                        Mach mal anstelle von:

                                        on({id: 'roomba.0.statistics.time.avgMin', change: "ne"}, function (dp) {
                                        

                                        das:

                                        on({id: 'roomba.0.statistics.time.avgMin', change: "any"}, function (dp) {
                                        

                                        das ne ist falsch.

                                        Du könntest auch den Datenpunkt einfach über:

                                        createState('javascript.0.Berechnen.roombarechner',0, {type: 'string',name: 'roombarechner'});
                                        

                                        erstellen.

                                        Sag mal Bescheid ob es dann geht.

                                        metaxaM Offline
                                        metaxaM Offline
                                        metaxa
                                        wrote on last edited by
                                        #20

                                        @Peoples sagte in [erledigt] Sekunden in Stunden und Minuten anzeigen.:

                                        Das glaube ich nicht :lol:

                                        Mach mal anstelle von:

                                        on({id: 'roomba.0.statistics.time.avgMin', change: "ne"}, function (dp) {
                                        

                                        das:

                                        on({id: 'roomba.0.statistics.time.avgMin', change: "any"}, function (dp) {
                                        

                                        das ne ist falsch.

                                        Du könntest auch den Datenpunkt einfach über:

                                        createState('javascript.0.Berechnen.roombarechner',0, {type: 'string',name: 'roombarechner'});
                                        

                                        erstellen.

                                        Sag mal Bescheid ob es dann geht.

                                        Jetzt suche ich schon vergeblich einige Zeit herum und finde keine Erklärung im Netz, daher (m)eine blöde Frage:

                                        change: 'ne' oder 'any'
                                        

                                        Wann setzt man was ein, bzw. was gibt es noch für Optionen?

                                        Lieben Dank - gerne auch nur für einen Link (german bevorzugt) :-)
                                        mxa

                                        thewhoboxT 1 Reply Last reply
                                        0
                                        • metaxaM metaxa

                                          @Peoples sagte in [erledigt] Sekunden in Stunden und Minuten anzeigen.:

                                          Das glaube ich nicht :lol:

                                          Mach mal anstelle von:

                                          on({id: 'roomba.0.statistics.time.avgMin', change: "ne"}, function (dp) {
                                          

                                          das:

                                          on({id: 'roomba.0.statistics.time.avgMin', change: "any"}, function (dp) {
                                          

                                          das ne ist falsch.

                                          Du könntest auch den Datenpunkt einfach über:

                                          createState('javascript.0.Berechnen.roombarechner',0, {type: 'string',name: 'roombarechner'});
                                          

                                          erstellen.

                                          Sag mal Bescheid ob es dann geht.

                                          Jetzt suche ich schon vergeblich einige Zeit herum und finde keine Erklärung im Netz, daher (m)eine blöde Frage:

                                          change: 'ne' oder 'any'
                                          

                                          Wann setzt man was ein, bzw. was gibt es noch für Optionen?

                                          Lieben Dank - gerne auch nur für einen Link (german bevorzugt) :-)
                                          mxa

                                          thewhoboxT Offline
                                          thewhoboxT Offline
                                          thewhobox
                                          wrote on last edited by
                                          #21

                                          @metaxa https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#on---subscribe-on-changes-or-updates-of-some-state

                                          Da stehen alle mögliche Operationen drin und was sie machen.

                                          Meine Adapter: emby | discovery
                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          metaxaM 1 Reply Last reply
                                          2

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          631

                                          Online

                                          32.8k

                                          Users

                                          82.7k

                                          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