Ankündigung

Einklappen
Keine Ankündigung bisher.

Repetier Drucker auslesen (JSON)

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

    Repetier Drucker auslesen (JSON)

    Hallo,

    versuche gerade von meinem Drucker Server Werte auszulesen, bekomme aber nix raus.

    JSON von meinem Server (http://192.168.1.227:3344/printer/list):
    Code:
     {"data":[{"active":true,"analysed":1,"done":27.660875324807662,"job":"1_Z_Rod_Holder_Right.","jobid":1,"linesSend":76006,"name":"ANET","ofLayer":150,"online":1,"pauseState":0,"paused":false,"printTime":30866.774395069377,"printedTimeComp":10672.231792928571,"slug":"ANET2","start":1519923701,"totalLines":274778}]}
    Openhab wirft immer einen Fehler raus, keine Ahnung warum.
    LOG:
    Code:
    2018-03-01 21:22:22.722 [WARN ] [ab.binding.http.internal.HttpBinding] - Transformation 'JSONPATH($.data.done)' threw an exception. [response={"data":[{"active":true,"analysed":1,"done":29.242879706526722,"job":"1_Z_Rod_Holder_Right.","jobid":1,"linesSend":80353,"name":"ANET","ofLayer":150,"online":1,"pauseState":0,"paused":false,"printTime":30866.774395069377,"printedTimeComp":11126.476415411827,"slug":"ANET2","start":1519923701,"totalLines":274778}]}]
    
    org.openhab.core.transform.TransformationException: Invalid path '$.data.done' in '{"data":[{"active":true,"analysed":1,"done":29.242879706526722,"job":"1_Z_Rod_Holder_Right.","jobid":1,"linesSend":80353,"name":"ANET","ofLayer":150,"online":1,"pauseState":0,"paused":false,"printTime":30866.774395069377,"printedTimeComp":11126.476415411827,"slug":"ANET2","start":1519923701,"totalLines":274778}]}'

    ITEM:
    Code:
    Number RepetierFortschritt "Fertig [%s]"    {http="<[http://192.168.1.227:3344/printer/list:10000:JSONPATH($.data.done)]"}
    bin ratlos
    Zuletzt geändert von noxx; 01.03.2018, 21:27.

    #2
    Probier mal
    Code:
    JSONPATH($.data[0].done)
    Deine Struktur gibt für data ein Array zurück, erkennbar an den []

    Andreas

    Kommentar


      #3
      danke. hat geklappt. weiß einer wie man rundet? bekomme als Wert
      0.011014530000826011
      würde gerne auf 1 Kommastelle runden

      Kommentar


        #4
        Wenn es nur um die Anzeige geht, kannst Du das mit [%.1f] als Formatierung erreichen. wenn der Wert im Number Item gerundet gespeichert werden soll, musst Du auf ein kleines Java Script ausweichen, welches sowohl die JSON-Auswertung als auch das Runden übernimmt.

        Kommentar


          #5
          Falls Du es direkt als Prozentwert anzeigen lassen willst, dann nutze [%.1f %%]

          Kommentar

          Lädt...
          X