API Abfrage Temperaturen, Start und Ende des Druckes usw.

Hallo Zusammen,
da ich viele Meldungen über mqtt leider vermisse (ioBroker) , versuche ich das über den Wegsacket zu realisieren. Allerdings werde ich aus der Dokumentation der API nicht ganz schlau.
Folgender Aufruf schlägt fehl: 
http://192.168.0.24:3344/printer/"Prusa_MK3s"?a=jobInfox-apikey=e74b365e-xxxx-xxxx-xxxx-b2294e58bdcc>
Als Ergebnis bekomme ich: The requested feature requires a user session with adequate permissions.
Als Hilfetext erscheint in der Dokumentation. Remember to url encode the session key! Aber wie komme ich an den Session key?
Ich hoffe mir kann da jemand helfen  :) 

Grüße Michael

Comments

  • Hallo Zusammen,
    da ich viele Meldungen über mqtt leider vermisse (ioBroker) , versuche ich das über den Wegsacket zu realisieren. Allerdings werde ich aus der Dokumentation der API nicht ganz schlau.
    Folgender Aufruf schlägt fehl: 
    http://192.168.0.24:3344/printer/"Prusa_MK3s"?a=jobInfox-apikey=e74b365e-xxxx-xxxx-xxxx-b2294e58bdcc>
    Als Ergebnis bekomme ich: The requested feature requires a user session with adequate permissions.
    Als Hilfetext erscheint in der Dokumentation. Remember to url encode the session key! Aber wie komme ich an den Session key?
    Ich hoffe mir kann da jemand helfen  :) 

    Grüße Michael
    Ich habe zumindest mal eine Verbindung erreicht:
    192.168.0.24:3344/printer/api/Prusa_MK3s?apikey=e74b365e-034f-4bf2-91c4-b2294e58bdcc&a=stateList&data={}

    Als Ergebnis bekomme ich folgendes JSON:
    {"Anycubic_i3_Mega":{"condition":5,"conditionReason":"","firmwareStyle":"marlin","global":{},"gperm":{},"perm":{},"sglobal":{}},"ER20":{"condition":5,"conditionReason":"","firmwareStyle":"marlin","global":{},"gperm":{},"perm":{},"sglobal":{}},"Prusa_MK3s":{"activeExtruder":0,"autostartNextPrint":false,"condition":1,"conditionReason":"","debugLevel":6,"doorOpen":false,"extruder":[{"error":0,"output":35.29411697387695,"tempRead":194.7,"tempSet":195.0}],"f":10800.0,"fans":[{"on":true,"voltage":229}],"filterFan":false,"firmware":"Prusa-Firmware","firmwareStyle":"marlin","firmwareURL":"https://github.com/prusa3d/Prusa-Firmware","flowMultiply":95,"global":{},"gperm":{},"hasXHome":true,"hasYHome":true,"hasZHome":true,"heatedBeds":[{"error":0,"output":0.0,"tempRead":60.6,"tempSet":60.0}],"heatedChambers":[],"layer":15,"lights":0,"maxLayer":15,"notification":"","numExtruder":1,"perm":{},"powerOn":true,"rec":false,"sdcardMounted":true,"sglobal":{},"shutdownAfterPrint":false,"speedMultiply":100,"volumetric":false,"webcams":[],"x":117.6340026855469,"xOff":0.0,"y":102.3939971923828,"yOff":0.0,"z":3.400000095367432,"zOff":0.0}}

    Wie kann ich auf Werte filtern die ich benötige? Ich denke dafür ist doch data={} gedacht. Aber egal was ich da eintrage ´, es wird nicht gefiltert.
  • Eigentlich kannst du den aktuellen Zustand einfach in mqtt sehen. Um die Abfragen zu basteln nutze ich immer
    http://mqtt-explorer.com/
    um mir all die Werte enazuseten, dann mach ich daraus die korrekte abfrage. Zumindest in homeautomation, ioBroker kenne ich mich nicht aus.

    Bei den Abfragen brauchst du keine session, apikey reicht aus wenn das der Globale ist oder von einem User mit entsprechenden Rechten. Im ersten Beispiel fehlte aber ein & vor apikey.

    data ist nicht zum filtern, es enthält die Parameter zum mit a=... definierten Befehl entsprechend der api Dokumentation. Das Ergebnis ist dann ein json Response den du je nach Programmiersprache in eine Datenstruktur wandelst und dann das abfragst was dich davon interessiert.
Sign In or Register to comment.