Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Script vergleicht Werte falsch

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Script vergleicht Werte falsch

Geplant Angeheftet Gesperrt Verschoben Gelöst Error/Bug
wertevergleichblock scritnetatmoflotchart
13 Beiträge 6 Kommentatoren 750 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • O Offline
    O Offline
    Olivbus
    schrieb am zuletzt editiert von Jey Cee
    #1

    Ich habe ein Blocky Skript erstellt in dem zwei Temperaturen (DewPoint von zwei verschiedenen Netatmo - Sensoren) verglichen werden. Wenn die Temperatur am Sensor A größer als die Temperatur am Sensor B ist, soll in einen Datenpunkt 1 geschrieben werden. Wenn die Temperatur von A kleiner gleich B ist soll 0 in den Datenpunkt geschrieben werden.

    Die Temperaturen werden parallel in einem Flot Chart aufgezeichnet. Im Flot Chart ist der Wertebereich (x Achse) von 10 bis 16 Grad Celsius eingestellt.

    Die Temperaturwerte beider Sensoren werden unter Objekte und in der History korrekt angezeigt.

    Bei Änderung des Werts des Datenpunkts erfolgt über ein anderes Skript die Meldung via Telegramm.

    Das Skript (Vergleich der Temperaturen und setzten des Datenpunkts mit 1 oder 0) funktioniert solange korrekt, wie sich die Temperaturwerte im Wertebereich des Flotcharts (10-16 C) befinden. Sobald ein Wert den Bereich des Flotcharts nach unten verläßt, also kleiner als 10 Grad Celsius beträgt, meint das Skript, dass dieser Wert größer als der andere ist, obwohl der Wert ja kleiner als 10 und der andere Wert noch im Chartbereich (10 - 16) und damit eigentlich größer ist.
    Der Schnittpunkt -der Linie der Temperatur, die dann kleiner als 10 Grad ist- mit der Y Achse (Zeit) stimmt genau mit dem Zeitpunkt der dann falschen Telegrammmeldung überein. Der Fehler ist so exakt reproduzierbar.

    Es ist also so, dass das Blocky Skript die Werte aus dem Flotchart vergleicht und nicht die Werte des eigentlichen Objekts.

    Liegt hier ein allgemeiner Fehler vor oder habe ich irgendetwas falsch gemacht?

    on({id: 'netatmo.0.Station.Bad.Temperature.DewPoint', change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState("netatmo.0.Station.Bad.Temperature.DewPoint").val > getState("netatmo.0.Unnamed.Temperature.DewPoint").val) {
        setStateDelayed('admin.0.Datenpunkte.Badtüre', 1, false, parseInt(0, 10), false);
      } else {
        setStateDelayed('admin.0.Datenpunkte.Badtüre', 0, false, parseInt(0, 10), false);
      }
    });
    
    
    1 Antwort Letzte Antwort
    0
    • O Olivbus

      @cash sagte in Script vergleicht Werte falsch:

      log(typeof getState("weatherunderground.0.forecast.0d.tempMax").val);
      ```` `

      richtig, es kommt string raus. Wie kann ich das ändern? Unter Objekt steht, wie ich oben gezeigt habe Zahl.

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #7

      @Olivbus
      so vielleicht ? (nicht probiert)

      Bildschirmfoto 2019-08-22 um 23.40.11.png

      setState("Object ID", parseFloat(getState("ID auswählen").val));
      
      paul53P 1 Antwort Letzte Antwort
      0
      • cashC Offline
        cashC Offline
        cash
        Most Active
        schrieb am zuletzt editiert von
        #2

        Dann werden die Felder keine Zahlen sondern einen String enthalten und dort ist 9 größer als 17 da dort nur das erste Zeichen verglichen wird bzw so lange wie es eindeutig ist.

        Bei 17 und 19 klappt es also weil 1 und 1 identisch ist also prüft er 7 und 9.

        Am Besten also den string in eine Zahl umwandeln

        O 1 Antwort Letzte Antwort
        0
        • cashC cash

          Dann werden die Felder keine Zahlen sondern einen String enthalten und dort ist 9 größer als 17 da dort nur das erste Zeichen verglichen wird bzw so lange wie es eindeutig ist.

          Bei 17 und 19 klappt es also weil 1 und 1 identisch ist also prüft er 7 und 9.

          Am Besten also den string in eine Zahl umwandeln

          O Offline
          O Offline
          Olivbus
          schrieb am zuletzt editiert von Olivbus
          #3

          ![Bild Text](aea543f9-52e7-4826-afa0-160bfb1232cc-image.png Bild Link)
          Hört sich logisch an, aber der Wert der Temperatur ist als Zahl angelegt

          1 Antwort Letzte Antwort
          0
          • cashC Offline
            cashC Offline
            cash
            Most Active
            schrieb am zuletzt editiert von
            #4

            Ergänze mal in Deinen Script eine log mit typeof sollte etwa so aussehen:

            log(typeof getState("weatherunderground.0.forecast.0d.tempMax").val);
            ```` `

            Da kommt dann im Log ein string wenn ich recht habe. Falls dort number stehen sehen wir weiter. Sehr unwahrscheinlich...

            O 1 Antwort Letzte Antwort
            0
            • cashC cash

              Ergänze mal in Deinen Script eine log mit typeof sollte etwa so aussehen:

              log(typeof getState("weatherunderground.0.forecast.0d.tempMax").val);
              ```` `

              Da kommt dann im Log ein string wenn ich recht habe. Falls dort number stehen sehen wir weiter. Sehr unwahrscheinlich...

              O Offline
              O Offline
              Olivbus
              schrieb am zuletzt editiert von
              #5

              @cash sagte in Script vergleicht Werte falsch:

              log(typeof getState("weatherunderground.0.forecast.0d.tempMax").val);
              ```` `

              richtig, es kommt string raus. Wie kann ich das ändern? Unter Objekt steht, wie ich oben gezeigt habe Zahl.

              paul53P dslraserD 2 Antworten Letzte Antwort
              0
              • O Olivbus

                @cash sagte in Script vergleicht Werte falsch:

                log(typeof getState("weatherunderground.0.forecast.0d.tempMax").val);
                ```` `

                richtig, es kommt string raus. Wie kann ich das ändern? Unter Objekt steht, wie ich oben gezeigt habe Zahl.

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #6

                @Olivbus sagte:

                Wie kann ich das ändern?

                Blöcke "Konvertierung": nach Zahl

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • O Olivbus

                  @cash sagte in Script vergleicht Werte falsch:

                  log(typeof getState("weatherunderground.0.forecast.0d.tempMax").val);
                  ```` `

                  richtig, es kommt string raus. Wie kann ich das ändern? Unter Objekt steht, wie ich oben gezeigt habe Zahl.

                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #7

                  @Olivbus
                  so vielleicht ? (nicht probiert)

                  Bildschirmfoto 2019-08-22 um 23.40.11.png

                  setState("Object ID", parseFloat(getState("ID auswählen").val));
                  
                  paul53P 1 Antwort Letzte Antwort
                  0
                  • dslraserD dslraser

                    @Olivbus
                    so vielleicht ? (nicht probiert)

                    Bildschirmfoto 2019-08-22 um 23.40.11.png

                    setState("Object ID", parseFloat(getState("ID auswählen").val));
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #8

                    @dslraser sagte:

                    so vielleicht ?

                    Im Prizip ja, aber für die beiden Werte, die verglichen werden.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • O Offline
                      O Offline
                      Olivbus
                      schrieb am zuletzt editiert von
                      #9

                      Ihr seid wirklich Klasse. So funktioniert es.
                      Vielen, vielen Dank Euch allen.

                      1 Antwort Letzte Antwort
                      0
                      • NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #10

                        Wenn ein Thema gelöst wurde bitte den Beitrag der die Lösung beinhaltet als gelöst Markieren. -> 3 Punkte Menü rechts unten am Beitrag -> Mark this post as the correct answer

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        sigi234S O 2 Antworten Letzte Antwort
                        0
                        • NegaleinN Negalein

                          Wenn ein Thema gelöst wurde bitte den Beitrag der die Lösung beinhaltet als gelöst Markieren. -> 3 Punkte Menü rechts unten am Beitrag -> Mark this post as the correct answer

                          sigi234S Online
                          sigi234S Online
                          sigi234
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von sigi234
                          #11

                          @Negalein sagte in (gelöst)Script vergleicht Werte falsch:

                          Wenn ein Thema gelöst wurde bitte den Beitrag der die Lösung beinhaltet als gelöst Markieren. -> 3 Punkte Menü rechts unten am Beitrag -> Mark this post as the correct answer

                          Das Blau ist bei mir schwer lesbar.........

                          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Immer Daten sichern!

                          1 Antwort Letzte Antwort
                          0
                          • NegaleinN Negalein

                            Wenn ein Thema gelöst wurde bitte den Beitrag der die Lösung beinhaltet als gelöst Markieren. -> 3 Punkte Menü rechts unten am Beitrag -> Mark this post as the correct answer

                            O Offline
                            O Offline
                            Olivbus
                            schrieb am zuletzt editiert von
                            #12

                            @Negalein Bei mir steht unter dem 3 Punktemenü unter dem Beitrag nur Lesezeichen (Herzchen) und Beitrag melden.

                            NegaleinN 1 Antwort Letzte Antwort
                            0
                            • O Olivbus

                              @Negalein Bei mir steht unter dem 3 Punktemenü unter dem Beitrag nur Lesezeichen (Herzchen) und Beitrag melden.

                              NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #13

                              @Olivbus sagte in Script vergleicht Werte falsch:

                              @Negalein Bei mir steht unter dem 3 Punktemenü unter dem Beitrag nur Lesezeichen (Herzchen) und Beitrag melden.

                              Ja, weil die passende Antwort bereits als Lösung markiert wurde.
                              Siehst du an dem grünen Rahmen des Beitrags.

                              ° Node.js: 20.17.0 NPM: 10.8.2
                              ° Proxmox, Ubuntu 22.04.3 LTS
                              ° Fixer ---> iob fix

                              1 Antwort Letzte Antwort
                              0
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              793

                              Online

                              32.4k

                              Benutzer

                              81.5k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe