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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • 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

      Hi,
      ich habe für alle meine Zigbee Geräte ja die "Link Quality" jetzt möchte ich diese in einem Balken darstellen.
      Leider geht sie ja von 0 bis 256 und das auch noch 2^x. ich muss den wErt des Objects Link Quality also mit einem log umrechnen.

      Der erste Ansatz wäre ja nun für jedes Link Quality Objekt ein neues Objekt Link QualityPPercent per Javscript berechnen zu lassen und dieses per Widget dar zu stellen, das möchte ich aber vermeiden.

      Ich habe mir nun eine Funktion im Vis geschrieben (sowas nutze ich auch um die Farbe des Balkens einzufärben, dort gibt man einfach den Wert des Objekts ein und erhält einen Farbwert zurück) und hatte gehofft das Ergebnis der Funktion in einem normalen Widget ausgeben zu können.
      Irgendwie komme ich aber nicht weiter. Habe es mit dem normalen HTML Widget versucht aber auch divesen simples.
      Stehe etwas auf dem Schlauch un brauch n Schubs

      Hat das jemand schonmal gemacht?

      Nils

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

                                    759
                                    Online

                                    31.9k
                                    Users

                                    80.2k
                                    Topics

                                    1.3m
                                    Posts

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