Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. MQTT data für Influxdb in "value" konvertieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MQTT data für Influxdb in "value" konvertieren

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

      Hallo in die Runde,
      folgendes Problemchen. Ich sende per MQTT Daten von TFA Dostmann Temperatursensoren an den iobroker. Dort tauchen sie auch schoen auf als topic: "rtl_433/SENSORID/temperatur_C oder /humidity".

      Die Luftfeuchtigkeit erscheint schön als "Wert". z.b. "69".

      Nur die Temperatur selbst kommt als String an. z.B. "21.2 C".

      Nun möchte ich gern die Temperaturwerte in die influxdb übernehmen, was als String nicht sonderlich sinnvoll ist. Somit würde ich nun versuchen über Node Red für "jeden Sensor , any" der diesen Temperaturwert als String schickt, den String um " C" zu bereinigen und einen "Wert" draus zu machen und das Ganze dann wieder als MQTT-Output liefern. Da ich ein rechter Newbie im Bereich NodeRed und Functions bin und das gleich auch für RegEx gilt mal die Frage hier:

      Habe mal angefangen mit :

      {payload:parseFloat(msg.payload[".*"].rawValue.replace([ C],"")

      aber das funktioniert nicht und weiterhin würde ich ja auch gern noch die SensorID wieder mit Ausspucken ...

      Also

      input: rtl_433/SENSORID/temperatur_C (String)
      output: rtl_433/SENSORID/temperatur (Value)

      Ich hoffe sehr auf jemanden, der mir einen Hinweis gibt bzw. das mal zusammentippt, weil ich nicht davon ausgehe dass das schwierig ist 🙂
      Vielen Dank schon einmal.
      Steffen

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @steffen_muc last edited by MCU

        @steffen_muc
        So vielleicht?

        iobroker-blockly-temp-werte-aus-string.PNG

        var TEMP_STR, TEST, VAR_TEMP_STR, Stelle;
        
        // Beschreibe diese Funktion …
        function WERT_ERSTELLEN(TEMP_STR) {
         console.log(TEMP_STR);
         Stelle = TEMP_STR.indexOf(' ') + 1;
         VAR_TEMP_STR = parseFloat((TEMP_STR.slice(0, Stelle - 1)));
         return VAR_TEMP_STR;
        }
        
        
        TEST = WERT_ERSTELLEN('21.2 C');
        console.log(TEST);
        
        

        Für Node-Red: replace(/ C/g,"")

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

        Support us

        ioBroker
        Community Adapters
        Donate

        1.2k
        Online

        31.7k
        Users

        79.7k
        Topics

        1.3m
        Posts

        2
        2
        285
        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