Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. VIS -> Allgemein -> Skripte

    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

    VIS -> Allgemein -> Skripte

    This topic has been deleted. Only users with topic management privileges can see it.
    • werner2000x
      werner2000x @Röstkartoffel last edited by

      @Röstkartoffel Ich habe auch ein Problem mit Scripten.
      Wie kann ich in VIS eine Variable umrechnen so dass ich z.B. eine Temperatur von Kelvin in Grad Celsius anzeigen lasse?14b90591-b874-43c2-8b99-36346f0f59ec-image.png
      Hier im Bild müsste ich von dem Wert 273 abziehen damit der Wert in 18,6 °C angezeigt wird. Ich weiß nicht wie das geht?

      Karel Puhli 1 Reply Last reply Reply Quote 0
      • Karel Puhli
        Karel Puhli @werner2000x last edited by Karel Puhli

        @werner2000x

        var x = getState('Objekt-ID').val -273;
        

        damit könntest du dir z.B. eine Variable x ausgeben lassen.

        werner2000x 1 Reply Last reply Reply Quote 0
        • werner2000x
          werner2000x @Karel Puhli last edited by

          @Karel-Puhli said in VIS -> Allgemein -> Skripte:

          var x = getState('Objekt-ID').val -273;

          Danke. Und wie bekomme ich die Variable x nun in VIS?

          Karel Puhli 1 Reply Last reply Reply Quote 0
          • Karel Puhli
            Karel Puhli @werner2000x last edited by

            @werner2000x

            Vorschlag:
            Du legst dir einen neuen Datenpunkt an (hier: "deinneuerDatenpunkt"). Baust dir ein Blockly oder folgendes JavaScript.

            on({id: "deinThermometer", change: "any"}, async function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              setState("deinneuerDatenpunkt", ((obj.state ? obj.state.val : "") - 273), true);
            });
            

            Dann noch dein Vis Widget auf deinen neuen Datenpunkt zugreifen lassen, nicht mehr auf das "alte" Thermometer.

            werner2000x 1 Reply Last reply Reply Quote 0
            • werner2000x
              werner2000x @Karel Puhli last edited by

              @Karel-Puhli said in VIS -> Allgemein -> Skripte:

                                                                                                                                          on({id: "deinThermometer", change: "any"}, async function (obj) {                                                                                                                                                                              var value = obj.state.val;                                                                                                                                                                              var oldValue = obj.oldState.val;                                                                                                                                                                              setState("deinneuerDatenpunkt", ((obj.state ? obj.state.val : "") - 273), true);                                                                                                                                                                            });                                            
              

              Das klappt leider auch noch nicht:
              78433d03-83c4-4a3e-9764-0122b913c52a-image.png
              Die Variable "Temperatur" steht nirgends in den VIS Objekten und es kommt eine Klammerfehlermeldung.

              werner2000x 1 Reply Last reply Reply Quote 0
              • werner2000x
                werner2000x @werner2000x last edited by werner2000x

                @werner2000x said in VIS -> Allgemein -> Skripte:

                on({id: "deinThermometer", change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("deinneuerDatenpunkt", ((obj.state ? obj.state.val : "") - 273), true); });

                Jetzt habe ich die Variable gefunden in Javascipt.0
                a021f217-2f27-4261-bbb8-2f5b15d38d52-image.png

                Das Script sieht jetzt so aus:
                on({id: "vw-connect.0.WVGZZZ5NZHW882376.status.data07.field01.value", change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("scriptEnabled.common.Temperatur", ((obj.state ? obj.state.val : "") - 273), true); });

                läuft aber noch nicht s.Bild;
                36917eca-412d-4664-b019-87b9768aa25c-image.png

                werner2000x 1 Reply Last reply Reply Quote 0
                • werner2000x
                  werner2000x @werner2000x last edited by

                  @werner2000x
                  oder hier ein neuer Versuch:
                  12e38397-d261-4b10-8bc1-bfedd6a44c75-image.png

                  Karel Puhli 1 Reply Last reply Reply Quote 0
                  • Karel Puhli
                    Karel Puhli @werner2000x last edited by Karel Puhli

                    @werner2000x

                    Das Skript ist nicht für den Reiter Skripte in VIS, sondern für deine Skripte im JS Adapter.

                    Hast du denn mal im VW Connect Adapter geschaut? Kannst du dort nicht die Einheit in Celsius ändern?

                    werner2000x 1 Reply Last reply Reply Quote 0
                    • werner2000x
                      werner2000x @Karel Puhli last edited by

                      @Karel-Puhli Ok, das wusste ich nicht.
                      Habe das Skript nun in IOBroker gebracht - trotzdem Fehler:
                      edb23149-3924-40f9-9e24-e40db6491d3a-image.png

                      Karel Puhli 1 Reply Last reply Reply Quote 0
                      • Karel Puhli
                        Karel Puhli @werner2000x last edited by Karel Puhli

                        @werner2000x

                        Schick mal einen kompletten Code vom JS oder einen Screenshot. Steht bei dir alles in einer Zeile (sieht oben so aus, nur Zeile 1)? Womöglich beim Kopieren einen Dreher drin?

                        Der Datenpunkt ist korrekt angelegt? Als Zahl? min -50 max 100? Also für gängige Temperaturen?

                        Am bestern da auch nochmal einen Screenshot.

                        werner2000x 1 Reply Last reply Reply Quote 0
                        • werner2000x
                          werner2000x @Karel Puhli last edited by

                          @Karel-Puhli Danke für das Angebot.
                          Die Temperatur liegt als dK, also dezi Kelvin vor - hier ist der Werte jetzt 2861.
                          Wenn man den Wert durch zehn teilt und 273 abzieht hat man den richtigen Wert, also 13,1 °C.
                          Die Temperatur ist konstant, der Wert ändert sich also nicht. Nur wenn das Fahrzeug fährt. Jetzt steht es.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          947
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          vis
                          4
                          16
                          5205
                          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