Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [gelöst] Ergebnis eines Javascripts in Widget darstellen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Ergebnis eines Javascripts in Widget darstellen

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

      Hab rausgekriegt wie man zumindest den Wert schonmal darstellt:

      einfach ein HTML Widget und folgendes rein:

      {n:zigbee.0.00158d00016c10d0.link_quality;qualityToPercent(n)}

      Wird aber im Vis Editor nicht angezeigt. Im Vis aber schon!

      Jetzt muss ich noch versuchen, den errechneten Wert als Input für ein Bar zu übertragen

      Nils

      1 Reply Last reply Reply Quote 0
      • jmeister79
        jmeister79 last edited by

        Hallo,
        ich habe jetzt einen alternativen weg gefunden:

        Ich nehme ein normales dummes HTML Widget, das über CSS schon wie ein Bargraph aussieht, und rufe ein Javascript wie folgt im HTML teil auf:

        {n:ble.0.4c:65:a8:dc:63:b8.rssi;createBarGraph(n)}
        

        Das Script ruft dann die üblichen Unterscripte auf und gibt fertigen HTML Code zurück:

        function qualityToPercent(i)
        {
            var percent = 0;
            if (i==0)i=1;
            percent = Math.log2(i)*12.5;
            return percent.toFixed(0);
        }
        function createBarGraph(i)
        {
            var percent = 0;
            var color = "ffffff";
            
            percent = qualityToPercent(i);
            color = numberToRgbColor(percent);
            return '<div style="height:100%; width:'+percent+'%; background:'+color+'"></div>'
        }
        

        So bekomme ich aus der Exponentiellen Darstellung der Link Quality eine sehr genaue Prozentdarstellung der Signalstärke aller Zigbee Geräte.
        Das Eignet sich prinzipiell dafür, jede Menge coole sachen über standardHTML Widgets zu machen ohne auf igrendwelche anderen zurückzugreifen, ist aber eher was für frickler.

        Nils

        sigi234 1 Reply Last reply Reply Quote 0
        • sigi234
          sigi234 Forum Testing Most Active @jmeister79 last edited by sigi234

          @jmeister79

          Hallo, irgendwie begreife ich es nicht . Wie wird dann der Bargraph dargestellt?

          ich habe für alle meine Zigbee Geräte ja die "Link Quality" jetzt möchte ich diese in einem Balken darstellen.

          Ok, habe diesen nicht , aber ich möchte zB. ein Volume Wert darstellen.

          jmeister79 1 Reply Last reply Reply Quote 0
          • jmeister79
            jmeister79 @sigi234 last edited by

            @sigi234
            ich nutze CSS Klassen die den Rest darstellen und klären, dann färbe ich nur noch % davon ein.

            In diesem Fall die mdui-h-bargraph und mdui-segment-10 vom material design paket von @Uhula

            zu finden unter
            https://github.com/Uhula/ioBroker-Material-Design-Style

            Nils

            sigi234 1 Reply Last reply Reply Quote 0
            • sigi234
              sigi234 Forum Testing Most Active @jmeister79 last edited by

              @jmeister79 sagte in [gelöst] Ergebnis eines Javascripts in Widget darstellen:

              @sigi234
              ich nutze CSS Klassen die den Rest darstellen und klären, dann färbe ich nur noch % davon ein.

              In diesem Fall die mdui-h-bargraph und mdui-segment-10 vom material design paket von @Uhula

              zu finden unter
              https://github.com/Uhula/ioBroker-Material-Design-Style

              Nils

              Danke, das kenne ich...............kannst du mal einen Screenshot einstellen?

              jmeister79 1 Reply Last reply Reply Quote 0
              • jmeister79
                jmeister79 @sigi234 last edited by

                @sigi234 zigbee.PNG

                hiervon oder willst du konkreten code?

                sigi234 1 Reply Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active @jmeister79 last edited by

                  @jmeister79

                  Danke, hab es so:

                  Screenshot (3395).png

                  jmeister79 1 Reply Last reply Reply Quote 0
                  • jmeister79
                    jmeister79 @sigi234 last edited by

                    @sigi234 sieht gut aus, hattest du auch das problem mit exponentiellem verlauf?

                    sigi234 1 Reply Last reply Reply Quote 0
                    • sigi234
                      sigi234 Forum Testing Most Active @jmeister79 last edited by

                      @jmeister79 sagte in [gelöst] Ergebnis eines Javascripts in Widget darstellen:

                      @sigi234 sieht gut aus, hattest du auch das problem mit exponentiellem verlauf?

                      Meinst du den Farbverlauf?

                      1 Reply Last reply Reply Quote 0
                      • D
                        dos1973 last edited by dos1973

                        Das gefällt mit echt gut, aber irgendwie kann ich euch nicht folgen...

                        @sigi234
                        Hast du den gleichen Weg angewendet?

                        sigi234 1 Reply Last reply Reply Quote 0
                        • sigi234
                          sigi234 Forum Testing Most Active @dos1973 last edited by sigi234

                          @dos1973 sagte in [gelöst] Ergebnis eines Javascripts in Widget darstellen:

                          Hast du den gleichen Weg angewendet?

                          Nein,

                          hier mal 3 verschiedene Widget mit Balkenverlauf. Könnt Ihr anpassen. ( @Uhula material design )

                          Screenshot (3397).png

                          Widget_Farbverlauf_Set.txt

                          1 Reply Last reply Reply Quote 0
                          • D
                            dos1973 last edited by

                            da fehlen dann noch die css, der blau mit den "Kästchen" interessiert mich
                            mdui-h-bargraph mdui-segment-10

                            sigi234 1 Reply Last reply Reply Quote 0
                            • sigi234
                              sigi234 Forum Testing Most Active @dos1973 last edited by sigi234

                              @dos1973 sagte in [gelöst] Ergebnis eines Javascripts in Widget darstellen:

                              da fehlen dann noch die css

                              Ja, Voraussetzung ist ccs von @Uhula material design!

                              https://github.com/Uhula/ioBroker-Material-Design-Style

                              1. Installation
                                Keine. Die CSS Anweisungen müssen lediglich in einem ioBroker.vis Projekt unter "CSS / Projekt" eingefügt werden, die paar Zeilen Script unter "Skript". Beides am besten aus dem [Demo-Projekt]("ioBroker projects/MD_Demo.zip") entnehmen.
                              1 Reply Last reply Reply Quote 0
                              • D
                                dos1973 last edited by

                                das ist mir zu mächtig 😉
                                da muss ich bestimmt wieder alles umbauen, dann ohne Kästchen...

                                jmeister79 1 Reply Last reply Reply Quote 0
                                • jmeister79
                                  jmeister79 @dos1973 last edited by

                                  @dos1973
                                  dann kopier dir doch die entsprechenden css klassen raus.

                                  meine Lösung nutzt ja nur die von @Uhula erzeugte klasse und missbraucht sie ein wenig.
                                  Du müsstest selbst bei Übernahme der ganzen CSS Datei nichts umbauen, das ist ja das tolle an @Uhula s Lösung. die kannst Du einfach auf dein vorhandenes Projekt aufsetzen und die CSS klassen nach Bedarf nutzen.
                                  So hab ich es anfangs auch gemacht, später hab ich mir dann aber das ganze layout genommen, da es so wunderbar dynamisch ist.

                                  Hauptmotivation war bei mir ja, dass man in einem widget nicht so einfach komplexe Berechnungen anstellen konnte. Und ich wollte zusätzliche Objekte für die Umwandlung durch Logarithmus vermeiden.

                                  Nils

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  584
                                  Online

                                  32.0k
                                  Users

                                  80.4k
                                  Topics

                                  1.3m
                                  Posts

                                  vis
                                  3
                                  16
                                  822
                                  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