Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Werteliste, Gedenkenfehler?

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Problem mit Werteliste, Gedenkenfehler?

    Ich komme nicht dahinter, warum die Glastaster II Smart meine VOC Werte (ppm) nicht hundertprozentig richtig darstellen.

    Ich lese die 1Wire-VOC-Werte in Edomi aus. Beispiel hier ist das Ergebnis 1903,9ppm. Das wird in ein iKO gespeichert und auf einer GA mit Werteliste ausgegeben (50er Schritte). Sprich, auf die GA (DPT 9.008) kommt 1900 und das kann ich so auch mit Edomi an der GA auslesen (Lesen und Live-Wert), also eigentlich perfekt. Die Glastaster zeigen aber bei "Statuswert 2 (Raumluftqualität [ppm] (DPT 9.008)" auf dem Taster selber 1899ppm.

    Im Grunde ist eine Abweichung von 1 ja bei VOC zu vernachlässigen, ich wollte das aber aufgrund der besseren Ablesbarkeit so anzeigen.

    Lese ich nun mit dem ETS Gruppenmonitor aus, sind es 1899,52ppm. Direkt danach nochmal schnell in Edomi ausgelesen, sind es 1903,9 (iKO) und 1900 (GA). Hab ich irgend etwas übersehen?

    Vielleicht habe ich die Wertliste falsch verstanden. Ich dachte und hoffte, sie nimmt den nächsten Wert und schreibt das verändert auf den Bus. Kann es sein, dass nur die Anzeige in Edomi davon betroffen ist und ich in der Logik die Werte runden müsste?

    Was mich daran stutzig macht, ist dass 4 Glastaster immer 1ppm zu wenig zeigen. Wäre die Werteliste nur Edomi intern, würde ich beispielsweise nach dem duschen nicht 1899ppm, sondern 1919ppm erwarten, was es sonst immer war. aber auch da war es heute morgen 1899ppm.

    Vielleicht hat ja jemand von euch einen Tipp, wo der Fehler liegt.

    Viele Grüße
    Nils

    Edit:
    Warum sagt mir denn niemand, dass der Titel einen Rechtschreibfehler enthält (kann ich leider nicht editieren)

    Angehängte Dateien
    Zuletzt geändert von Marino; 18.03.2019, 06:44.

    #2
    Nun wird es komisch und ich verstehe es echt nicht.

    Ich habe versucht, zu runden, auf 100er. Das klappt das irgendwie nicht. Ich habe die Werteliste aus der GA entfernt.

    Nun kommt ausgelesen und errechnet 1144ppm raus. Okay. Das gerundet, 1100ppm gibt er aus ("KO: Eingangswert (Ausgangsbox) zuweisen"). Lese ich nun live den Wert der GA kommt dabei 1099,52ppm heraus und der Glastaster zeigt 1099ppm.

    Vergleiche ich das mit gestern, ist der Wert der GA, egal ob mit Werteliste oder vorher gerundet und ohne Wertliste in der GA, komischerweise um 0,48ppm zu niedrig und wird daher falsch angezeigt. Und andere Verweise für die GA gibt es nicht, abgesehen von Anzeigen in der Visu.

    Kann sich da wirklich niemand einen Reim daraus machen, warum der Wert nicht der ist, der er sein sollte?

    Viele Grüße
    Nils

    Kommentar


      #3
      Hast du mal versucht auf 1900.000 zu setzten?
      Gruß
      Michael

      Kommentar


        #4
        Nun, wenn ich mir den Code für DPT9 so ansehe, gibt es da einfach kein 1900.

        1900.7 ist nach Formelumrechnung: 1899.52 ppm
        1900.8 schon 1900.80 ppm

        Code:
               my $sign = ($value <0 ? 0x8000 : 0);
        my $exp  = 0;
        my $mant = 0;
        
        $mant = int($value * 100.0);
        while (abs($mant) > 0x7FF)
        {
            $mant /= 2;
            $exp++;
        }
        $numval = $sign | ($exp << 11) | ($mant & 0x07ff);
        
        
        $hexval = sprintf("00%.4x",$numval);
        eine bessere Auflösung gibt DPT9 mit seinen 2 Byte einfach nicht her ;-)...

        Man könnte natürlich runden anfangen, aber warum sollten das die Hersteller des GT machen?

        sG
        Joe
        Zuletzt geändert von givemeone; 19.03.2019, 21:38.

        Kommentar


          #5
          @ gulp2k
          Nein, ich hatte lediglich noch einmal die Nachkommastellen auf 0 gesetzt. Naiver weise bin ich davon ausgegangen, dass 1900 auch 1900.000 ist, vor allem da gerundet und mit Werteliste.

          @ givemeone Das verstehe ich leider nicht ganz. Wieso gibt es keine 1900 geben soll? Bei z.B. 1100 ist es ja genauso, nur 800 weniger, als bei den 1900, aber das gleich Phänomen.

          1900.7 ist nach Formelumrechnung: 1899.52 ppm
          1900.7 schon 1900.80 ppm
          Wieso ist 1900.7 einmal 1899.52 und einmal 1900.80?

          Wenn Du sagst, es liegt an der Auflösung, dann kann z.B. die 1900 nicht dargestellt werden, da ein Inkrement 1,28 sind (1900,8-1899,52)? Bei Deinem angefügten Code habe ich noch nicht so richtig durchblickt, wie das funktioniert


          Laut KNX ist doch der DPT9 mit ID 9.008 für ppm für Luftqualität und hat einen Bereich von 0 bis 670760 ppm mit einer Auflösung von 0,01ppm (Seite 32)
          http://www.sti.uniurb.it/romanell/Do....5.00%20AS.pdf

          (Link ist von hier aus dem Forum genommen: https://knx-user-forum.de/forum/öffe...-es-eine-liste)


          Laut KNX sollte das mit dem Datentyp doch funktionieren. Andererseits... kann man mit 2 Byte (16 Bit) nicht nur 65536 Werte darstellen (z.B. 0...65535)? Dann könnte man damit auf keinen Fall die 670760 darstellen und erst Recht nicht mit einer Auflösung von 0,01? Das passt irgendwie nicht zusammen.

          Vielleicht kannst Du ja noch Licht ins Dunkel bringen?

          Viele Grüße
          Nils





          Kommentar


            #6
            Zitat von Marino Beitrag anzeigen
            Laut KNX ist doch der DPT9 mit ID 9.008 für ppm für Luftqualität und hat einen Bereich von 0 bis 670760 ppm mit einer Auflösung von 0,01ppm (Seite 32)
            http://www.sti.uniurb.it/romanell/Do....5.00%20AS.pdf
            Scroll mal ein bisschen hoch da steht die Umrechnungsformel. (ist leider etwas verklausuliert).
            Gruß
            Michael

            Kommentar


              #7
              Stimmt, da gibt es eine Formel zu. Die hatte ich nicht gesehen, da ich dachte, sie geben die Werte ja schon direkt an. Hätte auffallen müssen, da der Wertebereich nicht in 2 Byte passt. Ist ein wenig unlogisch das dann anzugeben in der Tabelle finde ich, da ich ja auch keine Auflösung von 0,01ppm habe.

              (0,01*1484)*2^(7) = 1899,52
              (0,01*1485)*2^(7) = 1900,8

              Okay, da hätte ich die Zahlen.

              (0,01*M)*2^(E) steht da ja mit M [-2048...2047] und E [0...15].

              Wofür stehen M und E? Ich habe für die Werte da ein wenig geraten und sehe, dass es zwischen 1899,52 und 1900,8 nichts gibt.



              Somit kann der GT also 1900 nicht anzeigen. Er könnte 1899 richtig runden, das wären 1900, aber anscheinend werden Nachkommastellen ignoriert. Da scheine ich wohl nichts machen zu können, schade.
              Zuletzt geändert von Marino; 19.03.2019, 21:40.

              Kommentar


                #8
                Das ist die Mantisse und der Exponent. Die werden im Datenpunkttyp festgelegt. Warum rundest Du nicht in EDOMI, und schickst es auf einem anderen Datenpunkttyp wieder an den Taster?
                Mfg Micha
                Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

                Kommentar


                  #9
                  vento66
                  Ich habe ja in Edomi gerundet. Einmal durch Wertetabelle und einmal mit LBS19000361. Muss ich das denn nicht als DPT9 auf die GA schicken? Der GT erwartet doch 2 Byte (DPT9.008)? Jedenfalls habe ich das für den Wert ja in der Applikation eingestellt, da ich ppm gewählt habe.



                  Für Mantisse und Exponent habe ich bisher nur die allgemeine Formel gefunden, nicht aber dass es festgelegt wurde, da muss ich wohl noch mal suchen...

                  Kommentar


                    #10
                    Dann schicke es doch als Text.....
                    Mfg Micha
                    Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

                    Kommentar


                      #11
                      Ich habe das eben mal getestet und habe in Edomi die GA auf DPT14 gestellt und einmal auf DPT16 (14 Byte String). Beide Male Edomi neu aktiviert, damit Änderungen in den GA's übernommen werden.

                      Ich konnte senden, was ich wollte, der angezeigte Wert auf dem GT hat sich nicht geändert. Als ich aber wieder auf DPT9 stellte und erneut aktivierte, hat er jede Änderung sofort angezeigt.

                      Das scheint also leider nicht zu funktionieren, womit ich dann wohl keine Möglichkeit zu haben scheine, das richtig darzustellen, wie ich das möchte.

                      Es sei denn, jemand hat noch einen Tipp.

                      Vielen Dank auf jeden Fall schon einmal für Eure Hilfe. Das mit den Datenpunkten ist mir nun ein wenig klarer geworden und zumindest verstehe ich nun, warum er die Werte nicht anzeigen kann, auch wenn ich noch kein sinnvolles Workaround dafür habe. Die Werte für Mantisse und Exponent für den DPT9 (9.008) suche ich hingegen noch , aber für heute ist hier erst einmal Schluss.

                      Viele Grüße
                      Nils

                      Kommentar

                      Lädt...
                      X