Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. "Rechnen" in Widgets

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    "Rechnen" in Widgets

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @Martin Schlender last edited by OliverIO

      @martin-schlender

      Ich habe mir das gerade mal angeschaut.
      Der Ausdruck wird intern analysiert und dann entschieden, ob es rein javascript ist oder ob die internen Funktionen verwendet werden.
      In diesem Fall wird entschieden das es javascript ist, daher wird der Befehl round nicht gefunden.

      Als Workaround kannst du aber das hier verwenden

      <td align="right"><b>{v1:0_userdata.0.WLANTHERMO.Kanal0_5_Minuten;v2:0_userdata.0.WLANTHERMO.Kanal0;(parseFloat(v1)*6+parseFloat(v2)).toFixed(1)} °C</b></td>
      

      https://github.com/ioBroker/ioBroker.vis/issues/454

      oweitman created this issue in ioBroker/ioBroker.vis

      open the vis-functions are not called #454

      Martin Schlender 2 Replies Last reply Reply Quote 1
      • Martin Schlender
        Martin Schlender @OliverIO last edited by

        @oliverio Grandios - vielen Dank!!!
        Du hast ja sogar schon einen issue auf Github aufgemacht 👍

        1 Reply Last reply Reply Quote 0
        • Martin Schlender
          Martin Schlender @OliverIO last edited by

          @oliverio

          hast mir noch ne Idee. Ich möchte die "in 5 Minuten" durch tatsächliche Zeiten ersetzten (letzte Änderung + 5 Minuten).

          Das funktioniert auch solange ich keine 5 Minuten (300.000 ms) dazuzähle. Scheint ein ähnliches Problem zu sein.

          <b>{0_userdata.0.WLANTHERMO.Kanal0_5_Minuten.ts;date(hh:mm:ss)}</b> 
          <br>
          <b>{v1:0_userdata.0.WLANTHERMO.Kanal0_5_Minuten.ts;(parseInt(v1) + parseInt(300000));date(hh:mm:ss)}</b> 
          

          Ergebnis:
          b9d4988b-e2ac-429d-a1ad-96b07dcbf007-image.png

          Ich hab es auch schon mit toTimeString() versucht - geht auch nicht.

          {v1:0_userdata.0.WLANTHERMO.Kanal0_5_Minuten.ts;v1.toTimeString()}
          
          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @Martin Schlender last edited by

            @martin-schlender
            das habe ich befürchtet, das da auch andere vis-funktionen betroffen sind.
            leider ist @apollon77 der Meinung das das so korrekt ist und hat den Issue geschlossen

            Martin Schlender apollon77 2 Replies Last reply Reply Quote 0
            • Martin Schlender
              Martin Schlender @OliverIO last edited by

              @oliverio ja - das hab ich gesehen. Gibt es hierfür auch einen Workaround über javascript?

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @Martin Schlender last edited by

                @martin-schlender

                so müsste es gehen. Beim ersten geht die normale Syntax.
                sobald man aber den datenpunkt einer variable (v1) zuweist, wird es intern javascript und dann kennt er die eigenen Funktionen nicht mehr.
                Der 2.Fall ruft einfach die gleiche Funktion auf, die round aufruft. Im Gegensatz zum eingebauten, benötigt man hier die Anführungsstriche um das format muster.

                <b>{0_userdata.0.WLANTHERMO.Kanal0_5_Minuten.ts;date(hh:mm:ss)}</b> 
                <br>
                <b>{v1:0_userdata.0.WLANTHERMO.Kanal0_5_Minuten.ts;vis.formatDate(parseInt(v1) + parseInt(300000),"hh:mm:ss")}</b> 
                
                
                1 Reply Last reply Reply Quote 1
                • OliverIO
                  OliverIO last edited by

                  issue ist wieder offen

                  1 Reply Last reply Reply Quote 1
                  • apollon77
                    apollon77 @OliverIO last edited by

                    @oliverio Und hat ihn wieder auf gemacht nachdem er eines besseren belehrt wurde 🙂

                    Martin Schlender 1 Reply Last reply Reply Quote 2
                    • Martin Schlender
                      Martin Schlender @apollon77 last edited by

                      @apollon77 cool. Aber das sind ja auch komplexe Fälle.

                      1 Reply Last reply Reply Quote 0
                      • S
                        Sushibomba last edited by

                        Gibt es mittlerweile eine funktionierenden String den ich bei Objekt-ID einfügen kann?

                        Wenn ich

                        code_text
                        {value1:worx.0.123.rawMqtt.raw.blade_work_time;value2:worx.0.123.rawMqtt.raw.blade_work_time_reset;value1-value2}
                        

                        einfüge, dann zeigt er mir immer keinen Wert an. Was mache ich falsch?

                        OliverIO 1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @Sushibomba last edited by OliverIO

                          @sushibomba

                          die werte aus den datenpunkten kommen meist/immer als strings an.
                          daher muss man sie erst in den DAtentyp number umwandeln damit man rechnen kann

                          {value1:worx.0.123.rawMqtt.raw.blade_work_time;value2:worx.0.123.rawMqtt.raw.blade_work_time_reset;parseFloat(value1)-parseFloat(value2)}
                          
                          
                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Sushibomba @OliverIO last edited by

                            @oliverio
                            Vielen Dank. Habe ich gerade direkt probiert aber er spuckt trotzdem keinen Wert aus 😞

                            SBorg 1 Reply Last reply Reply Quote 0
                            • SBorg
                              SBorg Forum Testing Most Active @Sushibomba last edited by

                              @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 1 Reply Last reply Reply Quote 0
                              • S
                                Sushibomba @SBorg last edited by 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.

                                SBorg 1 Reply Last reply Reply Quote 0
                                • SBorg
                                  SBorg Forum Testing Most Active @Sushibomba last edited by

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

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    Sushibomba @SBorg last edited by

                                    @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

                                    SBorg 1 Reply Last reply Reply Quote 0
                                    • SBorg
                                      SBorg Forum Testing Most Active @Sushibomba last edited by

                                      @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}
                                      
                                      Homoran S 2 Replies Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @SBorg last edited by

                                        @sborg sagte in "Rechnen" in Widgets:

                                        Wird was angezeigt

                                        aber nicht im Editor!
                                        Erst in der Runtime

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Sushibomba @SBorg last edited by

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

                                          Homoran 1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @Sushibomba last edited by

                                            @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 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            478
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            21
                                            128
                                            20082
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo