Ankündigung

Einklappen
Keine Ankündigung bisher.

HTTP Request für JSON

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HTTP Request für JSON

    Hallo zusammen

    Ich steh gerade auf dem Schlauch. Habe einen neuen Stromzähler bekommen und muss den Webrequest anpassen. Hier das JSON im Browser:

    json.jpg

    Hier die Konfig:
    Config Edomi.jpg

    Und dann noch die Logik:
    Logik.jpg

    Leider bleibt das entsprechende KO 1253 leer.

    Was habe ich übersehen?
    Angehängte Dateien

    #2
    Ich nehme an du hast Edomi neu aktiviert nach dem ändern der Logik..
    Und Edomi hat Zugriff auf den abzufragenden Host. ggf. in der bash mit curl verifizieren.

    Gibt es in den Logs was zu sehen dazu ?
    Welchen Datentyp hat dein iKO ?
    Leg mal auf KO Fehler auch ein iKO und schau ob da was rauskommt.

    Ansonsten schaut es nicht verkehrt aus wenn ich nichts übersehen hab.

    Kommentar


      #3
      Edomi ist neu aktiviert. Wie komme ich auf die Bash?

      Die Logs sind ruhig. KO 1253 hat den Datentyp Variant. KO Fehler bleibt leer.

      Ich sehe aber, dass da im Status eine Queue wächst:

      Queue.jpg

      Kommentar


        #4
        Wenn die Queue wächst dann ist meist keine Verbindung zum Host möglich und die Timeouts verzögern alles.

        Wenn du kannst mach mal eine ssh Verbindung zu Edomi.
        Dort in der shell / bash dann mal einen Ping in Richtung deines Stromzählers senden.
        Wenn der Ping beantwortet wird würde ich eine Abfrage mit curl machen z.B.:

        curl -X GET "http://192.168.50.21/api/v1/report" -H "Accept: application/json"​


        Kommentar


          #5
          Hier die Abfrage direkt aus der Konsole:

          edomijson.jpg
          Funktioniert also.

          Gibt es irgendwo Logs zu der Queue, also was genau da läuft?
          Zuletzt geändert von elnino22; 02.07.2025, 10:14.

          Kommentar


            #6
            Zitat von elnino22 Beitrag anzeigen
            das per Edomi neu zu setzen oder so
            was zu setzen ? Das root Passwort ?

            Was mir noch einfällt.. Evtl. ist der Host nur per https erreichbar und nicht mehr per http.
            Wäre nochmal einen Versuch wert das in der Logik zu ändern.

            Kommentar


              #7
              Evtl. ist die Queue dann noch voll mit Müll. Starte mal Edomi komplett neu und teste es dann.
              Es gibt schon die Möglichkeit die Queue auszulesen, das war aber irgendwo in der SQL DB.

              Falls nötig kann ich dir das später raussuchen welche abfragen du da brauchst. Hab die grad nicht im Kopf.

              Kommentar


                #8
                Bei jeder Projektaktivierung startet Edomi ja neu. Habe die betroffene Logik mal deaktiviert. Da bleibt die Queue leer.

                Habe eine neue Logik angelegt, den Webrequest neu erstellt und sogar ein neues iKO für die Antwort. In der neuen Logik wird nur der Webrequest ausgelöst (manuell durch setzen in der Live Ansicht). Darauf hin geht die Queue Running auf 1 und bleibt da (und blockiert natürlich alle anderen Queues, entsprechend wächst sie dann).

                Gibt es eine andere Möglichkeit, den Webrequest zu testen?

                Kommentar


                  #9
                  Fällt mir spontan auch nichts ein, außer es über einen LBS zu lösen oder ein shell script welches den curl request macht und die daten dann per iko remote zu edomi schiebt.

                  Der Edomi-interne http-get kann nur 10.000 Zeichen als Antwort empfangen und ausgeben, aber das sollte hier normal passen.

                  Kommentar


                    #10
                    Alternative über ein shell script:
                    Das dann mittels Logic oder Cron triggern. KO vorher für remote freigeben.

                    Code:
                    #!/bin/bash
                    VALUE=`curl -s http://192.168.50.21/api/v1/report`
                    KOID="1234"
                    USER="remote"
                    PW="remote"
                    
                    curl -X GET "http://127.0.0.1/remote/?login=$USER&pass=$PW&koid=$KOID&kovalue=$VALUE" > /dev/null 2>&1​

                    Kommentar


                      #11
                      Danke für die Unterstützung! Habe es mit dem LBS https://service.knx-user-forum.de/?c...ad&id=19001116 gelöst.

                      Kommentar

                      Lädt...
                      X