Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Altes Script für sonoff Bridge versagt den Dienst

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Altes Script für sonoff Bridge versagt den Dienst

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

      Ich habe auf Proxmox umgestellt und bin ganz Glücklich damit.

      Nur ein Script macht mir Probleme

      var idJSON = 'mqtt.0.tele.Sonoff_Bridge.RESULT'/**/; // Datenpunkt-ID mit JSON-String
      
      var RFWert;
      function JSONtoRF(json) {
      var obj = JSON.parse(json);
      RFWert = obj.RfReceived.Data;
      var idJSON = 'mqtt.0.SENSOR'/**/; // Datenpunkt-ID mit JSON-String
      var idRFWert = 'mqtt.0.Data.Data'/**//*Data*/;
      setState(idRFWert, RFWert);
      }
      
      JSONtoRF(getState(idJSON).val); // Script start
      on(idJSON, function(dp) { // triggern bei Wertänderung
      JSONtoRF(dp.state.val);
      
      });
      

      Es ist ein alltes Teil das ich gefunden habe vor jahren. Nun es soll den Empfangenen Wert im Datenpunkt Data anzeigen wenn etwas empfangen wird. Ich sehe auch das der Wert bei mqtt.0.tele.Sonoff_Bridge.RESULT' sich ändert, aber der Datenpunkt Data nicht mehr und ich bekomme folgendes Protokoll.

      javascript.0
      2023-03-07 21:32:34.433 error at Script.runInContext (node:vm:141:12)

      javascript.0
      2023-03-07 21:32:34.432 error at script.js.Datenpunkt.Bridge_Datenpunkt:21:3

      javascript.0
      2023-03-07 21:32:34.432 error at script.js.Datenpunkt.Bridge_Datenpunkt:12:1

      javascript.0
      2023-03-07 21:32:34.432 error at JSONtoRF (script.js.Datenpunkt.Bridge_Datenpunkt:6:25)

      javascript.0
      2023-03-07 21:32:34.432 error script.js.Datenpunkt.Bridge_Datenpunkt: TypeError: Cannot read properties of undefined (reading 'Data')

      javascript.0
      2023-03-07 21:32:34.432 info script.js.Datenpunkt.Bridge_Datenpunkt: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions

      javascript.0
      2023-03-07 21:32:34.431 info script.js.Datenpunkt.Bridge_Datenpunkt: getState(id=mqtt.0.tele.Sonoff_Bridge.RESULT, timerId=undefined) => {"val":"{"Time":"2023-03-07T21:29:19","RfRaw":{"Data":"AAA42A4E0168042E10001455"}}","ack":true,"ts":1678220959910,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1678220959910}

      javascript.0
      2023-03-07 21:32:34.429 info Start javascript script.js.Datenpunkt.Bridge_Datenpunkt

      javascript.0
      2023-03-07 21:32:34.384 info Stop script script.js.Datenpunkt.Bridge_Datenpunkt

      3aa2e527-355c-4a6e-ba19-6cf24ce0fd1f-image.png

      Kann jemand helfen?

      Gruß Buko

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

        @buko sagte: "RfRaw":{"Data":"AAA42A4E0168042E10001455"}

        Ändere mal Zeile 6 in

        RFWert = obj.RfRaw.Data;
        

        und lösche Zeile 7.

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

          @paul53 sagte in Altes Script für sonoff Bridge versagt den Dienst:

          RFWert = obj.RfRaw.Data;

          var idJSON = 'mqtt.0.tele.Sonoff_Bridge.RESULT'; // Datenpunkt-ID mit JSON-String
          var RFWert;
          
          function JSONtoRF(json) {
          var obj = JSON.parse(json);
          //RFWert = obj.RfReceived.Data;
          RFWert = obj.RfRaw.Data;
          var idJSON = 'mqtt.0.SENSOR'; // Datenpunkt-ID mit JSON-String
          var idRFWert = 'mqtt.0.Data.Data'/*Data*/;
          setState(idRFWert, RFWert);
          }
          JSONtoRF(getState(idJSON).val); // Script start
          
          on(idJSON, function(dp) { // triggern bei Wertänderung
          JSONtoRF(dp.state.val);
          
          });
          
          

          Keine besserung

          javascript.0
          2023-03-07 22:37:10.030 error at Script.runInContext (node:vm:141:12)

          javascript.0
          2023-03-07 22:37:10.030 error at script.js.Datenpunkt.Bridge_Datenpunkt:23:3

          javascript.0
          2023-03-07 22:37:10.030 error at script.js.Datenpunkt.Bridge_Datenpunkt:12:1

          javascript.0
          2023-03-07 22:37:10.030 error at JSONtoRF (script.js.Datenpunkt.Bridge_Datenpunkt:7:20)

          javascript.0
          2023-03-07 22:37:10.030 error script.js.Datenpunkt.Bridge_Datenpunkt: TypeError: Cannot read properties of undefined (reading 'Data')

          javascript.0
          2023-03-07 22:37:10.029 info script.js.Datenpunkt.Bridge_Datenpunkt: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions

          javascript.0
          2023-03-07 22:37:10.029 info script.js.Datenpunkt.Bridge_Datenpunkt: getState(id=mqtt.0.tele.Sonoff_Bridge.RESULT, timerId=undefined) => {"val":"{"Time":"2023-03-07T22:35:14","RfReceived":{"Sync":10820,"Low":360,"High":1080,"Data":"100014","RfKey":"None"}}","ack":true,"ts":1678224914594,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1678224914594}

          javascript.0
          2023-03-07 22:37:10.026 info Start javascript script.js.Datenpunkt.Bridge_Datenpunkt

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

            @buko sagte: "RfReceived":{"Sync":10820,"Low":360,"High":1080,"Data":"100014","RfKey":"None"}

            Das JSON ändert sich. Welchen Wert möchtest Du haben? "100014" oder "AAA42A4E0168042E10001455"? Wenn den zu "RfReceived", dann ändere in

            function JSONtoRF(json) {
                var obj = JSON.parse(json);
                if(obj.RfReceived) {
                    RFWert = obj.RfReceived.Data;
                    var idRFWert = 'mqtt.0.Data.Data'/**//*Data*/;
                    setState(idRFWert, RFWert);
                }
            }
            
            B 1 Reply Last reply Reply Quote 0
            • B
              Buko @paul53 last edited by

              @paul53 sagte in Altes Script für sonoff Bridge versagt den Dienst:

              100014

              Ich möchte den Wert "100014" dort angezeigt bekommen. mit einem Zwieten Script wird der Wert verglichen und wenn der wert übereinstimmt erfolgt eine aktion!

              B 1 Reply Last reply Reply Quote 0
              • B
                Buko @Buko last edited by Buko

                Ich habe gerade was gelesen. Ich habe den Debug Modus an gehabt dann schreibt er nicht die Daten in Data so wie es aussieht, ich habe ihn aus gmacht nun schreibt er Ihn in den Datenpunkt.

                Danke für den bemühen!

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

                Support us

                ioBroker
                Community Adapters
                Donate

                955
                Online

                31.6k
                Users

                79.4k
                Topics

                1.3m
                Posts

                2
                6
                181
                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