Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. (Gelöst) Absoluten Wert eines Objekts anzeigen

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    (Gelöst) Absoluten Wert eines Objekts anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • amg_666
      amg_666 last edited by amg_666

      Hallo,

      in meiner VIS zeige ich an ob momentan Strom bezogen oder eingespeist wird. Der Datenpunkt vom Smartmeter wird beim Einspeisen aber negativ dargestellt (logisch, ist ja auch negativer Strombezug vom EVU).
      Ich habe hier zwar das Thema gefunden aber bei mir funktioniert das nicht:
      im html widget habe ich

      {wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert<0 ? "-"+Math.abs(wert): "+"+Math.abs(wert)} 
      

      in der vis sieht das dann so aus
      e5d9effd-beb4-4271-8e83-90b2d53cf463-grafik.png
      Der obere Wert (17 W) ist korrekt, da wird einfach der DP ausgegeben, der schwarze Kasten ist das Ergebniss des html bindings. Wahrscheinlich sehe ich den Wald vor Bäumen nicht, wäre nett wenn mir hier jemand auf die Sprünge helfen kann.

      haus-automatisierung Homoran 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @amg_666 last edited by

        @amg_666 Die Einheit ist aber nicht Teil des Wertes, oder?

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

          @amg_666 arbeitest du da mit Vorzeichen als String?
          Multiplikation mit -1 wäre korrekt

          amg_666 1 Reply Last reply Reply Quote 0
          • amg_666
            amg_666 @haus-automatisierung last edited by

            @haus-automatisierung Ne die ist da nur in der vis angehängt

            1 Reply Last reply Reply Quote 0
            • amg_666
              amg_666 @Homoran last edited by

              @homoran sagte in Absoluten Wert eines Objekts anzeigen:

              arbeitest du da mit Vorzeichen als String?

              Das ist erstmal nur ein Test, ob das mit math.abs überhaupt klappt, hier wird einfach ein Vorzeichen davor geschrieben, eigentlich will ich nur den absoluten Wert ausgeben, ich hatte aus dem alten Thread die Lösung (mit Vorzeichen als String) kopiert und schon die funktioniert nicht.
              Der Datenpunkt ist eine "number", von daher müsste die Funktion math.abs eigentlich greifen, oder?

              {
                "_id": "mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value",
                "common": {
                  "name": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value",
                  "write": true,
                  "read": true,
                  "role": "variable",
                  "desc": "mqtt server variable",
                  "type": "number",
                  "custom": {
                    "history.0": {
                      "enabled": true
                    }
                  }
                },
                "native": {
                  "topic": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value"
                },
                "type": "state",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                },
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1716028810331
              }
              
              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @amg_666 last edited by haus-automatisierung

                @amg_666 Für mich sieht das richtig aus. Geht es so?

                {wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert < 0 ? `-${Math.abs(wert)}` : `+${Math.abs(wert)}`}
                

                Mich wundert dass NaN rauskommt. Welches Widget verwendest Du denn? Eventuell wird versucht das Ergebnis vom Binding (was ja ein String ist) irgendwie wieder zu parsen.

                amg_666 1 Reply Last reply Reply Quote 0
                • amg_666
                  amg_666 @haus-automatisierung last edited by

                  @haus-automatisierung sagte in Absoluten Wert eines Objekts anzeigen:

                  {wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert < 0 ? -${Math.abs(wert)} : +${Math.abs(wert)}}

                  Das ergibt
                  d6f27903-85fa-439a-9463-0df6d93b6d57-grafik.png

                  ich benutze das "normale" html widget:

                  [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert<0 ? \"-\"+Math.abs(wert): \"+\"+Math.abs(wert)} "},"style":{"left":"1776px","top":"425px","color":"#ffffff","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","text-align":"right","background":"#000000","width":"122px","height":"44px","z-index":"1"},"widgetSet":"basic"}]
                  
                  amg_666 1 Reply Last reply Reply Quote 0
                  • amg_666
                    amg_666 @amg_666 last edited by

                    @amg_666 Update : Ich hab das jetzt ans Laufen bekommen, allerdings über den Umweg eines alias.
                    html widgt und da dann

                    {wert:alias.0.testtest.value;Math.abs(wert)}
                    

                    zeigt mir den absoluten Betrag des Wertes an. Aber verstehen tue ich es nicht, beide Werte (DP und Alias) sind Zustandstyp "Zahl". Der originale Datenpunkt (funktioniert nicht) hat die Objektdaten

                    {
                      "_id": "mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value",
                      "common": {
                        "name": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value",
                        "write": true,
                        "read": true,
                        "role": "variable",
                        "desc": "mqtt server variable",
                        "type": "number",
                        "custom": {
                          "history.0": {
                            "enabled": true
                          }
                        }
                      },
                      "native": {
                        "topic": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value"
                      },
                      "type": "state",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      },
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1716028810331
                    }
                    
                    

                    Der Alias (funktioniert) hat die 1:1 übernommen:

                    {
                      "type": "state",
                      "common": {
                        "name": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value",
                        "role": "variable",
                        "type": "number",
                        "read": true,
                        "write": true,
                        "alias": {
                          "id": "mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value"
                        },
                        "custom": {
                          "history.0": {
                            "enabled": true
                          }
                        }
                      },
                      "_id": "alias.0.testtest.value",
                      "native": {},
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1716308213191,
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    

                    Hat hier jemand eine Idee, woran es liegen könnte? Ich kann da zwar so mit leben, aber schön ist irgendwie anders 😉

                    liv-in-sky jogibear9988 2 Replies Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @amg_666 last edited by liv-in-sky

                      @amg_666

                      ginge:

                      {wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert<0 ? "-"+String(Math.abs(wert)):  "+"+String(Math.abs(wert))} 
                      
                      amg_666 1 Reply Last reply Reply Quote 0
                      • jogibear9988
                        jogibear9988 @amg_666 last edited by

                        @amg_666

                        Ist der orginale Wert vlt. vom Typ Zahl, aber als string gespeichert und enthält dann ein , statt einen . ?
                        Das würde es erklären:

                        b8e672ea-e3e0-47d1-9dc9-9b7935e2ccaa-image.png

                        amg_666 1 Reply Last reply Reply Quote 1
                        • amg_666
                          amg_666 @liv-in-sky last edited by

                          @liv-in-sky sagte in Absoluten Wert eines Objekts anzeigen:

                          {wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert<0 ? "-"+String(Math.abs(wert)): "+"+String(Math.abs(wert))}

                          Nein, das spuckt in der vis "+NaN" aus

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @amg_666 last edited by

                            @amg_666 vis 1 oder vis 2

                            1 Reply Last reply Reply Quote 0
                            • amg_666
                              amg_666 @jogibear9988 last edited by amg_666

                              @jogibear9988 Wenn ich in die Objekte schau, dann ist das "type: number" (siehe auch oben die geposteten Objektdaten) und der Wert ist mit einem Punkt, kein Komma:
                              Momentan z.B. -446.6

                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @amg_666 last edited by

                                @amg_666

                                mal ne andere frage - warum machst du das - ein minus-wert wird doch als minus angezeigt - bei einem normalen binding ?

                                {mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value}
                                

                                müßte doch reichen

                                amg_666 1 Reply Last reply Reply Quote 0
                                • amg_666
                                  amg_666 @liv-in-sky last edited by

                                  @liv-in-sky Nee, wie oben geschrieben, ich hab diesen +/- thread genommen um zu schauen ob das überhaupt funktioniert (tut es nicht), was ich wirklich will ist "nur" den absoluten Wert darstellen, also z.B. 446 wenn es **-**446 sind.
                                  Was ich also will ist Math.abs(xyz) als binding und das funktioniert jetzt bei mir nur mit Alias, nicht mit direktem DP

                                  liv-in-sky 2 Replies Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @amg_666 last edited by

                                    @amg_666 nochmal : vis1 oder vis2

                                    1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @amg_666 last edited by

                                      @amg_666

                                      {wert1:0_userdata.0.CONTROL-OWN.AAATEST.TestStart; Math.abs(wert1)  }
                                      

                                      vis1: bei mir geht das ohne probleme

                                      amg_666 1 Reply Last reply Reply Quote 0
                                      • amg_666
                                        amg_666 @liv-in-sky last edited by

                                        @liv-in-sky vis1

                                        liv-in-sky 2 Replies Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @amg_666 last edited by liv-in-sky

                                          @amg_666

                                          was sagt den die entwicklungsumgebung von chrome, wenn du die seite refresht ?

                                          1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @amg_666 last edited by liv-in-sky

                                            @amg_666

                                            falsche antwort

                                            amg_666 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            848
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            25
                                            880
                                            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