Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Hilfe] json auswerten und in Objekte scheiben

    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

    [Hilfe] json auswerten und in Objekte scheiben

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

      Hallo,

      ich brech mir gerade ziemlich einen ab und befürchte es geht viel einfacher.

      Ich möchte meinen 3D Drucker einbinden. Per MQTT bekomme ich die gewünschten Informationen als json.

      Nun hab ich leider nur Ahnung von Blockly und mache nun dort mit "suche in Text" und "nehme Teil aus Text" und "schreibe in Objekt" die Auswertung der json Objekte. Das würde ein riesiges, unübersichtliches Blockly ergeben. Geht doch bestimmt auch einfacher und bitte bitte hilf mir einer 😄

      Ziele wäre es, für jede Position im json ein Objekt zu generieren und regelmäßig die Werte eintragen

      Die Beitrage im Forum welche ich gefunden habe, haben mich leider nicht weiter gebracht (weil ich halt keine Ahnung hab).

      Das wäre beispielhaft ein json welche als MQTT Datenpunkt ankommt:

      mqtt.0.temperature.bed {"_timestamp": 1523023292, "actual": 60.0, "target": 60.0}

      Also will ich darauf machen

      javascript.0.Drucker3D.BedTempActual

      javascript.0.Drucker3D.BedTempTarget

      javascript.0.Drucker3D.BedTempTimestamp

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Wenn der Datenpunkt "mqtt.0.temperature.bed" den JSON-String enthält, dann versuche mal

        function getBedTemp() {
           var obj = JSON.parse(getState('mqtt.0.temperature.bed').val);
           setState('javascript.0.Drucker3D.BedTempActual', obj.actual, true);
           setState('javascript.0.Drucker3D.BedTempTarget', obj.target, true);
           setState('javascript.0.Drucker3D.BedTempTimestamp', obj['_timestamp'], true);
        }
        
        getBedTemp(); // Aufruf bei Skriptstart
        
        
        1 Reply Last reply Reply Quote 1
        • A
          andyb last edited by

          Danke, Temperaturen klappen. Der _timestamp leider nicht

          1586_2018-04-06_18_10_18-iobroker.admin.jpg
          18:09:39.113 [info] javascript.0 Start javascript script.js.aktiv.Drucker.test

          18:09:39.114 [warn] javascript.0 at getBedTemp (script.js.aktiv.Drucker.test:5:4)

          18:09:39.115 [warn] javascript.0 at script.js.aktiv.Drucker.test:8:1

          18:09:39.115 [info] javascript.0 script.js.aktiv.Drucker.test: registered 0 subscriptions and 0 schedules

          So klappts aber auch nicht

          setState('javascript.0.Drucker3D.BedTempTimestamp', obj._timestamp, true);

          Den brauch ich aber glaub ich auch, da er nicht immer mit dem Zeitstempel des MQTT objects übereinstimmt und ich auch mit den unterschiedlichen timestamps Zeitdifferenzen ausrechnen will.

          Edit: die states automatisch zu erzeugen, welche er in der json findet geht auch?

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            Es müsste mit beiden Schreibweisen funktionieren. Stimmt die Datenpunkt-ID "javascript.0.Drucker3D.BedTempTimestamp" ? (Groß-/Kleinschreibung)

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

            Support us

            ioBroker
            Community Adapters
            Donate

            875
            Online

            31.7k
            Users

            79.8k
            Topics

            1.3m
            Posts

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