Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. JSON mit Blockly auswerten

    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 mit Blockly auswerten

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

      Hallo in's Forum,
      ich betreibe einen Shelly Plus 2PM-Doppelschalter über MQTT (NICHT mit dem Shelly-Adapter, sondern mit dem MQTT-Adapter), der auch zwei Eingänge hat. Diese Eingänge können als "Switch" oder "Button" konfiguriert werden - ich habe sie als "Button" konfiguriert, damit ich auswerten kann, ob jemand den Taster ein, zwei oder drei Mal gedrückt hat. Diese Information wird im Datenpunkt "events/rpc" (in diesem Fall "mqtt.0.shellyplus2pm-d48afc7dbd1c.events.rpc" als JSON abgelegt und hat folgendes Format:

      {
        "src": "shellyplusi4-c4d8d554856c",
        "dst": "shellyplusi4-c4d8d554856c/events",
        "method": "NotifyEvent",
        "params": {
          "ts": 1742530641.42,
          "events": [
            {
              "component": "input:0",
              "id": 2,
              "event": "single_push",
              "ts": 1742530641.42
            }
          ]
        }
      }
      

      Ich möchte dieses JSON mit einem Blockly-Skript auswerten, und zwar folgendermaßen:
      Zuerst prüfen, ob das Attribut "component" vorhanden ist, um Fehler bei weiteren Abfragen zu vermeiden.
      Wenn "component" vorhanden ist, will ich prüfen ob es den Wert "Input:0" oder "Input:1" hat. Und wenn einer dieser beiden Werte enthalten ist, möchte ich das Attribut "event" auslesen und den ausgelesenen Wert abspeichern.
      "event" kann die Zeichenketten "single_push", "double_push", "triple_push", "btn_down" und "btn_up" annehmen.
      Ich habe mir die folgende Blockly-Lösung ausgedacht:

      Bildschirmfoto vom 2025-03-23 18-14-34.png

      Aber leider funktioniert das nicht, denn offenbar habe ich etwas bei den Attributen oder deren Schreibweise falschgemacht. Denn obwohl das Attribut "params.events[0].component" vorhanden ist, wird die Bedingung "params.events[0].component /= null" nicht erfüllt. (Achtung: "events" ist ein Array, daher [0] als Index).
      Kann mir jemand helfen und mir sagen, was ich an meinem Blockly ändern muss, damit ich die gewünschten Attribute auslesen kann?

      mickym paul53 3 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @KlausStoertebeker last edited by mickym

        @klausstoertebeker Ich hab Dir doch die Lösung mit dem Alias gezeigt - das ging bei mir. Ich bin nur der Meinung, du solltest unter status suchen.

        https://forum.iobroker.net/post/1259702

        KlausStoertebeker 1 Reply Last reply Reply Quote 0
        • KlausStoertebeker
          KlausStoertebeker @mickym last edited by KlausStoertebeker

          @mickym

          Das hat ja auch funktioniert, ich habe auch gerade geantwortet: siehe hier
          Aber ich wollte Dich nicht mit Blockly nerven, und Node Red kann ich (noch) nicht...

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @KlausStoertebeker last edited by

            @klausstoertebeker Das Du auf das blaue "null" überprüfst ist richtig - aber was das Beschreiben mit einem String "null" sein soll, das ist wahrscheinlich verkehrt.

            Ich würde halt mal Debugs einbauen, dann siehst Du ob in die Bedinung reingesprungen wird.

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

              @klausstoertebeker sagte: Blockly ändern muss, damit ich die gewünschten Attribute auslesen kann?

              Blockly_temp.JPG

              Das Schreiben eines Strings "null" macht keinen Sinn.

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

              Support us

              ioBroker
              Community Adapters
              Donate
              FAQ Cloud / IOT
              HowTo: Node.js-Update
              HowTo: Backup/Restore
              Downloads
              BLOG

              814
              Online

              31.7k
              Users

              79.9k
              Topics

              1.3m
              Posts

              3
              5
              197
              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