NEWS
JSON Werte in Datenpunkte
-
@Kevin sagte:
An was kann das liegen?
Das Objekt enthält keine Eigenschaft result und ist auch kein Array.
Versuche es mal so:function iter(name, obj) { for(let i in obj) { if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]); else { log(name + '.' + i + ': ' + obj[i]); if(existsState(name + '.' + i)) setState(name + '.' + i, obj[i]); else createState(name + '.' + i, obj[i]); // type: "mixed" } } } function SendRequest(){ var options = { url: 'http://URLVON3DRUCKER' }; request(options, function (error, response, body){ if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body)); else console.error(error); }); } schedule('*/5 * * * * *', SendRequest);@paul53 said in JSON Werte in Datenpunkte:
function iter(name, obj) { for(let i in obj) { if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]); else { log(name + '.' + i + ': ' + obj[i]); if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]); else createState(name + '.' + i, obj[i]); // type: "mixed" } } } function SendRequest(){ var options = { url: 'http://URLVON3DRUCKER', }; request(options, function (error, response, body){ if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body)); else console.error(error); }); } schedule('*/5 * * * * *', SendRequest);Danke schon mal für dein Hilfe :)
Leider hat es nicht ganz funktioniert:
javascript.0 2020-07-29 22:56:55.543 error (24214) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2020-07-29 22:56:55.543 error (24214) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49) javascript.0 2020-07-29 22:56:55.542 error (24214) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2020-07-29 22:56:55.542 error (24214) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17) javascript.0 2020-07-29 22:56:55.542 error (24214) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1124:17) javascript.0 2020-07-29 22:56:55.541 error (24214) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1533:17) javascript.0 2020-07-29 22:56:55.541 error (24214) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1480:37) javascript.0 2020-07-29 22:56:55.541 error (24214) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1257:28) javascript.0 2020-07-29 22:56:55.540 error (24214) at Object.createScript (vm.js:277:10) javascript.0 2020-07-29 22:56:55.540 error (24214) at new Script (vm.js:83:7) javascript.0 2020-07-29 22:56:55.540 error (24214) SyntaxError: Unexpected identifier javascript.0 2020-07-29 22:56:55.539 error (24214) ^^^^^^^^ javascript.0 2020-07-29 22:56:55.539 error (24214) if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]); javascript.0 2020-07-29 22:56:55.539 error at script.js.common.Skript_1:6 javascript.0 2020-07-29 22:56:55.539 error (24214) script.js.common.Skript_1 compile failed: -
@paul53 said in JSON Werte in Datenpunkte:
function iter(name, obj) { for(let i in obj) { if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]); else { log(name + '.' + i + ': ' + obj[i]); if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]); else createState(name + '.' + i, obj[i]); // type: "mixed" } } } function SendRequest(){ var options = { url: 'http://URLVON3DRUCKER', }; request(options, function (error, response, body){ if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body)); else console.error(error); }); } schedule('*/5 * * * * *', SendRequest);Danke schon mal für dein Hilfe :)
Leider hat es nicht ganz funktioniert:
javascript.0 2020-07-29 22:56:55.543 error (24214) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2020-07-29 22:56:55.543 error (24214) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49) javascript.0 2020-07-29 22:56:55.542 error (24214) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2020-07-29 22:56:55.542 error (24214) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17) javascript.0 2020-07-29 22:56:55.542 error (24214) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1124:17) javascript.0 2020-07-29 22:56:55.541 error (24214) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1533:17) javascript.0 2020-07-29 22:56:55.541 error (24214) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1480:37) javascript.0 2020-07-29 22:56:55.541 error (24214) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1257:28) javascript.0 2020-07-29 22:56:55.540 error (24214) at Object.createScript (vm.js:277:10) javascript.0 2020-07-29 22:56:55.540 error (24214) at new Script (vm.js:83:7) javascript.0 2020-07-29 22:56:55.540 error (24214) SyntaxError: Unexpected identifier javascript.0 2020-07-29 22:56:55.539 error (24214) ^^^^^^^^ javascript.0 2020-07-29 22:56:55.539 error (24214) if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]); javascript.0 2020-07-29 22:56:55.539 error at script.js.common.Skript_1:6 javascript.0 2020-07-29 22:56:55.539 error (24214) script.js.common.Skript_1 compile failed: -
@Kevin sagte:
Leider hat es nicht ganz funktioniert:
existsState(id) wird anscheinend angemeckert. Welche Version des Javascript-Adapters ?
-
@Kevin sagte:
Genau wie ich es mir vorgestellt habe.
Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].
@paul53 Ich habe noch eine Frage :)
Lässt sich verhindern, dass die Abfrage durchgeführt wird, wenn der Drucker ausgeschaltet ist?
javascript.0 2020-07-31 07:08:11.796 error (24214) Request error: Error: connect ETIMEDOUT 91.15.159.27:8000 javascript.0 2020-07-31 07:08:11.795 error (24214) script.js.common.3D_Printer: {'errno':'ETIMEDOUT','code':'ETIMEDOUT','syscall':'connect','address':'IP','port':8000} -
@paul53 Ich habe noch eine Frage :)
Lässt sich verhindern, dass die Abfrage durchgeführt wird, wenn der Drucker ausgeschaltet ist?
javascript.0 2020-07-31 07:08:11.796 error (24214) Request error: Error: connect ETIMEDOUT 91.15.159.27:8000 javascript.0 2020-07-31 07:08:11.795 error (24214) script.js.common.3D_Printer: {'errno':'ETIMEDOUT','code':'ETIMEDOUT','syscall':'connect','address':'IP','port':8000} -
-
@paul53 Ich könnte es über einen Datenpunkt an der Fritzbox abfragen. Dann wäre Datenpunkt 3Drucker.active auf true sobald er im netzwerk ist
@Kevin sagte:
über einen Datenpunkt an der Fritzbox abfragen
Dann mache die Abfrage als erstes in der Funktion SendRequest().
function SendRequest(){ if(getState('abc.0.xyz.3Drucker.active').val) { var options = { url: 'http://URLVON3DRUCKER' }; request(options, function (error, response, body){ if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body)); else console.error(error); }); } }
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