Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    GPS-Koordinaten setzen

    Scheduled Pinned Locked Moved Entwicklung
    4 Posts 3 Posters 392 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C Offline
      Chris 1
      last edited by

      Hallo,

      ich versuche über die API die GPS-Koordinaten eines Gebäudes zu setzen. Die API nimmt den Request mit 200 OK an, die Koordinaten werden aber nicht aktualisiert.

      Request:

      {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "cmdb.category.save",
          "params": {"apikey":"geheim",
          "object": 51, "data": {"gps": "7.123 53.123"},
          "category":"C__CATG__LOCATION"}
      }
      

      Antwort:

      {
          "id": 1,
          "jsonrpc": "2.0",
          "result": {
              "success": true,
              "message": "Category entry successfully saved",
              "entry": 3
          }
      }
      
      Überprüfen:
      

      {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "{{METHOD}}",
      "params": {"apikey":"geheim", "objID":"51", "category":"C__CATG__LOCATION"}
      }

      Antwort:

      {
          "id": 1,
          "jsonrpc": "2.0",
          "result": [
              {
                  "id": "3",
                  "objID": "51",
                  "location_path": "234",
                  "parent": {
                      "id": "234",
                      "title": "Etage",
                      "sysid": "FLOOR_1",
                      "type": "C__OBJECT_TYPE__FLOOR",
                      "type_title": "Floor",
                      "location_path": "Ort> Haus> Etage"
                  },
                  "option": null,
                  "insertion": null,
                  "pos": null,
                  "gps": {
                      "0": null,
                      "1": null,
                      "latitude": null,
                      "longitude": null
                  },
                  "latitude": null,
                  "longitude": null,
                  "snmp_syslocation": "",
                  "description": ""
              }
          ]
      }
      

      Im Sourcecode der API habe ich gesehen, dass verschiede GPS-Formate im String unterstützt werden sollten. Was mache ich falsch, oder wie lautet der richtige Weg, um Koordinaten zu setzen?

      Danke für die Hilfe
      Christian

      1 Reply Last reply Reply Quote 0
      • creissC Offline
        creiss i-doit Kenner
        last edited by

        Hallo Christian,

        den richtigen Weg kann ich dir gerade nicht nennen, aber hast du mal probiert den Wert über die GUi zu speichern und dann über die Abfrage ausgeben zu lassen? Vielleicht hilft dir die Rückgabe weiter, das passende Format für die Speicherung herauszufinden.

        Liebe Grüße
        Christian

        NEU - i-doit und IT-Dokumentation bei YouTube: https://www.youtube.com/@donamic_de
        Komplett-Strategie: https://i-doit-trainings.de/it-dokumentation-komplett-strategie/
        i-doit Mastery – https://i-doit-trainings.de/i-doit-mastery

        1 Reply Last reply Reply Quote 0
        • C Offline
          Chris 1
          last edited by

          Hallo Christian,

          ja, das habe ich getestet. In der GUI werden Längen- und Breitengrad in zwei Feldern eingegeben. Diese kann man über die API nicht beschreiben und bekommt als Antwort, die Variablen seien virtuell.
          Wenn ich mir nach setzen der Koordinaten in der GUI das Ergebnis in der API unter "GPS" anschaue, dann habe ich dort die folgende Struktur:
          "gps": {
          "0": "51.123456",
          "1": "7.1234567",
          "latitude": "51.123456",
          "longitude": "7.123456"
          }

          Versuche ich diese Struktur zu beschreiben meldet die API:
          "error": {
          "code": -32603,
          "message": "Internal error: There was an validation error",
          "data": {
          "gps": "(text) Property has to be a string value."
          }

          Irgendwie scheinen die Koordinaten sehr speziell behandelt zu werden.

          Viele Grüße
          Christian

          1 Reply Last reply Reply Quote 0
          • Michael HuhnM Offline
            Michael Huhn
            last edited by

            Hallo @Chris-1,

            Attribut "gps" ist ein JSON-Objekt mit den Keys "0" und "1", diese werden im Core für Funktionen genutzt.

            Diese Keys entsprechen "latitude" und "longitude".
            Daher ist es nur notwendig "latitude" und "longitude" zu setzen.

            {
               "method": "cmdb.category.save",
               "params": {
                   "object": 1122701989,
                   "category": "C__CATG__LOCATION",
                   "data": {
                       "latitude": "51.2277411",
                       "longitude": "6.7734556"
                   },
                   "apikey": "h3md6u3y"
               },
               "id": 1,
               "version": "2.0"
            }
            
            1 Reply Last reply Reply Quote 0
            • First post
              Last post