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.
    • 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
                          • S
                            Sushibomba @Homoran last edited by

                            @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 🙈

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

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

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

                                  @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)

                                  SBorg S 2 Replies Last reply Reply Quote 1
                                  • SBorg
                                    SBorg Forum Testing Most Active @Homoran last edited by

                                    @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.

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

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

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

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

                                        @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 😉

                                        OliverIO S 2 Replies Last reply Reply Quote 0
                                        • OliverIO
                                          OliverIO @SBorg last edited by

                                          @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

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            951
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            21
                                            128
                                            20037
                                            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