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. "Rechnen" in Widgets

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    15
    1
    209

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

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

"Rechnen" in Widgets

Scheduled Pinned Locked Moved Visualisierung
128 Posts 21 Posters 25.3k Views 15 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.
  • SBorgS SBorg

    @sushibomba Dann wäre mal ein "Debug" angebracht. Einfaches HTML-Widget mit entsprechendem Inhalt:

    erster Wert: {value1:worx.0.123.rawMqtt.raw.blade_work_time; value1} <br/>
    erster Wert: {value1:worx.0.123.rawMqtt.raw.blade_work_time;  typeof(value1)} <br/>
    zweiter Wert: {value2:worx.0.123.rawMqtt.raw.blade_work_time_reset; value2} <br/>
    zweiter Wert: {value2:worx.0.123.rawMqtt.raw.blade_work_time_reset; typeof(value2)} <br/>
    Berechnung: {value1:worx.0.123.rawMqtt.raw.blade_work_time;value2:worx.0.123.rawMqtt.raw.blade_work_time_reset;parseFloat(value1)-parseFloat(value2)}
    

    Was spuckt er denn da aus?

    S Offline
    S Offline
    Sushibomba
    wrote on last edited by Sushibomba
    #63

    @sborg

    Dann spuckt er das aus:

    erster Wert: 31161
    erster Wert: string
    zweiter Wert: 29570
    zweiter Wert: string
    Berechnung: 1591

    Also hier scheint die Berechnung zu funktionieren.

    SBorgS 1 Reply Last reply
    0
    • S Sushibomba

      @sborg

      Dann spuckt er das aus:

      erster Wert: 31161
      erster Wert: string
      zweiter Wert: 29570
      zweiter Wert: string
      Berechnung: 1591

      Also hier scheint die Berechnung zu funktionieren.

      SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      wrote on last edited by
      #64

      @sushibomba Dann bleibt die Frage "wo genau" du die Berechnung eintragen willst. Bindings funktionieren nicht überall ;)

      LG SBorg ( SBorg auf GitHub)
      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

      S 1 Reply Last reply
      0
      • SBorgS SBorg

        @sushibomba Dann bleibt die Frage "wo genau" du die Berechnung eintragen willst. Bindings funktionieren nicht überall ;)

        S Offline
        S Offline
        Sushibomba
        wrote on last edited by
        #65

        @sborg

        Also am liebsten würde ich sie mir in das Widget von MaterialDesign - Input einbauen. Dort dann als Number einfach nur anzeigen lassen und das Widget sperren damit es optisch zum Rest passt.
        Falls es aber nicht geht dann einfach als basic - number

        SBorgS 1 Reply Last reply
        0
        • S Sushibomba

          @sborg

          Also am liebsten würde ich sie mir in das Widget von MaterialDesign - Input einbauen. Dort dann als Number einfach nur anzeigen lassen und das Widget sperren damit es optisch zum Rest passt.
          Falls es aber nicht geht dann einfach als basic - number

          SBorgS Offline
          SBorgS Offline
          SBorg
          Forum Testing Most Active
          wrote on last edited by
          #66

          @sushibomba MaterialDesign bin ich außen vor, Basic-Number geht IMHO nicht.
          Gibt aber einen einfachen Test. Trage einfach ein Binding ohne alles ein. Wird was angezeigt muss auch die Berechnung funktionieren:

          {worx.0.123.rawMqtt.raw.blade_work_time}
          

          LG SBorg ( SBorg auf GitHub)
          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

          HomoranH S 2 Replies Last reply
          0
          • SBorgS SBorg

            @sushibomba MaterialDesign bin ich außen vor, Basic-Number geht IMHO nicht.
            Gibt aber einen einfachen Test. Trage einfach ein Binding ohne alles ein. Wird was angezeigt muss auch die Berechnung funktionieren:

            {worx.0.123.rawMqtt.raw.blade_work_time}
            
            HomoranH Do not disturb
            HomoranH Do not disturb
            Homoran
            Global Moderator Administrators
            wrote on last edited by
            #67

            @sborg sagte in "Rechnen" in Widgets:

            Wird was angezeigt

            aber nicht im Editor!
            Erst in der Runtime

            kein Support per PN! - Fragen im Forum stellen -

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

            ioBroker freut sich über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Reply Last reply
            0
            • SBorgS SBorg

              @sushibomba MaterialDesign bin ich außen vor, Basic-Number geht IMHO nicht.
              Gibt aber einen einfachen Test. Trage einfach ein Binding ohne alles ein. Wird was angezeigt muss auch die Berechnung funktionieren:

              {worx.0.123.rawMqtt.raw.blade_work_time}
              
              S Offline
              S Offline
              Sushibomba
              wrote on last edited by
              #68

              @sborg
              Ok funktioniert leider nicht @Homoran auch nicht in der Runtime.

              HomoranH 1 Reply Last reply
              0
              • S Sushibomba

                @sborg
                Ok funktioniert leider nicht @Homoran auch nicht in der Runtime.

                HomoranH Do not disturb
                HomoranH Do not disturb
                Homoran
                Global Moderator Administrators
                wrote on last edited by
                #69

                @sushibomba sagte in "Rechnen" in Widgets:

                @sborg
                Ok funktioniert leider nicht @Homoran auch nicht in der Runtime.

                @sborg sagte in "Rechnen" in Widgets:

                @sushibomba Dann bleibt die Frage "wo genau" du die Berechnung eintragen willst.

                und?

                kein Support per PN! - Fragen im Forum stellen -

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

                ioBroker freut sich über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                S 1 Reply Last reply
                0
                • HomoranH Homoran

                  @sushibomba sagte in "Rechnen" in Widgets:

                  @sborg
                  Ok funktioniert leider nicht @Homoran auch nicht in der Runtime.

                  @sborg sagte in "Rechnen" in Widgets:

                  @sushibomba Dann bleibt die Frage "wo genau" du die Berechnung eintragen willst.

                  und?

                  S Offline
                  S Offline
                  Sushibomba
                  wrote on last edited by
                  #70

                  @homoran

                  Ich möchte einfach nur in meiner Worx View die Zahl berechnet haben wie lange die Klingen vom Mährobotor laufen. Oder verstehe ich die Frage nicht 🙈

                  HomoranH 1 Reply Last reply
                  0
                  • S Sushibomba

                    @homoran

                    Ich möchte einfach nur in meiner Worx View die Zahl berechnet haben wie lange die Klingen vom Mährobotor laufen. Oder verstehe ich die Frage nicht 🙈

                    HomoranH Do not disturb
                    HomoranH Do not disturb
                    Homoran
                    Global Moderator Administrators
                    wrote on last edited by
                    #71

                    @sushibomba sagte in "Rechnen" in Widgets:

                    Oder verstehe ich die Frage nicht

                    anscheinend.

                    @sborg sagte in "Rechnen" in Widgets:

                    Dann bleibt die Frage "wo genau" du die Berechnung eintragen willst.

                    nicht was du eintragen oder erreichen willst.

                    • welches Widget?
                    • in welchem Feld dort?

                    kein Support per PN! - Fragen im Forum stellen -

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

                    ioBroker freut sich über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    S 1 Reply Last reply
                    0
                    • HomoranH Homoran

                      @sushibomba sagte in "Rechnen" in Widgets:

                      Oder verstehe ich die Frage nicht

                      anscheinend.

                      @sborg sagte in "Rechnen" in Widgets:

                      Dann bleibt die Frage "wo genau" du die Berechnung eintragen willst.

                      nicht was du eintragen oder erreichen willst.

                      • welches Widget?
                      • in welchem Feld dort?
                      S Offline
                      S Offline
                      Sushibomba
                      wrote on last edited by Sushibomba
                      #72

                      @homoran
                      Oh tut mir leid das ich es nicht sofort verstanden habe :-/

                      Entweder basic - Number -> Object ID
                      Oder am liebsten materialdesign - Input -> Object ID

                      HomoranH 1 Reply Last reply
                      0
                      • S Sushibomba

                        @homoran
                        Oh tut mir leid das ich es nicht sofort verstanden habe :-/

                        Entweder basic - Number -> Object ID
                        Oder am liebsten materialdesign - Input -> Object ID

                        HomoranH Do not disturb
                        HomoranH Do not disturb
                        Homoran
                        Global Moderator Administrators
                        wrote on last edited by
                        #73

                        @sushibomba warum in Object-ID.
                        da muss der Datenpunkt rein, von wo die Daten bezogen werden.

                        IMHO darf/kann da kein Binding rein. Das funktioniert nicht (immer)

                        kein Support per PN! - Fragen im Forum stellen -

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

                        ioBroker freut sich über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        SBorgS S 2 Replies Last reply
                        1
                        • HomoranH Homoran

                          @sushibomba warum in Object-ID.
                          da muss der Datenpunkt rein, von wo die Daten bezogen werden.

                          IMHO darf/kann da kein Binding rein. Das funktioniert nicht (immer)

                          SBorgS Offline
                          SBorgS Offline
                          SBorg
                          Forum Testing Most Active
                          wrote on last edited by
                          #74

                          @homoran sagte in "Rechnen" in Widgets:

                          IMHO~darf/ kann da kein Binding rein. Das funktioniert nicht (immer)

                          Jepp, in der ObjectID geht das nicht. Das hat aber mit dem System an sich zu tun, also Laufzeiten wann, was, wo gemacht wird.

                          LG SBorg ( SBorg auf GitHub)
                          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                          1 Reply Last reply
                          1
                          • HomoranH Homoran

                            @sushibomba warum in Object-ID.
                            da muss der Datenpunkt rein, von wo die Daten bezogen werden.

                            IMHO darf/kann da kein Binding rein. Das funktioniert nicht (immer)

                            S Offline
                            S Offline
                            Sushibomba
                            wrote on last edited by
                            #75

                            @homoran Ok alles klar. Dann muss ich es wohl anderweitig versuchen.

                            @SBorg Vielen Dank für deine Erklärung.

                            SBorgS 1 Reply Last reply
                            0
                            • S Sushibomba

                              @homoran Ok alles klar. Dann muss ich es wohl anderweitig versuchen.

                              @SBorg Vielen Dank für deine Erklärung.

                              SBorgS Offline
                              SBorgS Offline
                              SBorg
                              Forum Testing Most Active
                              wrote on last edited by
                              #76

                              @sushibomba sagte in "Rechnen" in Widgets:

                              Dann muss ich es wohl anderweitig versuchen.

                              So ganz verstehe ich noch nicht was du bezwecken willst. Du berechnest eine (Rest-)Laufzeit, die ist dynamisch (=verändert sich also). Warum willst du die dann als statische ObjectID?

                              Dies ist eine ObjectID worx.0.123.rawMqtt.raw.blade_work_time
                              Die wird iaR nie geändert (außer mal bei einem Adapter-Update), denn darauf greifen dann die Skripte, Blockly, Node-RED, VIS... zu. Die kann, und darf, sich also nie ändern (bis der Dev dies aus "Gründen" tut ;) ).
                              Deine berechnete Zeit wäre dann ein state der ObjectID. Der darf/kann sich dann beliebig ändern.

                              Wenn du versuchst aus "123456 Sekunden" des Bindings eine formatierte Zeitanzeige ala hh:mm zu generieren, musst du das anders lösen (Blockly, Hilfsdatenpunkt, JS-Snippet...).
                              So ein JS-Snippet habe ich die Tage beim Shelly-Adapter gepostet, da dessen Uptime nun in Sekunden angezeigt wird ;)

                              LG SBorg ( SBorg auf GitHub)
                              Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                              OliverIOO S 2 Replies Last reply
                              0
                              • SBorgS SBorg

                                @sushibomba sagte in "Rechnen" in Widgets:

                                Dann muss ich es wohl anderweitig versuchen.

                                So ganz verstehe ich noch nicht was du bezwecken willst. Du berechnest eine (Rest-)Laufzeit, die ist dynamisch (=verändert sich also). Warum willst du die dann als statische ObjectID?

                                Dies ist eine ObjectID worx.0.123.rawMqtt.raw.blade_work_time
                                Die wird iaR nie geändert (außer mal bei einem Adapter-Update), denn darauf greifen dann die Skripte, Blockly, Node-RED, VIS... zu. Die kann, und darf, sich also nie ändern (bis der Dev dies aus "Gründen" tut ;) ).
                                Deine berechnete Zeit wäre dann ein state der ObjectID. Der darf/kann sich dann beliebig ändern.

                                Wenn du versuchst aus "123456 Sekunden" des Bindings eine formatierte Zeitanzeige ala hh:mm zu generieren, musst du das anders lösen (Blockly, Hilfsdatenpunkt, JS-Snippet...).
                                So ein JS-Snippet habe ich die Tage beim Shelly-Adapter gepostet, da dessen Uptime nun in Sekunden angezeigt wird ;)

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                wrote on last edited by
                                #77

                                @sborg

                                es gab hier schon anfragen, per binding die objectid zu berechnen, damit man nicht soviele widgets anlegen muss.

                                aber vis kann keine dynamischen object ids

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                SBorgS 1 Reply Last reply
                                0
                                • SBorgS SBorg

                                  @sushibomba sagte in "Rechnen" in Widgets:

                                  Dann muss ich es wohl anderweitig versuchen.

                                  So ganz verstehe ich noch nicht was du bezwecken willst. Du berechnest eine (Rest-)Laufzeit, die ist dynamisch (=verändert sich also). Warum willst du die dann als statische ObjectID?

                                  Dies ist eine ObjectID worx.0.123.rawMqtt.raw.blade_work_time
                                  Die wird iaR nie geändert (außer mal bei einem Adapter-Update), denn darauf greifen dann die Skripte, Blockly, Node-RED, VIS... zu. Die kann, und darf, sich also nie ändern (bis der Dev dies aus "Gründen" tut ;) ).
                                  Deine berechnete Zeit wäre dann ein state der ObjectID. Der darf/kann sich dann beliebig ändern.

                                  Wenn du versuchst aus "123456 Sekunden" des Bindings eine formatierte Zeitanzeige ala hh:mm zu generieren, musst du das anders lösen (Blockly, Hilfsdatenpunkt, JS-Snippet...).
                                  So ein JS-Snippet habe ich die Tage beim Shelly-Adapter gepostet, da dessen Uptime nun in Sekunden angezeigt wird ;)

                                  S Offline
                                  S Offline
                                  Sushibomba
                                  wrote on last edited by
                                  #78

                                  @sborg

                                  Ich habe es jetzt mit nem JS und nem Datenpunkt gelöst. Mal schauen ob es funktioniert.

                                  'use strict';
                                   
                                  const idBladeWorkTime = 'worx.0.xxx.rawMqtt.raw.blade_work_time';
                                  const idBladeWorkTimeReset = 'worx.0.xxx.rawMqtt.raw.blade_work_time_reset';
                                  const idBladeWorkTimeCurrent = '0_userdata.0.VIS.Eigene_Datenpunkte.WORX.xxx.blade_work_time_current';
                                   
                                  function zweiStellig(zahl) {
                                      return zahl < 10 ? '0' + zahl : zahl
                                  }
                                   
                                  function stundenMinuten(minuten) {
                                      return parseInt(minuten / 60) + ':' + zweiStellig(minuten % 60);
                                  }
                                   
                                  on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                                      setState(idBladeWorkTimeCurrent, stundenMinuten(getState(idBladeWorkTime).val - getState(idBladeWorkTimeReset).val));
                                  })
                                  
                                  1 Reply Last reply
                                  0
                                  • OliverIOO OliverIO

                                    @sborg

                                    es gab hier schon anfragen, per binding die objectid zu berechnen, damit man nicht soviele widgets anlegen muss.

                                    aber vis kann keine dynamischen object ids

                                    SBorgS Offline
                                    SBorgS Offline
                                    SBorg
                                    Forum Testing Most Active
                                    wrote on last edited by
                                    #79

                                    @oliverio Dass kann ich mir auch noch vorstellen, immerhin spart man sich den Alias.
                                    Aber wie ich es mir schon dachte, ging es eher darum die (Rest-)Laufzeit in die ObjectID zu "pressen", damit man dann schön mittels Widget wie bspw. Basic Number die Ausgabe formatieren kann ;)


                                    @Sushibomba Sollte gehen, zumindest sehe ich so erst mal keinen Fehler, aaaabbbbbeeeerrrr....

                                    brauchst du das nur für die VIS? Du berechnest fortwährend die Laufzeit neu. Sagen wir mal er schickt alle 10 Sekunden ein Update und mäht täglich 1h. Dann sind das 360 Berechnungen täglich, ob du sie brauchst oder nicht. Zwar noch nicht die Summe im Einzelnen, aber potenziere das noch mit anderen "unnützen" Berechnungen.
                                    Wenn es nur für die VIS ist, wäre es zumindest sinnvoller, es auch nur dann auszuführen wenn du auch drauf schaust/aufrufst.
                                    Schließlich wird auch niemand alle Minute melden "es regnet nicht", wenn er den Auftrag bekommt "sag mir bei Regen Bescheid"... ;)

                                    LG SBorg ( SBorg auf GitHub)
                                    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      Sushibomba
                                      wrote on last edited by
                                      #80

                                      @sborg
                                      Ja da hast du absolut recht.
                                      Und wie optimiere ich das dann am einfachsten?
                                      Genau brauche es nur als Number in der Vis.

                                      SBorgS 1 Reply Last reply
                                      0
                                      • S Sushibomba

                                        @sborg
                                        Ja da hast du absolut recht.
                                        Und wie optimiere ich das dann am einfachsten?
                                        Genau brauche es nur als Number in der Vis.

                                        SBorgS Offline
                                        SBorgS Offline
                                        SBorg
                                        Forum Testing Most Active
                                        wrote on last edited by SBorg
                                        #81

                                        @sushibomba Ist im Grunde so gut wie das selbe wie dein JS, nur ohne Datenpunkte.

                                        Zur Anzeige nimmst du bspw. ein HTML-Widget.
                                        Dort nutzt du dann ein Binding zur Berechnung und Ausgabe:
                                        {val1:worx.0.123.rawMqtt.raw.blade_work_time;val2:worx.0.123.rawMqtt.raw.blade_work_time_reset; toHHMMSS(parseFloat(val1)-parseFloat(val2))}

                                        Dann musst du beim Widget unter "Skript" nur noch die Funktion einfügen:

                                        var toHHMMSS = (secs) => {
                                            var sec_num = parseInt(secs, 10)
                                            var hours   = Math.floor(sec_num / 3600) % 24
                                            var minutes = Math.floor(sec_num / 60) % 60
                                            var seconds = sec_num % 60    
                                        
                                            return [hours,minutes,seconds]
                                                .map(v => v < 10 ? "0" + v : v)
                                                .filter((v,i) => v !== "00" || i > 0)
                                                .join(":")
                                        }
                                        

                                        Somit steht dir die Funktion in jedem Widget deiner VIS zur Verfügung und wird auch nur noch bei Bedarf ausgeführt. Da ein Binding auch auf Änderungen getriggert wird, aktualisiert sich die Anzeige selbst dann wenn du in der View stehst und nicht nur beim laden/neu laden ;)

                                        LG SBorg ( SBorg auf GitHub)
                                        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

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

                                          Hey, schließe mich hier mal an mit der Frage.
                                          Um mir die Laufzeit von Proxmox anzuzeigen benutze ich folgendes (irgendwo mal hier im Forum gefunden)

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

                                          Ich würde aber noch gerne die Minuten dabei haben und bekomme es natürlich wieder nicht hin :dizzy_face:
                                          Da kann mir doch bestimmt einer von euch helfen :grinning:

                                          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.

                                          SBorgS 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

                                          483

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          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