Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly HTML Request und Ergebnis auswerten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly HTML Request und Ergebnis auswerten

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

      Versuche gerade mit Blockly einen HTML Request abzusetzen und das Ergebnis auszuwerten. bekomme jedoch immer wieder nachfolgende Fehlermedlung und weiß einfach nicht weiter;

      11:55:50.078	[error]	javascript.0 (21677) TypeError: Cannot read property 'indexOf' of undefined at Request._callback (script.js.Skripte.Multimedia.Skript1:12:61) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) at emitTwo (events.js:126:13) at Request.emit (events.js:214:7) at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12) at Object.onceWrapper (events.js:313:30) at emitNone (events.js:111:20)
      

      Das dazugehörige Blockly;

      var RadioNamenRaw, result, RadioNamen, Radio_Session_ID_RAW;
      
      
      schedule("*/10 * * * * *", function () {
        try {
          require("request")('http://192.168.178.48/fsapi/GET/netRemote.sys.info.friendlyName?pin=1234', function (error, response, result) {
            // Frage Namen des Gerätes ab
          RadioNamenRaw = result;
          console.log(result);
          console.log(RadioNamenRaw);
          RadioNamen = RadioNamenRaw.slice(((Radio_Session_ID_RAW.indexOf('<c8_array>') + 1) - 1), Radio_Session_ID_RAW.indexOf('</c8_array>') + 1);
          console.log(RadioNamen);
          }).on("error", function (e) {console.error(e);});
        } catch (e) { console.error(e); }
        console.log("request: " + 'http://192.168.178.48/fsapi/GET/netRemote.sys.info.friendlyName?pin=1234');
      });
      

      Wenn ich die HTML Abfrage über den Explorer mache bekomme ich folgende Meldung zurück;

      <fsapiResponse>
      <status>FS_OK</status>
      <value>
      <c8_array>Buero</c8_array>
      </value>
      </fsapiResponse>
      

      Ich möchte als Ausbage nur das Wort "Buero" haben. Was mache ich verkehrt oder wie schaut eine Lösung aus damit ich nur das eine Wort als Ergebnis habe?

      Danke und Grüße,
      Claus

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

        @claus1993
        Die Variable Radio_Session_ID_RAW erhält nirgends einen Wert.

        Ich würde das NPM-Modul xml2js verwenden (in Konfiguration der JS-Instanz eintragen !).

        const parse = require('xml2js').parseString;
        parse(result, function(err, obj) {
            log(obj.fsapiResponse.value[0].c8_array[0]);
        });
        
        C 1 Reply Last reply Reply Quote 0
        • C
          claus1993 @paul53 last edited by claus1993

          @paul53
          Danke für dein Feedback. Das NPM-Modul habe ich bereits installiert.

          Wenn ich meinen Log richtog verstehe bekomme ich erst bei dem letzten Punkt einen Error...

          08:33:10.632 [info] javascript.0 (21835) script.js.Skripte.Multimedia.Skript1: request: http://192.168.178.48/fsapi/GET/netRemote.sys.info.friendlyName?pin=1234
          08:33:10.674 [info] javascript.0 (21835) script.js.Skripte.Multimedia.Skript1: FS_OK Buero
          08:33:11.675 [info] javascript.0 (21835) script.js.Skripte.Multimedia.Skript1: FS_OK Buero
          08:33:11.677 [error] javascript.0 (21835) at Object. (script.js.Skripte.Multimedia.Skript1:12:63)

          In der Info Ausgabe 2 und 3 zeigt er die gelieferten Werte korrekt an, diese jedoch ohne die Namen in <>. Muss ich das irgendwie beim herausfiltern von "Buero" beachten?

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

          Support us

          ioBroker
          Community Adapters
          Donate

          440
          Online

          32.0k
          Users

          80.4k
          Topics

          1.3m
          Posts

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