Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script auf mehrere Objekte + Wert Parent-Ordners auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script auf mehrere Objekte + Wert Parent-Ordners auslesen

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

      hi,
      ich habe mich gerade mit openepaperlink beschäftigt und möchte meine tags nun einbinden.
      dazu habe ich ein blockly aus dem forum genommen, etwas angepast. damit kann ich dann einfach ein json-objekt, das in einer uservariablen steckt, anpassen, und es wird an den e-tag geschickt. funktioniert soweit.
      jetzt würde ich mir wünschen, dass ich die tags in eigenen ordnern verwalten kann. der ordner soll dabei die mac des E-Tags als namen haben.
      innerhalb des ordners gibt es dann das json, ggf. noch weitere informationen, die ich später verwenden kann (z.g. AP oder sonstiges).

      jetzt habe ich zwei ziele:

      1. sobald unterhalb des Ordners "etags" sich etwas ändert, möchte ich, dass das script losläuft und dann entsprechend die werte ausliest (in diesem fall sz.b. alle variablen namens "json" unterhalb der einzelnen ordner).
        bei einem geänderten json soll er aus dem parent-ordner die mac-adresse auslesen und damit einen post-request gegen den AP absetzen.

      ist das machbar?

      alternativ könnte ich alles in einen ordner packen und anstatt der variablen "json" die mac-adresse als variablenname verwenden, dann wäre ich nicht mehr ganz so flexibel, was weitere parameter angehen würde. wäre aber auch erstmal verkraftbar.

      habt ihr hier ideen, wie ich das umsetzen kann?

      gruß und danke,
      astrakid

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

        @astrakid sagte: unterhalb des Ordners "etags" sich etwas ändert

        Wie sieht die Ordner-Struktur aus? Ist sie konstant oder kann sich die Struktur ändern?

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

          @paul53 fester startordner, also bis dahin statisch. darunter dann ordner mit den mac-adressen als namen.
          aktuell:
          "0_userdata.0.vars.etags.00000AF509EF3E10.json",

          weitere dann z.b.
          "0_userdata.0.vars.etags.0000112233445566.json",
          "0_userdata.0.vars.etags.0000AB12CD34EF56.json",
          ...

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

            @astrakid sagte: darunter dann ordner mit den mac-adressen als namen.

            Es sind bei Skriptstart evtl. noch nicht alle Ordner vorhanden? In dem Fall muss man RegExp zum Triggern verwenden.

            Blockly_temp.JPG

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

              @paul53 ach cool, regex ist möglich? super. dann ist der trigger schon mal einfach.
              in der variablen kanalname steht dann die id des objekts drin? oder kann ich auch mit regex-gruppen o.ä. arbeiten, um die mac zu erhalten?

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

                @astrakid sagte: in der variablen kanalname steht dann die id des objekts drin?

                Der Kanalname enthält den Namen des Parent-Objektes vom Datenpunkt "json".

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

                  @paul53 hervorragend, vielen dank für die infos, die mir sehr weiterhelfen!!!

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    astrakid @astrakid last edited by

                    hier übrigens das script für alle, die daran interessiert sind. AP von 10.1.1.1 entsprechend auf euren AP setzen:

                    var url, TagMini1, jsonMini1;
                    
                    async function encodeURL(url) {
                        url = encodeURIComponent(url);
                        return url;
                    }
                    
                    on({ id: [].concat(new RegExp('0_userdata\\.0\\.vars\\.etags\\..+\\.json')), change: 'ne' }, async (obj) => {
                      let value = obj.state.val;
                      let oldValue = obj.oldState.val;
                      jsonMini1 = await encodeURL(String((obj.state ? obj.state.val : '')));
                      httpPost('http://10.1.1.1/jsonupload', (['mac=',obj.channelName,'&json=',jsonMini1].join('')), { timeout: 15000, responseType: 'text' }, async (err, response) => {
                      });
                    });
                    
                    1 Reply Last reply Reply Quote 1
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    910
                    Online

                    31.7k
                    Users

                    79.7k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    75
                    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