Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19001208 json extractor - expects parameter 2 to be array, null given

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

    LBS19001208 json extractor - expects parameter 2 to be array, null given

    Hallo Zusammen bzw. jonofe

    ich nutze den JSON extractor LBS um über MQTT die Druckinfos von octoprint auszulesen.

    Im MQTT / JSON string werden aber anscheinend nicht immer alle Felder mitgeliefert, was minütlich mind. 2 Fehlereinträge ins Log schreibt, wenn ein Druck läuft & der JSON Extractor gerne das Feld auslesen möchte....
    2023-04-09 09:55:24 249684 ? 297955 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001208.php | Fehlercode: 2 | Zeile: 31 | array_key_exists() expects parameter 2 to be array, null given ERROR
    2023-04-09 09:55:24 449604 ? 297955 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001208.php | Fehlercode: 2 | Zeile: 31 | array_key_exists() expects parameter 2 to be array, null given ERROR

    json_extractor.png

    Schöne Feiertage & VG,


    #2
    Ich vermute eher, dass ein leerer String an E1 ankommt. Der Fehler kann eigentlich nur auftreten, wenn json_decode(E1, true) kein Array als Ergebnis liefert.
    Versuch mal vor E1 leere Strings rauszufiltern.

    Kommentar


      #3
      Sorry für die späte Antwort, ich kam in letzter Zeit nicht zum testen.
      Ich habe deinen Vorschlag umgesetzt und die ungleich leer Prüfung vor den JSON extractor gesetzt, allerdings tritt der Fehler leider immer noch auf.

      Zufällig habe ich hier im Screenshot z.B. erwischt wie der path 7 / printtime left leer ist, ich vermute hier schmeisst er den Fehler.
      Beim nächsten refresh war printtime left dann wieder gefüllt.
      json_extractor2.png image.png
      Zuletzt geändert von Zaschii; 21.04.2023, 10:09.

      Kommentar


        #4
        Leider gibt es ein ähnliches Verhalten auch mit Nano´s LBS (z.B. 19001073 oder 19001074):

        2023_04_21_11_58_41_10.10.1.35_data_log_ERRLOG_2023_04.htm_20230421114921_Opera.png

        Kommentar


          #5
          Na ja, anderer LBS, anderer Entwickler und auch andere Fehlermeldung - wäre wahrscheinlich besser du würdest dafür einen eigenen Beitrag erstellen.

          Kommentar


            #6
            jonofe: evtl noch andere Vorschläge?

            Kommentar


              #7
              Ich würde mal das Input JSON loggen lassen (LBS18000110). Dann kannst du vermutlich mit dem Timestamps der Fehlermeldung im Log das JSON finden, welches für den Fehler verantwortlich ist. Danach ist vermutlich klarer wo der Fehler genau herkommt.

              Kommentar


                #8
                Danke für den Tipp...

                Sieht so aus als war meine erste Vermutung korrekt.

                hier das formatierte Json zu 10:14:17 (der Fehler tritt minütlich auf, aber ich kopiere hier nur mal einen Eintrag rein)


                JSON 10:14:17:

                Code:
                {"state": {"text": "Printing", "flags": {"operational": true, "printing": true, "cancelling": false, "pausing": false, "resuming": false, "finishing": false, "closedOrError": false, "error": false, "paused": false, "ready": false, "sdReady": false}, "error": ""}, "job": {"file": {"name": "AI3MSPRO_tool-handle-holder-v5.gcode", "path": "AI3MSPRO_tool-handle-holder-v5.gcode", "display": "AI3MSPRO_tool-handle-holder-v5.gcode", "origin": "local", "size": 22996735, "date": 1682409950}, "estimatedPrintTime": null, "averagePrintTime": null, "lastPrintTime": null, "filament": null, "user": "sasch", "estimatedPrintTimeFormatted": null}, "currentZ": 0.2, "progress": {"completion": 0.4611524201152903, "filepos": 106050, "printTime": 480, "printTimeLeft": null, "printTimeLeftOrigin": "linear", "printTimeLeftFormatted": null, "printTimeFormatted": "0:08:00"}, "offsets": {}, "resends": {"count": 0, "transmitted": 2065, "ratio": 0}, "_timestamp": 1682410457}
                json_extractor3.png

                Errorlog 10:14:17:
                2023-04-25 10:14:17 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001208.php | Fehlercode: 2 | Zeile: 31 | array_key_exists() expects parameter 2 to be array, null given

                Kommentar


                  #9
                  Versuch mal folgende Änderung im LBS Code:

                  Zeile 104:
                  PHP-Code:
                  if ($item != null && array_key_exists($item$j)) 

                  Falls das zur Lösung führt, werde ich das im LBS anpassen und das Update hochladen.

                  Kommentar


                    #10
                    Ah ich lag knapp daneben und habs nun gefunden....

                    In meinem Selector Path 4 gehe ich auf: job|filament|tool0|length

                    Dieser Pfad ist anscheinend nur initial vorhanden, anschließend ist job | filament null...

                    json_extractor3.png

                    ich versuche bei Gelegenheit aber trotzdem mal deine Codeanpassung.

                    Danke

                    Kommentar

                    Lädt...
                    X