Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node Red Script für Temperatur Ausgabe

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node Red Script für Temperatur Ausgabe

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      testperson last edited by

      Hallo liebe Gemeinde

      Ich suche ein Script welches ich als Funktion in Node Red einfüge um dann nur den reinen Temperatur Wert zu erhalten.

      Dieser Wert wird mir zur Zeit im Debug heraus gegeben:54,0 °C

      Davon brauche ich wie gesagt nur die 54,0

      Ich habe zwar ein Script hier gefunden, geht bei mir aber nicht, Wert 0 kommt dabei raus. http://forum.iobroker.net/viewtopic.php?f=32&t=4102

      if (typeof msg.payload === 'string') {

      var m = msg.payload.match(/(\d+,?\d*)/);

      msg.payload = m ? parseFloat(m[1].replace(',', '.')) : msg.payload;

      }

      return msg;

      Vorab schon mal ein Danke…

      1 Reply Last reply Reply Quote 0
      • D
        DerUwe last edited by

        Hi

        Ich bin da nicht der Super Experte, aber der msg.payload.match(/(\d+,?\d*)/); ist eine regex, also sowas wie ein Filter.

        Theoretisch müsste ein /> * °/ schon etwas mehr finden. Man kann auch die > ° mit ausfiltern, aber da hört bei mir dann

        das gefährliche Halbwissen auf 🙂

        Suche mal nach regulären Ausdrücken im web…

        LG

        Uwe

        1 Reply Last reply Reply Quote 0
        • T
          testperson last edited by

          Hab es selber hinbekommen. Das Script war nicht richtig, zumindest für mein Zweck.

          So geht es:

          var m = msg.payload.match(/(\d+,?\d+)/);

          if (!m) m = msg.payload (/(\d+)/);

          msg.payload = m ? parseFloat(m[1].replace(',', '.')) : msg.payload;

          return msg;

          Endlich werden mir die Temperaturen richtig angezeigt. Schade nur das mir hier keiner helfen konnte.

          1 Reply Last reply Reply Quote 0
          • D
            DerUwe last edited by

            Hi

            Aber dafür hast du der Nachwelt wieder ein nettes Snippet da gelassen.

            Thank u well 🙂

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

            Support us

            ioBroker
            Community Adapters
            Donate

            1.0k
            Online

            31.7k
            Users

            79.8k
            Topics

            1.3m
            Posts

            2
            4
            2465
            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