Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. EVSE WIFI JSON String mit JS 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

    EVSE WIFI JSON String mit JS auswerten

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

      Grüße,

      EVSE WIFI Dokumentation

      der Aufruf von http://1xx.1xx.xx.xx/getParameters mit Blockly Request schreibt folgenden JSON String in javascript.0.openEVSE.Parameter:

      {"type":"parameters","list":[{"vehicleState":1,"evseState":false,"maxCurrent":32,"actualCurrent":32,"actualPower":0,"duration":0,"alwaysActive":false,"lastActionUser":"","lastActionUID":"","energy":0,"mileage":0,"meterReading":0,"currentP1":0,"currentP2":0,"currentP3":0}]}
      

      Diesen wollte ich mit Javascript auswerten und die Parameter in einzelne Objekte schreiben:

      on({id: 'javascript.0.openEVSE.Parameter', change: 'any'}, function (obj) {
      
      var obj = JSON.parse(getState('javascript.0.openEVSE.Parameter').val);
      createState('javascript.0.openEVSE.Status');
      setState('javascript.0.openEVSE.Status', obj.vehicleState, true); 
      
      });
      

      Leider ohne Erfolg. Ich vermute es liegt daran, das es ein Multiline JSON ist. Lasse ich "parameters" und "list" weg, findet das Script den Wert von vehicleState.

      Wie kann ich das Script dazu bringen, trotz "parameter" und "list" am Anfang des Strings, die richtigen Werte zu finden ???

      Danke

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

        @Wiednitz:

        on('javascript.0.openEVSE.Parameter', function (dp) {
           let obj = JSON.parse(dp.state.val).list[0];
        
        Wiednitz 1 Reply Last reply Reply Quote 0
        • Wiednitz
          Wiednitz @paul53 last edited by

          @paul53

          Vielen Dank für die schnelle Antwort. Ich habe nicht viel Ahnung von Javascript. Mit Erfolg einfügen konnte ich deine Zeilen bisher leider nicht...

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

            @Wiednitz
            Komplett (ich gehe davon aus, dass der Datenpunkt "javascript.0.openEVSE.Status" bereits existiert):

            on('javascript.0.openEVSE.Parameter', function (dp) {
               let obj = JSON.parse(dp.state.val).list[0];
               setState('javascript.0.openEVSE.Status', obj.vehicleState, true);
            });
            

            Beachte: Der Inhalt des JSON-Strings muss sich erst ändern, damit getriggert wird.

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

              @paul53

              Ja Danke, die Änderung war die Ursache, das Script hatte ich so auch probiert. Dachte der Start des Scriptes reicht schon aus.

              Nochmals Vielen Dank !!!

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

              Support us

              ioBroker
              Community Adapters
              Donate

              938
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              javascript
              2
              5
              494
              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