Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. JSON Parse ohne vorherige Änderung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON Parse ohne vorherige Änderung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Steffen Küllmer
      Steffen Küllmer last edited by

      Hi

      Ich habe einige Tasmota-Senoren per MQTT laufen. Nun wollte ich einen Datenpunkt erstellen, der die aktuelle IP aus "INFO2" herauslöst und im Userbereich speichert.

      Leider finde ich nur Skripte die auf eine Änderung triggern, und mit Java hab ich zuvor noch nie zu tun gehabt, warscheinlich steige ich deßhalb auch nicht mit der Syntax durch.

      Mein Anstatz war folgender:

              const idSensor_01_Info2       = 'mqtt.0.Tasmota.01_BME680.INFO2';
              var Tasmota_01_IP_Address     = '0_userdata.0.Datenpunkte.Tasmota.Tasmota_01_IP_Address';
      
                 on(idSensor_01_Info2, function(dp) {          // triggert bei Wertänderung
                  let obj = JSON.parse(dp.state.val);
                             
                  setState(Tasmota_01_IP_Address,   obj.IPAddress, true);
                  });
      

      Bei allen Messwerten funktioniert das, jedoch ändert sich INFO2 nie, außer man ändert die IP manuell im Sensor.

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Steffen Küllmer last edited by paul53

        @steffen-küllmer sagte: ändert sich INFO2 nie

        Dann ohne Trigger bei Skriptstart:

        const idSensor_01_Info2     = 'mqtt.0.Tasmota.01_BME680.INFO2';
        const Tasmota_01_IP_Address = '0_userdata.0.Datenpunkte.Tasmota.Tasmota_01_IP_Address';
         
        const obj = JSON.parse(getState(idSensor_01_Info2).val);                  
        setState(Tasmota_01_IP_Address, obj.IPAddress, true);
        
        Steffen Küllmer 1 Reply Last reply Reply Quote 0
        • Steffen Küllmer
          Steffen Küllmer @paul53 last edited by

          Vielen Dank @paul53!!!
          Ich hab mir echt Stunden lang die Finger wund gegoogelt, aber diese elegante Lösung hab ich nicht gefunden.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          583
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          136
          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