Ankündigung

Einklappen
Keine Ankündigung bisher.

Temperaturen vom KNX Bus werden mit vielen Nachkommastellen angezeigt

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

    Temperaturen vom KNX Bus werden mit vielen Nachkommastellen angezeigt

    Hallo,

    bei mir werden die Temperaturen vom KNX Bus teilweise komisch ausgelesen. Im Log steht dann z.B. sowas:

    HTML-Code:
    Temp_Buero changed from 24.5 to 24.400000000000002
    Das ist soweit nicht so schlimm da ich mir in der Sitemap nur eine Nachkommastelle anzeigen lasse. Aber wenn ich Alexa frage wie die Temperatur im Büro ist dann liest sie mir brav alle Nullen einzeln vor

    Wie kann man das umgehen? Der Bus sendet komischerweise auch nur 24.4 als Wert (laut ETS).

    #2
    Das liegt daran, dass es sich um einen Float wert handelt, weshalb es zu solchen Rundungsfehlern kommt. Keine Ahnung, wie man Alexa hier begrenzen kann.

    Kommentar


      #3
      Ja es müsste halt schon im OH begrenz werden da liegt ja der Fehler. Vom Bus kommt 24.4 und da könnte die DTP Einstellung im Bindung falsch sein. Aber das übersteigt etwas meine Kompetenz Vielleicht mach ich das Thema mal in der OH Community auf.

      Kommentar


        #4
        Nein, vom Bus kommt ein Float-Wert, der näherungsweise 24.4 entspricht, openHAB verwendet aber den exakten Wert. Man kann sich darüber streiten, ob openHAB nun besser Floatwerte auf 1 - x Stellen nach dem Komma begrenzen sollte, mindestens müsste das dann aber konfigurierbar sein, da es durchaus Fälle gibt, bei denen mehrere Stellen relevant sind. Ein Fehler ist das Verhalten von openHAB aber nicht, denn der Zahlenwert wird exakt so weiter gegeben, wie er empfangen wird - Der Rundungsfehler ist inhärent und kommt schon von knx-Seite. Dass das sonst nie auffällt, liegt einfach daran, dass die Auswertung wertend arbeitet.

        Kommentar


          #5
          Ah okay das ergibt Sinn. Sollte dann aber nicht das Binding wenn man den DTP 9.001 für Temperatur angibt automatisch die Nachkommastellen begrenzen? Der DTP ist nach KNX Standard mit 2 Nachkommastellen definiert.

          Kommentar


            #6
            das Problem ist hier Float. openHAB müsste intern Float mit hoher Genauigkeit verwenden, um solche Zahlenwerte korrekt wiederzugeben, was dann mit ziemlicher Sicherheit einen Eingriff in den Core bedeutet. openHAB kennt ja nur den Itemtyp Number, nicht ein DPT9.001 oder Number:FloatWith2Decimals...

            Grundsätzlich wäre es aber sicher sinnvoll, das anzufassen, da alle Bindings mit solchen Problemen kämpfen, nicht nur knx. Du kannst ja mal Kai danach fragen

            Kommentar


              #7
              Okay, hab schon ein paar Probleme die ich selber habe als Issue im Github gefunden. Fehlt leider hier und da noch was. Aber wofür wird dann genau die DTP Definition genutzt wenn sowieso nur der Wert genutzt wird. Ist das nur für die Kommunikation mit dem Bus wichtig?

              Kommentar


                #8
                Ja, beim DPT geht es nur darum, dass openHAB die Daten korrekt interpretiert bzw. der passenden Eigenschaft (oder Parameter des Channels/des Items) zuordnen kann.

                Kommentar


                  #9
                  Gibt es für das Nachkomma-Thema schon eine Lösung?
                  Bei mir wird aus einem KNX-Wert 8,7 (Datentyp 9.005) im ioBroker ein 8.700000000000001. Das Problem tritt nicht nur bei OH auf, sondern auch im ioBroker.
                  Man kann sicherlich eine eigene Variable anlegen und per Script runden, aber für viele Werte benötigt man dann viele Scripte.

                  Kommentar


                    #10
                    Man kann die Anzahl der Nachkommastellen in der Items-Datei festlegen.

                    Code:
                    Number TKeller_Ist   "Keller Temperatur Ist [%.1f °C]"
                    Im obigen Beispiel ist es eine Stelle.
                    - openHAB 3.1 auf WIN10/64

                    Kommentar


                      #11
                      Wobei das nur die Anzeige betrifft

                      Kommentar

                      Lädt...
                      X