Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Länge und Breite aus DP auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Länge und Breite aus DP auslesen

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

      Hallo,

      was JS angeht bin ich ziemlich unbeleckt, aber meistens gelingt es mir aus dem was ich in der Suche finde das richtige Ergebnis zu bekommen.

      Jetzt habe ich aber ein kleines Problem:
      Für mein Fahrzeug bekomme ich Werte über Mqtt. Das funktioniert auch sehr gut ,
      Nur die Position gibt folgende Meldung:

      {
        "@ASN1Type":"RvsWGS84Point",
        "altitude":0,
        "latitude":53771580,
        "longitude":8590432
      }
      

      Wie bekomme ich nun latitude und longitude ausgelesen?
      Folgendes Script habe ich verwendet:

      //MG4 Position bestimmen
      const idSensor = 'alias.0.Auto.MG4-Position';
      const idBreite = '0_userdata.0.latitude';
      const idLaenge = '.0_userdata.0.longitude';
       
      on(idSensor, function(dp) { // triggert bei Wertänderung
         let obj = JSON.parse(dp.state.val);
         setState(idBreite, obj ['longitude'].longitude, true);
         setState(idLaenge, obj ['latitude'].latitude, true);
      });
      

      Leider kommt an den Datenpunkten nichts an

      Dann hab ich es noch über http versucht:
      Die Ausgabe über http ist:

      "{\n \"@ASN1Type\":\"RvsWGS84Point\",\n \"altitude\":0,\n \"latitude\":53771580,\n \"longitude\":8590432\n}"
      
      //MG4 Position bestimmen
      
      const axios = require("axios");
      var dp_breite="0_userdata.0.latitude";
      var dp_laenge="0_userdata.0.longitude";
      var url = "http://192.168.178.115:8087/getPlainValue/alias.0.Auto.MG4-Position"
      function getData() {
        axios.get(url).then(({ data })=> {
            setState(dp_breite,data.latitude);
            setState(dp_laenge,data.longitude);
        });
        setTimeout(getData,5000);
      }
      getData();
      

      Da wird dann 0 gesendet

      paul53 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active last edited by

        Wenn Dein Objekt richtig ist - einfach einen Punkt als Zugriff:

        //MG4 Position bestimmen
        const idSensor = 'alias.0.Auto.MG4-Position';
        const idBreite = '0_userdata.0.latitude';
        const idLaenge = '.0_userdata.0.longitude';
         
        on(idSensor, function(dp) { // triggert bei Wertänderung
           let obj = JSON.parse(dp.state.val);
           setState(idBreite, obj.longitude, true);
           setState(idLaenge, obj.latitude, true);
        });
        
        
        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @c1olli last edited by paul53

          @c1olli sagte: Leider kommt an den Datenpunkten nichts an

          Man darf das Attribut nicht doppelt anwenden: Entweder ['longitude'] oder .longitude. Außerdem den Wert durch 1000000 dividieren.

          on(idSensor, function(dp) { // triggert bei Wertänderung
             let obj = JSON.parse(dp.state.val);
             setState(idBreite, obj.latitude / 1000000, true);
             setState(idLaenge, obj.longitude / 1000000, true);
          });
          
          1 Reply Last reply Reply Quote 0
          • C
            c1olli last edited by

            Leider kommt immer noch nichts am Datenpunkt an

            Heisst, wenn ich auf unter Objekte rechts mir das Refresch Datum anzeigen lasse, kommt da nichts.

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

              @c1olli sagte: nichts am Datenpunkt an

              Hat denn im Sensor-DP eine Änderung stattgefunden? Ohne Änderung wird nicht getriggert.

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

                @paul53
                Ok - die hat nicht stattgefunden - kann ich das künstlich für einen Test anstoßen?

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

                  @c1olli sagte: kann ich das künstlich für einen Test anstoßen?

                  Ändere im Tab "Objekte" die Altitude im JSON auf 1. Evtl. auf Expertenmodus schalten, falls der Datenpunkt "read only" ist.

                  C 1 Reply Last reply Reply Quote 1
                  • C
                    c1olli @paul53 last edited by c1olli

                    @paul53
                    Jo nu löppt es
                    Ich hatte es schon richtig, aber weil sich nichts getan hat hab ich weiter versucht und das Ganze verschlimmbessert.
                    Na ja wieder was dazu gelernt.

                    Vielen Dank für die Hilfe.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    873
                    Online

                    31.7k
                    Users

                    79.8k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    205
                    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