NEWS
Http Request / JSON
-
Hallo
Ich bin ganz neu in Iobroker und besitze leider keine großen programmier skills deshalb bitte ich vorab schon mal um entschuldigen
Ich möchte Daten wie z.b. timesleft von meinem 3d Drucker Auslesen (er hat kein Octoprint).
Ich kann den Status meines 3D-Drucker mit http://192.168.178.32/rr_status?type=3 Auslesen dort bekomme ich dann folgendes angezeigt:
":{"current":0,"active":0},"currentLayer":174,"currentLayerTime":8.0,"extrRaw":[21990.1,0.0],"fractionPrinted":91.6,"firstLayerDuration":1860.6,"firstLayerHeight":0.20,"printDuration":17563.9,"warmUpDuration":203.0,"timesLeft":{"file":3886.8,"filament":2347.4,"layer":9190.3}}
Wie kann ich den daten wie fractionPrinted und oder timesLeft auslesen so das ich sie nachher im Vis anzeigen kann.?
In Fhem ging das relativ simpel für Iobroker finde ich leider keine Anleitung dafür.
Für kurze hilfe wäre ich sehr dankbar.
-
Suche mal im Forum nach request und JSON.parse. Es gibt genügend Beispiele.
@Xanaden:":{"current":0,"active":0},"currentLayer":174,"currentLayerTime":8.0,"extrRaw":[21990.1,0.0],"fractionPrinted":91.6,"firstLayerDuration":1860.6,"firstLayerHeight":0.20,"printDuration":17563.9,"warmUpDuration":203.0,"timesLeft":{"file":3886.8,"filament":2347.4,"layer":9190.3}} `
Hier fehlt etwas am Anfang. -
Hallo
Ich habe nur die letzte zeile raus kopiert. Die komplette ausgabe leutet:
{"status":"P","coords":{"axesHomed":[1,1,1],"xyz":[84.889,279.021,0.150],"machine":[111.890,293.826,0.100],"extr":[65.2,0.0]},"currentTool":0,"params":{"atxPower":0,"fanPercent":[0.00,100.00,100.00,0.00,100.00,100.00,0.00,0.00,0.00],"speedFactor":100.00,"extrFactors":[100.00,100.00],"babystep":0.000},"seq":172,"sensors":{"probeValue":0,"fanRPM":0},"temps":{"bed":{"current":80.2,"active":80.0,"state":2,"heater":0},"current":[80.2,224.0,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0],"state":[2,2,0,0,0,0,0,0],"heads":{"current":[224.0,2000.0],"active":[225.0,0.0],"standby":[225.0,0.0],"state":[2,0]},"tools":{"active":[[225.0],[0.0]],"standby":[[225.0],[0.0]]},"extra":[{"name":"MCU","temp":35.2}]},"time":21252.0,"spindle":{"current":0,"active":0},"currentLayer":1,"currentLayerTime":0.0,"extrRaw":[65.7,0.0],"fractionPrinted":0.7,"firstLayerDuration":62.2,"firstLayerHeight":0.15,"printDuration":151.2,"warmUpDuration":89.1,"timesLeft":{"file":9343.6,"filament":0.0,"layer":0.0}}
Ich habe nur etwas gefunden wo ich mit node-red arbeiten soll jedoch lässt sich der Adapter nicht Installieren
-
Okay hab nun die halbe nacht versucht und andere threads gelesen.
wenn ich das nun so versuche wie es in dem oben gelinkten Post verstehe müsste das ja ca so aussehen:
createState('javascript.1.3dDrucker', ""); function HoleTemp3D(){ var url = 'http://192.168.178.32/rr_status?type=3'; request(url, function (err, state, body){ if (body) { log('Request - alles ok'); log(body); var timesLeft = body.timesLeft.file; log(timesLeft); setState("javascript.1.3dDrucker", timesLeft); } else { log('Request meldet Fehler: ' + err, 'error'); } }); } schedule("*/30 * * * * *" , function(){ HoleTemp3D(); });oder?
als Log bekomme ich````
09:59:19.582 [info] javascript.0 Stop script script.js.Skript1
09:59:22.912 [info] javascript.0 Start javascript script.js.Skript1
09:59:22.912 [info] javascript.0 script.js.Skript1: registered 0 subscriptions and 2 schedules
09:59:31.016 [info] javascript.0 script.js.Skript1: Request - alles ok
09:59:31.068 [error] Caught by controller[0]: at Request._callback (script.js.Skript1:32:47)
09:59:31.070 [error] Caught by controller[1]: at Request._callback (script.js.Skript1:32:47)gibt es eine möglichkeit das in Blocky zu machen damit ich nachher (als leihe) das script nur laufen lassen kann wenn die Homematic Energie steckdose den wert XY anzeigt?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
