Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Hilfe für Javascript nicht Versteher

    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 für Javascript nicht Versteher

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

      Hallo habe Problem mit einem Javascript für meine WP von Dimplex,
      das script holt sich von mqtt daten in Jason ab und sollte diese für mich verständlich aufbereiten,lt Dimplex wiki

      on({id: "mqtt.0.gateway.iothub.twin_reported_state", change: "any"}, function (obj) { ParseTwinReportedState(obj); });
      CreateOrSetState('mqtt.0.input.modbus_set_state', 'modbus_set_state', '', true);
      on({id: "javascript.0.mqtt.0.input.modbus_set_state", change: "any"}, function (obj) { HandleModbusSetStateInput(obj); });
      CreateOrSetState('mqtt.0.input.modbus_get_state', 'modbus_get_state', '', true);
      on({id: "javascript.0.mqtt.0.input.modbus_get_state", change: "any"}, funktion (obj) { HandleModbusGetStateInput(obj); });
      
      function ParseTwinReportedState(obj) {
        try {
          var rootJson = JSON.parse(obj.state.val);
          var jsonTable = [];
          Object.keys(rootJson).forEach(function(outerKey) {
            var innerJson = rootJson[outerKey];
            Object.keys(innerJson).forEach(function(innerKey) {
              CreateOrSetState('mqtt.0.parsed.twin_reported_state.' + outerKey + '.' + innerKey, innerKey, innerJson[innerKey]);
              jsonTable.push({Name: innerKey, Value: innerJson[innerKey]});
            });
          });
          CreateOrSetState('mqtt.0.parsed.twin_reported_state_table', 'twin_reported_state_table', JSON.stringify(jsonTable));
        } catch (e) {console.error("Error in ParseTwinReportedState(): " + e);}
      }
      
      function HandleModbusSetStateInput(obj) {
        try{
          var inputSplit = obj.state.val.split(" ");
          if(inputSplit.length < 2) return;
          var modbusIdx = inputSplit[0];
          var valArray = [];
          for(var i=1; i<inputSplit.length; i++){valArray.push(inputSplit[i]);}
          var modbusSetJSON = {
            name: modbusIdx,
            value: valArray,
            mqtt_msg_properties: {response_topic: "extern/iobroker/set_value_reply", correlation_data: 0}
          }
          sendTo('mqtt.0', 'sendMessage2Client', {topic: 'gateway/modbus/set_value/' + modbusIdx, message: JSON.stringify(modbusSetJSON)});
        }
        catch (e) {console.error("Error in ParseModbusSetState(): " + e);}
      }
      
      function HandleModbusGetStateInput(obj) {
        try{
          var modbusIdx = obj.state.val;
          if(modbusIdx.length < 1) return;
          var modbusGetJSON = {
            name: modbusIdx,
            mqtt_msg_properties: {response_topic: "extern/iobroker/get_value_reply", correlation_data: 0}
          }
          sendTo('mqtt.0', 'sendMessage2Client', {topic: 'gateway/modbus/get_value/' + modbusIdx, message: JSON.stringify(modbusGetJSON)});
        } catch (e) {console.error("Error in ParseModbusGetState(): " + e);}
      }
      
      function CreateOrSetState(objectId, objectName, objectValue, onlyCreate = false){
        if(!existsState(objectId)) createState(objectId, objectValue,{name: objectName, type: 'string', role: 'value'}, function () {});
        else if(!onlyCreate) setState(objectId, objectValue);
      }  
      

      und bekomme eine Fehlermeldung welche ich leider nicht deuten kann,

      Script.js.WP2024.Skrite_Haus compile failed: at script.js.Displays.Skrite_test:6
      

      vielleicht kann mir einer der script/javascript Profis helfen ?
      möchte gewisse Daten , zb Temp Brauchwasserspeicher meiner Besseren hälfte in einer einfachen Vis anzeigen lassen,
      mfg
      Nape
      @Mikewolf

      Codierknecht F A 3 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @nape1 last edited by

        @nape1 sagte in Hilfe für Javascript nicht Versteher:

        das script holt sich von mqtt daten in Jason ab

        Wo kommt dieses Script her?
        Scheint schon recht alt zu sein, denn eigene DP sollten schon lange unterhalb von 0_userdata.0 liegen und nicht mehr unter javascript.0.
        Außerdem sollten Scripte keine Datenpunkte im Namespace eines Adapters anlegen. Da hat der Adapter die Hoheit - und sonst niemand.

        und sollte diese für mich verständlich aufbereiten

        Die Daten liegen bereits als JSON vor und sollen nur "auseinandergedröselt" werden?
        Das geht auch völlig ohne Script mit Aliasen.

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @Codierknecht last edited by

          @codierknecht sagte in Hilfe für Javascript nicht Versteher:

          Scheint schon recht alt zu sein, denn eigene DP sollten schon lange unterhalb von 0_userdata.0 liegen und nicht mehr unter javascript.0.

          Das wurde so nie gesagt, allerdings

          @codierknecht sagte in Hilfe für Javascript nicht Versteher:

          sollten Scripte keine Datenpunkte im Namespace eines Adapters anlegen.

          ist MQTT da genauso eine Ausnahme.

          Für alle anderen Adapter stimmt das.

          Codierknecht 1 Reply Last reply Reply Quote 0
          • F
            fastfoot @nape1 last edited by

            @nape1 fun**c**tion (obj) schreibt sich mit 'c', nicht mit 'k'

            1 Reply Last reply Reply Quote 1
            • Codierknecht
              Codierknecht Developer Most Active @Homoran last edited by

              @homoran sagte in Hilfe für Javascript nicht Versteher:

              wurde so nie gesagt

              Ist aber solange ich dabei bin so ziemlich allgemeiner Konsens. Hat natürlich mit der Funktion des Scripts nix zu tun.

              ist MQTT da genauso eine Ausnahme

              Muss einem ja auch gesagt werden 😀

              Adlerauge @fastfoot hat ja vermutlich die Ursache entdeckt.

              @nape1
              Zeig doch mal das JSON und was Du daraus extrahiert haben möchtest. Vielleicht kriegen wir das ja auch ohne Script hin.

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

                @nape1

                Hallo

                Ich habe das gleiche Problem das das script nicht lauft.
                Habe es dann hir gelesen mit dem c.
                Bekommst du mittlerweile Daten aus der WP ich bin zwar verbunden aber so wie Beschrieben mit einzelne Daten bekomme ich nichts laut Bespreibung auf der Wiki Seite.
                Villeicht kannst mir helfen fals du es hinbekommen hast.

                mfg
                Andi

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

                Support us

                ioBroker
                Community Adapters
                Donate

                387
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                5
                6
                332
                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