Nachkommastellen bei Temperaturen anzeigen

  • Hallo,


    ich bin vor einiger Zeit zufällig auf dieses Forum gestoßen und habe mich auch gleich angemeldet. Seitdem lese ich hier regelmäßig mit und habe schon viele neue Ideen entdeckt und teilweise auch für mich umgesetzt. Vielen Dank an alle, die hier so fleißig Supporten, super finde ich auch den freundlichen Umgangston.


    Nun aber zu meinem Problem, für das ich bisher keine Lösung gefunden habe.

    Dank sschuste (ohne dein Beispiel hätte ich das nicht hinbekommen) habe ich Node-RED installiert und einen Temperatursensor den ich über einen http-request abfrage als Homekit Sensor eingerichtet. Das funktioniert auch, nur hätte ich auch gerne die Nachkommastellen mit angezeigt, diese werden aber leider immer angeschnitten.


    Der httpt-request kommt so bei mir an.


    "temp:45,6"


    Über dIe folgende Funktion frage ich die aktuelle Temperatur ab und übergebe diesen Wert an meinen Sensor, was soweit auch funktioniert. Die Funktion stammt nicht von mir, die habe ich so gegoogelt.


    Var output = msg.payload.split (":");

    var temp = parselnt(output[1]);

    var Temperatur = {payload: {"CurrentTemperature": temp}};

    return Temperatur;


    Das Ergebnis sieht dann so aus.


    { CurrentTemperature : 45}



    Hat jemand eine Idee, wie ich auch die Nachkommastellen angezeigt bekomme? Wäre für jede Hilfe dankbar.


    Liebe Grüße

    Erwin

  • parselnt macht aus jeder Kommazahl einen einfachen Integerwert. Und warum ist das so? Weil es parselnt eigens zu diesem Zeck entwickelt wurde. Versuchs mal mit parseFloat.

  • sschuste vielen Dank für den Hinweis, das ist mir beim kopieren gar nicht aufgefallen. :saint:


    Leider ist das Ergebnis nach wie vor ohne Nachkommastellen, hast du sonst noch eine Idee, was ich versuchen könnte?

  • "temp:45,6"

    Steht da echt ein Komma drin? Das wird nicht als Kommazahl akzeptiert, sondern nur 45.6.

  • Jetzt habe ich das Problem bei der Übergabe mit folgender Funktion gelöst.


    var wert = msg.payload.replace(',' , '.');

    var output = wert.split (":");

    var temp = parseFloat(output[1]);

    var Temperatur = {payload: {"CurrentTemperature": temp}};

    return Temperatur;


    Ergebnis

    { CurrentTemperature : 45.4 }


    Leider zeigt der Sensor jetzt aber die Nachkommastelle nicht an. ;(

  • Dann weiß ich da auch nicht weiter.

  • Problem gelöst. :S
    Das Plugin node-red-contrib-homekit-bridged hat in der aktuellen Version 0.8.0 einen Fehler. Ich habe die aktuelle DEV installiert und nun funktioniert alles so wie es soll.

    sschuste vielen Dank für deine Unterstützung, ohne den Hinweis auf parseFloat wäre ich nicht weitergekommen. Ich hätte die Funktion vermutlich noch hundertmal durchgelesen und den Fehler nicht gesehen. :(