Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Hilfe] json auswerten und in Objekte scheiben

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[Hilfe] json auswerten und in Objekte scheiben

[Hilfe] json auswerten und in Objekte scheiben

Scheduled Pinned Locked Moved Skripten / Logik
4 Posts 2 Posters 3.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    andyb
    wrote on last edited by
    #1

    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
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      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
      
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      1
      • A Offline
        A Offline
        andyb
        wrote on last edited by
        #3

        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
        0
        • paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

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

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          601

          Online

          32.4k

          Users

          81.3k

          Topics

          1.3m

          Posts
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          ioBroker Community 2014-2025
          logo
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Recent
          • Tags
          • Unread 0
          • Categories
          • Unreplied
          • Popular
          • GitHub
          • Docu
          • Hilfe