NEWS
[Vorlage] HP Drucker Füllstände (Javascript).
-
Hallo Gemeinde,
in meinem ersten Post möchte ich der Gemeinde gleich mal was zur verfügung stellen.
Wer einen Drucker von HP besitzt, und die verbleibenden Füllstände auslesen möchte, kann gerne folgendes Skript verwenden.Ich weiß, es gibt bereits Skripte, aber die, die ich gefunden habe sind doch sehr Laienhaft (sorry). Den String "M282nw" könnt Ihr natürlich auf Eurem Drucker ändern. Ebenfalls die IP-Adresse zur XML Ausgabe ist nach Eurem Schema anzupassen.
Viel Spaß dabei:
Code:
/** * Read informations from HP Printers; * 2021-04-16 @ TheAlphaGhost; */ var url = 'http://192.168.169.170/DevMgmt/ConsumableConfigDyn.xml'; var request = require('request'); var parseString = require('xml2js').parseString; // Create datapoints; createState('Drucker.HP.M282nw.Black.ConsumableFamilyName'); createState('Drucker.HP.M282nw.Black.ConsumableLabelCode'); createState('Drucker.HP.M282nw.Black.ConsumablePercentageLevelRemaining'); createState('Drucker.HP.M282nw.Black.ProductNumber'); createState('Drucker.HP.M282nw.Cyan.ConsumableFamilyName'); createState('Drucker.HP.M282nw.Cyan.ConsumableLabelCode'); createState('Drucker.HP.M282nw.Cyan.ConsumablePercentageLevelRemaining'); createState('Drucker.HP.M282nw.Cyan.ProductNumber'); createState('Drucker.HP.M282nw.Magenta.ConsumableFamilyName'); createState('Drucker.HP.M282nw.Magenta.ConsumableLabelCode'); createState('Drucker.HP.M282nw.Magenta.ConsumablePercentageLevelRemaining'); createState('Drucker.HP.M282nw.Magenta.ProductNumber'); createState('Drucker.HP.M282nw.Yellow.ConsumableFamilyName'); createState('Drucker.HP.M282nw.Yellow.ConsumableLabelCode'); createState('Drucker.HP.M282nw.Yellow.ConsumablePercentageLevelRemaining'); createState('Drucker.HP.M282nw.Yellow.ProductNumber'); function GetData() { request(url, function (error, response, body) { var xml, result; parseString(body, function (err, result) { xml = JSON.stringify(result); var json = JSON.parse(xml); for (var i in json['ccdyn:ConsumableConfigDyn']['ccdyn:ConsumableInfo']) { let node = json['ccdyn:ConsumableConfigDyn']['ccdyn:ConsumableInfo'][i]; let ConsumableFamilyName = node['dd:ConsumableFamilyName']; let ConsumableLabelCode = node['dd:ConsumableLabelCode']; let ConsumablePercentageLevelRemaining = node['dd:ConsumablePercentageLevelRemaining']; let ProductNumber = node['dd:ProductNumber']; var ColorDataPoint = ""; switch (String(ConsumableLabelCode)) { case "K": ColorDataPoint = "Black"; break; case "C": ColorDataPoint = "Cyan"; break; case "M": ColorDataPoint = "Magenta"; break; case "Y": ColorDataPoint = "Yellow"; break; case "CMYK": continue; break; default: continue; log("[ERROR] ColorDataPoint not found for " + ConsumableLabelCode + "!"); }; setState('javascript.0.Drucker.HP.M282nw.' + ColorDataPoint + '.ConsumableFamilyName', ConsumableFamilyName); setState('javascript.0.Drucker.HP.M282nw.' + ColorDataPoint + '.ConsumableLabelCode', ConsumableLabelCode); setState('javascript.0.Drucker.HP.M282nw.' + ColorDataPoint + '.ConsumablePercentageLevelRemaining', ConsumablePercentageLevelRemaining); setState('javascript.0.Drucker.HP.M282nw.' + ColorDataPoint + '.ProductNumber', ProductNumber); }; }); }); }; schedule("42 23 * * *", function () { GetData(); });
Ergebnis:
Habpanel:
-
@christian-4 Danke - ich habe schon was ähnliches gemacht, aber über snmp und NodeRed.
Nun nur noch die Frage - Du machst das über http- Abfrage. Sind diese Punkte für alle HP Drucker gleich?
-
Hallo @mickym,
ja, die "Nodes" sollten alle gleich sein. Was variieren könnte ist die Anzahl der Patronen. Bei mir sind es vier. Natürlich könnte man in der "each" Schleife auch Dynamisch einfach alle Patronen auslesen, und die Datenpunkte automatisch generieren lassen. Dann wäre es egal, ob 2 oder 6 Patronen drin sind.
VG Christian
-
Ich habe Deine Abfrage mal der mit Node Red gegenüber der SNMP Abfrage gemacht:
Dabei habe ich nur festgestellt, dass- Im Family Name ein Abkürzung aber nicht wie bei Dir der vollständige Name drin steht
- Die Tintenfüllstände gegenüber der SNMP Abfrage ungenauer bzw. halt gerundet sind auf jeweils 10%.
-
@christian-4
Danke für das Script.
Ich bekomme folgende warnings (Datenpunkte werden aber korrekt befüllt):javascript.0 2021-04-16 17:55:18.619 warn (8722) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.0 2021-04-16 17:55:18.619 warn (8722) at endReadableNT (_stream_readable.js:1241:12) javascript.0 2021-04-16 17:55:18.619 warn (8722) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.619 warn (8722) at IncomingMessage.emit (events.js:326:22) javascript.0 2021-04-16 17:55:18.618 warn (8722) at Object.onceWrapper (events.js:420:28) javascript.0 2021-04-16 17:55:18.618 warn (8722) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1076:12) javascript.0 2021-04-16 17:55:18.618 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.618 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.618 warn (8722) at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1154:10) javascript.0 2021-04-16 17:55:18.618 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.617 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.617 warn (8722) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) javascript.0 2021-04-16 17:55:18.617 warn (8722) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17) javascript.0 2021-04-16 17:55:18.617 warn (8722) at script.js.common.HP_Drucker_Status:31:9 javascript.0 2021-04-16 17:55:18.617 warn (8722) at exports.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:369:19) javascript.0 2021-04-16 17:55:18.617 warn (8722) at Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:5:59) javascript.0 2021-04-16 17:55:18.616 warn (8722) at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:323:31) javascript.0 2021-04-16 17:55:18.616 warn (8722) at SAXParser.write (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:1436:13) javascript.0 2021-04-16 17:55:18.616 warn (8722) at closeTag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:889:7) javascript.0 2021-04-16 17:55:18.616 warn (8722) at emitNode (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:629:5) javascript.0 2021-04-16 17:55:18.616 warn (8722) at emit (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:624:35) javascript.0 2021-04-16 17:55:18.615 warn (8722) at SAXParser.onclosetag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:262:26) javascript.0 2021-04-16 17:55:18.615 warn (8722) at Parser.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.615 warn (8722) at Parser.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.615 warn (8722) at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:304:18) javascript.0 2021-04-16 17:55:18.615 warn (8722) at script.js.common.HP_Drucker_Status:60:17 javascript.0 2021-04-16 17:55:18.614 warn (8722) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-04-16 17:55:18.612 warn (8722) State "javascript.0.Drucker.HP.OJ_Pro_8600..ProductNumber" not found javascript.0 2021-04-16 17:55:18.611 warn (8722) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.0 2021-04-16 17:55:18.611 warn (8722) at endReadableNT (_stream_readable.js:1241:12) javascript.0 2021-04-16 17:55:18.611 warn (8722) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.611 warn (8722) at IncomingMessage.emit (events.js:326:22) javascript.0 2021-04-16 17:55:18.611 warn (8722) at Object.onceWrapper (events.js:420:28) javascript.0 2021-04-16 17:55:18.611 warn (8722) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1076:12) javascript.0 2021-04-16 17:55:18.610 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.610 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.610 warn (8722) at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1154:10) javascript.0 2021-04-16 17:55:18.610 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.610 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.610 warn (8722) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) javascript.0 2021-04-16 17:55:18.609 warn (8722) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17) javascript.0 2021-04-16 17:55:18.609 warn (8722) at script.js.common.HP_Drucker_Status:31:9 javascript.0 2021-04-16 17:55:18.609 warn (8722) at exports.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:369:19) javascript.0 2021-04-16 17:55:18.609 warn (8722) at Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:5:59) javascript.0 2021-04-16 17:55:18.609 warn (8722) at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:323:31) javascript.0 2021-04-16 17:55:18.609 warn (8722) at SAXParser.write (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:1436:13) javascript.0 2021-04-16 17:55:18.608 warn (8722) at closeTag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:889:7) javascript.0 2021-04-16 17:55:18.608 warn (8722) at emitNode (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:629:5) javascript.0 2021-04-16 17:55:18.608 warn (8722) at emit (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:624:35) javascript.0 2021-04-16 17:55:18.608 warn (8722) at SAXParser.onclosetag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:262:26) javascript.0 2021-04-16 17:55:18.608 warn (8722) at Parser.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.608 warn (8722) at Parser.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.607 warn (8722) at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:304:18) javascript.0 2021-04-16 17:55:18.607 warn (8722) at script.js.common.HP_Drucker_Status:59:17 javascript.0 2021-04-16 17:55:18.607 warn (8722) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-04-16 17:55:18.604 warn (8722) State "javascript.0.Drucker.HP.OJ_Pro_8600..ConsumablePercentageLevelRemaining" not found javascript.0 2021-04-16 17:55:18.604 warn (8722) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.0 2021-04-16 17:55:18.604 warn (8722) at endReadableNT (_stream_readable.js:1241:12) javascript.0 2021-04-16 17:55:18.603 warn (8722) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.603 warn (8722) at IncomingMessage.emit (events.js:326:22) javascript.0 2021-04-16 17:55:18.603 warn (8722) at Object.onceWrapper (events.js:420:28) javascript.0 2021-04-16 17:55:18.603 warn (8722) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1076:12) javascript.0 2021-04-16 17:55:18.603 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.602 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.602 warn (8722) at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1154:10) javascript.0 2021-04-16 17:55:18.602 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.602 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.602 warn (8722) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) javascript.0 2021-04-16 17:55:18.602 warn (8722) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17) javascript.0 2021-04-16 17:55:18.601 warn (8722) at script.js.common.HP_Drucker_Status:31:9 javascript.0 2021-04-16 17:55:18.601 warn (8722) at exports.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:369:19) javascript.0 2021-04-16 17:55:18.601 warn (8722) at Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:5:59) javascript.0 2021-04-16 17:55:18.601 warn (8722) at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:323:31) javascript.0 2021-04-16 17:55:18.601 warn (8722) at SAXParser.write (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:1436:13) javascript.0 2021-04-16 17:55:18.601 warn (8722) at closeTag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:889:7) javascript.0 2021-04-16 17:55:18.600 warn (8722) at emitNode (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:629:5) javascript.0 2021-04-16 17:55:18.600 warn (8722) at emit (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:624:35) javascript.0 2021-04-16 17:55:18.600 warn (8722) at SAXParser.onclosetag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:262:26) javascript.0 2021-04-16 17:55:18.600 warn (8722) at Parser.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.600 warn (8722) at Parser.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.600 warn (8722) at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:304:18) javascript.0 2021-04-16 17:55:18.599 warn (8722) at script.js.common.HP_Drucker_Status:58:17 javascript.0 2021-04-16 17:55:18.599 warn (8722) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-04-16 17:55:18.593 warn (8722) State "javascript.0.Drucker.HP.OJ_Pro_8600..ConsumableLabelCode" not found javascript.0 2021-04-16 17:55:18.593 warn (8722) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.0 2021-04-16 17:55:18.592 warn (8722) at endReadableNT (_stream_readable.js:1241:12) javascript.0 2021-04-16 17:55:18.592 warn (8722) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.592 warn (8722) at IncomingMessage.emit (events.js:326:22) javascript.0 2021-04-16 17:55:18.592 warn (8722) at Object.onceWrapper (events.js:420:28) javascript.0 2021-04-16 17:55:18.592 warn (8722) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1076:12) javascript.0 2021-04-16 17:55:18.592 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.591 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.591 warn (8722) at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1154:10) javascript.0 2021-04-16 17:55:18.591 warn (8722) at Request.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.591 warn (8722) at Request.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.591 warn (8722) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) javascript.0 2021-04-16 17:55:18.591 warn (8722) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17) javascript.0 2021-04-16 17:55:18.590 warn (8722) at script.js.common.HP_Drucker_Status:31:9 javascript.0 2021-04-16 17:55:18.590 warn (8722) at exports.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:369:19) javascript.0 2021-04-16 17:55:18.590 warn (8722) at Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:5:59) javascript.0 2021-04-16 17:55:18.590 warn (8722) at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:323:31) javascript.0 2021-04-16 17:55:18.590 warn (8722) at SAXParser.write (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:1436:13) javascript.0 2021-04-16 17:55:18.590 warn (8722) at closeTag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:889:7) javascript.0 2021-04-16 17:55:18.589 warn (8722) at emitNode (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:629:5) javascript.0 2021-04-16 17:55:18.589 warn (8722) at emit (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:624:35) javascript.0 2021-04-16 17:55:18.589 warn (8722) at SAXParser.onclosetag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:262:26) javascript.0 2021-04-16 17:55:18.589 warn (8722) at Parser.EventEmitter.emit (domain.js:483:12) javascript.0 2021-04-16 17:55:18.589 warn (8722) at Parser.emit (events.js:314:20) javascript.0 2021-04-16 17:55:18.588 warn (8722) at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:304:18) javascript.0 2021-04-16 17:55:18.588 warn (8722) at script.js.common.HP_Drucker_Status:57:17 javascript.0 2021-04-16 17:55:18.588 warn (8722) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-04-16 17:55:18.585 warn (8722) State "javascript.0.Drucker.HP.OJ_Pro_8600..ConsumableFamilyName" not found javascript.0 2021-04-16 17:55:18.584 info (8722) script.js.common.HP_Drucker_Status: [ERROR] ColorDataPoint not found for CMYK! javascript.0 2021-04-16 17:55:18.491 info (8722) script.js.common.HP_Drucker_Status: registered 0 subscriptions and 0 schedules
Hast du eine Idee woran das liegen kann?
EDIT: Hier noch meine xml:
-
@latzi und wer einen Samsung benutzt, kann den über snmp abfragen (die OID sind glaube ich bei HP genauso):
und so könnte man es dann darstellen
-
@amg_666 sagte in [Vorlage] HP Drucker Füllstände (Javascript).:
die OID sind glaube ich bei HP genauso
Danke, doch leider bei meinem nicht
-
Hallo @latzi,
kann ich Dir ad-hoc nicht beantworten. Ich kann den parser mal mit Deiner XML durchlaufen lassen. Gehe aber mal davon aus, dass das XML vom Drucker konform sein sollte. Evtl. liegt es am xml2js parser.
VG Christian
-
@christian-4
ich hab die warnings mittlerweilen eliminiert - mit einem if-statement vor dem Setzen der Datenpunkte, jetzt läuft´s tadellosif (ColorDataPoint != "") { setState('javascript.0.Drucker.HP
-
-
Bei Deiner XML kommt noch der Colorcode "CMYK" durch.
Du kannst auch in der switch Anweisung ein continue machen wenn der Code auftaucht. zusätzlich kann ein continue im default erfolgen.
VG Christian
-
@christian-4 sagte in [Vorlage] HP Drucker Füllstände (Javascript).:
Habpanel:
Hey, welches Widget hast Du für die Darstellung genutzt.
-
-
@Christian-4, danke
-
Hallo,
ich versuche das Script bei mir zum laufen zubekommen.
Klappt auch soweit, nur es werden mir keine Werte geliefert.
Im Javascriptadapter habe ich das Modul xml2js eingefügt, request hatte ich schon eingefügt.Kann mir da einen helfen?
die xml sieht so aus.
-
@jensus11 Du bekommst doch die Werte geliefert:
dd:ConsumablePercentageLevelRemaining70</dd:ConsumablePercentageLevelRemaining>
Allerdings ist damit man das hier richtig lesen kann, sollte man sowas in CodeTags packen - damit man das auch richtig lesen kann und ggf. nachvollziehen kann.
<dd:ConsumablePercentageLevelRemaining>70</dd:ConsumablePercentageLevelRemaining>
So sieht nämlich obige Zeile in Wahrheit aus. Ob Dein XML Parser funktioniert musst halt mal schauen, was in Deiner Variablen json drin steht.
Ich verstehe zwar nicht alles in dem Code von @Christian-4, z. Bsp warum result (das nach meinem Verständnis ja bereits das JavaScript Objekt lt. xml2js enthalten soll) nun in einen JSON String gewandelt wird, um im nächsten Augenblick wieder ein JavaScript Objekt aus dem JSON String zu generieren
xml = JSON.stringify(result); var json = JSON.parse(xml);
Grundsätzlich habe ich das aber mal mit NodeRed nachvollzogen und in der Hauptschleife des Javascript Codes von @Christian-4 , der Deine Datenpunkte im iobroker schreibt, iteriert er über folgendes Array:
for (var i in json['ccdyn:ConsumableConfigDyn']['ccdyn:ConsumableInfo']) { let node = json['ccdyn:ConsumableConfigDyn']['ccdyn:ConsumableInfo'][i]; ...
Also musst mal Deine Variable json bzw. in der Variablen node, die die jeweiligen array Elemente enthält, anschauen. Hier sollten dann die Elemente aus dem Screenshot zu sehen sein.
-
@mickym das Problem ist das keine json erstellt wird oder zu finden ist oder ich sie nicht finde unter den Objekten(was ich aber nicht glaube).
-
@jensus11
Hast Du den Code gelesen, werden denn die Datenpunkte angelegt im iobroker, die mit createState erzeugt wurden?
==> Ich gehe mal davon aus, da Du nur schreibst das keine Werte angezeigt werden
Du sagst das keine Werte geliefert werden?
==> Stimmt nicht, denn unter Deiner XML Datei kann man die Werte ja sehen (wie gesagt pack es bitte in Code-Tags)Ich bedien mich mal hier von @Glasfaser mit der tollen Illustration.
Ansonsten musst Du halt zu Debug-Zwecken mal ins Log schreiben.
In der Schleife nach:
let node = json['ccdyn:ConsumableConfigDyn']['ccdyn:ConsumableInfo'][i];
könntest Du ja mal prüfen, ob das NodeObjekt sauber ausgelesen wird.
also nach der Zeile
let ConsumablePercentageLevelRemaining = node['dd:ConsumablePercentageLevelRemaining'];
ein
console.log(ConsumablePercentageLevelRemaining);
Dann natürlich im LOG schauen, ob die Werte dort geschrieben werden.
dann weisst Du
- die Daten kommen an und werden sauber ausgeslesen
- ggf. nur ein Problem mit dem Schreiben der Daten aber wo
-
@mickym
ja den Code habe ich gelesen und die Datenpunkte werden angelegt nur hallt nicht ausgefüllt. Steht halt überall NULL.This XML file does not appear to have any style information associated with it. The document tree is shown below. <!-- THIS DATA SUBJECT TO DISCLAIMER(S) INCLUDED WITH THE PRODUCT OF ORIGIN. --> <ccdyn:ConsumableConfigDyn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:ccdyn="http://www.hp.com/schemas/imaging/con/ledm/consumableconfigdyn/2007/11/19" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/ dd/DataDictionaryMasterLEDM.xsd http://www.hp.com/schemas/imaging/con/ledm/consumableconfigdyn/2007/11/19 ConsumableConfigDyn.xsd"> <dd:Version> <dd:Revision>SVN-IPG-LEDM.1103</dd:Revision> </dd:Version> <ccdyn:ProductConsumableInfo> <dd:NumOfUserReplaceableConsumables>4</dd:NumOfUserReplaceableConsumables> <dd:NumOfNonUserReplaceableConsumables>0</dd:NumOfNonUserReplaceableConsumables> <ccdyn:AtVeryLowSettings> <ccdyn:ConsumableSetting> <dd:ConsumableLabelCode>K</dd:ConsumableLabelCode> <dd:ConsumableStateAction>continue</dd:ConsumableStateAction> </ccdyn:ConsumableSetting> <ccdyn:ConsumableSetting> <dd:ConsumableLabelCode>CMY</dd:ConsumableLabelCode> <dd:ConsumableStateAction>continue</dd:ConsumableStateAction> </ccdyn:ConsumableSetting> </ccdyn:AtVeryLowSettings> <dd:StoreUsageData>disabled</dd:StoreUsageData> <ccdyn:GenuineHPSuppliesOnly>disabled</ccdyn:GenuineHPSuppliesOnly> </ccdyn:ProductConsumableInfo> <ccdyn:ConsumableInfo> <dd:Capacity> <dd:MaxCapacity>13</dd:MaxCapacity> <dd:Unit>100ImpressionsAt5PercentCoverage</dd:Unit> </dd:Capacity> <dd:CartridgeModelInformation>6600</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0087</dd:CartridgeModelLife> <dd:ConsumableFamilyName>Black toner supply</dd:ConsumableFamilyName> <dd:ConsumableLabelCode>K</dd:ConsumableLabelCode> <dd:ConsumableLastUsedDate>2021-07-03</dd:ConsumableLastUsedDate> <dd:ConsumableLifeState> <dd:ConsumableState>ok</dd:ConsumableState> <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState> <dd:Brand>HP</dd:Brand> </dd:ConsumableLifeState> <dd:ConsumableLowThreshold>10</dd:ConsumableLowThreshold> <dd:ConsumablePercentageLevelRemaining>70</dd:ConsumablePercentageLevelRemaining> <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType> <dd:ConsumableSelectibilityNumber>207A</dd:ConsumableSelectibilityNumber> <dd:ConsumableStation>0</dd:ConsumableStation> <dd:ConsumableTypeEnum>toner</dd:ConsumableTypeEnum> <dd:Installation> <dd:Date>1976-01-01</dd:Date> </dd:Installation> <dd:Manufacturer> <dd:Name>HP</dd:Name> <dd:Date>2020-09-10</dd:Date> </dd:Manufacturer> <dd:ProductNumber>W2210A</dd:ProductNumber> <dd:SerialNumber>xxxxxxxxx</dd:SerialNumber> <dd:ConsumableManufacturingSignature> xxxxxxxdced8fe40921648037091df898be8592631e0cc685fa5ca01fb1390d50ee82105c127837acadd887c3b18bd8a14099dc991d668c43400bd3d2effaca896f6d0bf41dbe24d78afbe15ef5054f9d96d7180fa6792fbff830d0bcd785c89a821c8fe7e00a2cad4975a48c1fa7f51041ec34e874cf8097a4780127507c626b2f90fdd1284893c1b12b2409918ee266b8d067d49444cdabdac3a2d61b0f6d3c43cae7035567f99513063e69e0529673fca1df088722f2cdd64 </dd:ConsumableManufacturingSignature> <dd:ConsumableEstimatedPages> <dd:ValueInt>1350</dd:ValueInt> <dd:PageYieldUnits>ISOPages</dd:PageYieldUnits> </dd:ConsumableEstimatedPages> <ccdyn:DataCollectionValid>false</ccdyn:DataCollectionValid> <ccdyn:PreviousCartridgeData> <dd:CartridgeModelInformation>0000</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0000</dd:CartridgeModelLife> <dd:ProductNumber/> <dd:Manufacturer> <dd:Name/> <dd:Date>1976-01-01</dd:Date> </dd:Manufacturer> <dd:SerialNumber>0</dd:SerialNumber> <ccdyn:MonoColorRegardlessOfSize>0</ccdyn:MonoColorRegardlessOfSize> <ccdyn:EngineTonerRemaining>0</ccdyn:EngineTonerRemaining> <ccdyn:DrumLife>0</ccdyn:DrumLife> <ccdyn:DeveloperLife>0</ccdyn:DeveloperLife> <ccdyn:DeveloperWearLife>0</ccdyn:DeveloperWearLife> <ccdyn:EngineTonerRemainingLevelVeryLow>0</ccdyn:EngineTonerRemainingLevelVeryLow> <ccdyn:DrumLifeAtVeryLow>0</ccdyn:DrumLifeAtVeryLow> <ccdyn:DeveloperLifeAtVeryLow>0</ccdyn:DeveloperLifeAtVeryLow> <ccdyn:DeveloperWearLifeAtVeryLow>0</ccdyn:DeveloperWearLifeAtVeryLow> <ccdyn:PageCountLetterAreaConvertedAtVeryLow>0</ccdyn:PageCountLetterAreaConvertedAtVeryLow> </ccdyn:PreviousCartridgeData> </ccdyn:ConsumableInfo> <ccdyn:ConsumableInfo> <dd:Capacity> <dd:MaxCapacity>7</dd:MaxCapacity> <dd:Unit>100ImpressionsAt5PercentCoverage</dd:Unit> </dd:Capacity> <dd:CartridgeModelInformation>6603</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0046</dd:CartridgeModelLife> <dd:ConsumableFamilyName>Cyan toner supply</dd:ConsumableFamilyName> <dd:ConsumableLabelCode>C</dd:ConsumableLabelCode> <dd:ConsumableLastUsedDate>2021-07-03</dd:ConsumableLastUsedDate> <dd:ConsumableLifeState> <dd:ConsumableState>ok</dd:ConsumableState> <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState> <dd:Brand>HP</dd:Brand> </dd:ConsumableLifeState> <dd:ConsumableLowThreshold>10</dd:ConsumableLowThreshold> <dd:ConsumablePercentageLevelRemaining>70</dd:ConsumablePercentageLevelRemaining> <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType> <dd:ConsumableSelectibilityNumber>207A</dd:ConsumableSelectibilityNumber> <dd:ConsumableStation>3</dd:ConsumableStation> <dd:ConsumableTypeEnum>toner</dd:ConsumableTypeEnum> <dd:Installation> <dd:Date>1976-01-01</dd:Date> </dd:Installation> <dd:Manufacturer> <dd:Name>HP</dd:Name> <dd:Date>2020-09-14</dd:Date> </dd:Manufacturer> <dd:ProductNumber>W2211A</dd:ProductNumber> <dd:SerialNumber>xxxxxxxxx</dd:SerialNumber> <dd:ConsumableManufacturingSignature> xxxxxxxxxbc2994cbe32689d404d448ef561500d3bd46c62f3d7ce273918abcbc8d56abff56ad514b00ab9ed4b0e938b23e400505f2556c9960eeabc77f4c1c325b4ffc5c1161ca78ac6783957c628b5482a78bdede1f3c58559d952d908430099b078097cc0d6f9e832a400a1295cec7c233bf7d6cac5bde1cbe0d6fe5be010f05756e6852b736f2b12eafba3c0f23cad5ce1a04d784f89801ba5bcd74add3b602ef370250b8cffe3db34feb1e81ec9fd75f997d72d88e7355aed665a7ee </dd:ConsumableManufacturingSignature> <dd:ConsumableEstimatedPages> <dd:ValueInt>700</dd:ValueInt> <dd:PageYieldUnits>ISOPages</dd:PageYieldUnits> </dd:ConsumableEstimatedPages> <ccdyn:DataCollectionValid>false</ccdyn:DataCollectionValid> <ccdyn:PreviousCartridgeData> <dd:CartridgeModelInformation>0000</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0000</dd:CartridgeModelLife> <dd:ProductNumber/> <dd:Manufacturer> <dd:Name/> <dd:Date>1976-01-01</dd:Date> </dd:Manufacturer> <dd:SerialNumber>0</dd:SerialNumber> <ccdyn:MonoColorRegardlessOfSize>0</ccdyn:MonoColorRegardlessOfSize> <ccdyn:EngineTonerRemaining>0</ccdyn:EngineTonerRemaining> <ccdyn:DrumLife>0</ccdyn:DrumLife> <ccdyn:DeveloperLife>0</ccdyn:DeveloperLife> <ccdyn:DeveloperWearLife>0</ccdyn:DeveloperWearLife> <ccdyn:EngineTonerRemainingLevelVeryLow>0</ccdyn:EngineTonerRemainingLevelVeryLow> <ccdyn:DrumLifeAtVeryLow>0</ccdyn:DrumLifeAtVeryLow> <ccdyn:DeveloperLifeAtVeryLow>0</ccdyn:DeveloperLifeAtVeryLow> <ccdyn:DeveloperWearLifeAtVeryLow>0</ccdyn:DeveloperWearLifeAtVeryLow> <ccdyn:PageCountLetterAreaConvertedAtVeryLow>0</ccdyn:PageCountLetterAreaConvertedAtVeryLow> </ccdyn:PreviousCartridgeData> </ccdyn:ConsumableInfo> <ccdyn:ConsumableInfo> <dd:Capacity> <dd:MaxCapacity>7</dd:MaxCapacity> <dd:Unit>100ImpressionsAt5PercentCoverage</dd:Unit> </dd:Capacity> <dd:CartridgeModelInformation>6602</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0046</dd:CartridgeModelLife> <dd:ConsumableFamilyName>Magenta toner supply</dd:ConsumableFamilyName> <dd:ConsumableLabelCode>M</dd:ConsumableLabelCode> <dd:ConsumableLastUsedDate>2021-07-03</dd:ConsumableLastUsedDate> <dd:ConsumableLifeState> <dd:ConsumableState>ok</dd:ConsumableState> <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState> <dd:Brand>HP</dd:Brand> </dd:ConsumableLifeState> <dd:ConsumableLowThreshold>10</dd:ConsumableLowThreshold> <dd:ConsumablePercentageLevelRemaining>70</dd:ConsumablePercentageLevelRemaining> <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType> <dd:ConsumableSelectibilityNumber>207A</dd:ConsumableSelectibilityNumber> <dd:ConsumableStation>2</dd:ConsumableStation> <dd:ConsumableTypeEnum>toner</dd:ConsumableTypeEnum> <dd:Installation> <dd:Date>1976-01-01</dd:Date> </dd:Installation> <dd:Manufacturer> <dd:Name>HP</dd:Name> <dd:Date>2020-09-13</dd:Date> </dd:Manufacturer> <dd:ProductNumber>W2213A</dd:ProductNumber> <dd:SerialNumber>xxxxxxxxx</dd:SerialNumber> <dd:ConsumableManufacturingSignature> xxxxxxxxxcc51a6eb16aa8a4446107dbc62a7c835c273d4fea88c8c4d2f926fe7973e5fa0917d4481856296c4bcf753cb20b3aa839664dbddb824f37e6ad051c5c6e71dbc86411b53f0f5040c0fc30259230323969a3133452ffd2ba38afd29d1f7949a6160e2f8eaa998235a6f95084feebede2dd98af10d4b9d95168b545c4172bcc57e2b77d634395d52fec261254130911227e36ad6d4322301176d588f330fb612ecca88d852f5e291eede135162e76df70e14c69648c0b2c6331e45 </dd:ConsumableManufacturingSignature> <dd:ConsumableEstimatedPages> <dd:ValueInt>700</dd:ValueInt> <dd:PageYieldUnits>ISOPages</dd:PageYieldUnits> </dd:ConsumableEstimatedPages> <ccdyn:DataCollectionValid>false</ccdyn:DataCollectionValid> <ccdyn:PreviousCartridgeData> <dd:CartridgeModelInformation>0000</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0000</dd:CartridgeModelLife> <dd:ProductNumber/> <dd:Manufacturer> <dd:Name/> <dd:Date>1976-01-01</dd:Date> </dd:Manufacturer> <dd:SerialNumber>0</dd:SerialNumber> <ccdyn:MonoColorRegardlessOfSize>0</ccdyn:MonoColorRegardlessOfSize> <ccdyn:EngineTonerRemaining>0</ccdyn:EngineTonerRemaining> <ccdyn:DrumLife>0</ccdyn:DrumLife> <ccdyn:DeveloperLife>0</ccdyn:DeveloperLife> <ccdyn:DeveloperWearLife>0</ccdyn:DeveloperWearLife> <ccdyn:EngineTonerRemainingLevelVeryLow>0</ccdyn:EngineTonerRemainingLevelVeryLow> <ccdyn:DrumLifeAtVeryLow>0</ccdyn:DrumLifeAtVeryLow> <ccdyn:DeveloperLifeAtVeryLow>0</ccdyn:DeveloperLifeAtVeryLow> <ccdyn:DeveloperWearLifeAtVeryLow>0</ccdyn:DeveloperWearLifeAtVeryLow> <ccdyn:PageCountLetterAreaConvertedAtVeryLow>0</ccdyn:PageCountLetterAreaConvertedAtVeryLow> </ccdyn:PreviousCartridgeData> </ccdyn:ConsumableInfo> <ccdyn:ConsumableInfo> <dd:Capacity> <dd:MaxCapacity>7</dd:MaxCapacity> <dd:Unit>100ImpressionsAt5PercentCoverage</dd:Unit> </dd:Capacity> <dd:CartridgeModelInformation>6601</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0046</dd:CartridgeModelLife> <dd:ConsumableFamilyName>Yellow toner supply</dd:ConsumableFamilyName> <dd:ConsumableLabelCode>Y</dd:ConsumableLabelCode> <dd:ConsumableLastUsedDate>2021-07-03</dd:ConsumableLastUsedDate> <dd:ConsumableLifeState> <dd:ConsumableState>ok</dd:ConsumableState> <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState> <dd:Brand>HP</dd:Brand> </dd:ConsumableLifeState> <dd:ConsumableLowThreshold>10</dd:ConsumableLowThreshold> <dd:ConsumablePercentageLevelRemaining>60</dd:ConsumablePercentageLevelRemaining> <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType> <dd:ConsumableSelectibilityNumber>207A</dd:ConsumableSelectibilityNumber> <dd:ConsumableStation>1</dd:ConsumableStation> <dd:ConsumableTypeEnum>toner</dd:ConsumableTypeEnum> <dd:Installation> <dd:Date>1976-01-01</dd:Date> </dd:Installation> <dd:Manufacturer> <dd:Name>HP</dd:Name> <dd:Date>2020-09-12</dd:Date> </dd:Manufacturer> <dd:ProductNumber>W2212A</dd:ProductNumber> <dd:SerialNumber>xxxxxxxxx</dd:SerialNumber> <dd:ConsumableManufacturingSignature> xxxxxxxxx4878c48c0f92b3aeca01af66a0258308eccc50ad3af56d588b5e037a9f63ce79cee6ac1f03a913ce2614e0005261637dbe8d714a0f1919314842410f45591656b2d8fecc3480a1be0a3224cfc811bddbc1a36cf7954129203a002e6fd45de72f256279555f50648886fe0a5f5f57046a33c5ddbf89ad03ce8ba0e652a55cf4a8639e518cbe9892293a41a7d6683caa969013b3c66dc57420f765a622fa97c70b6ffa82af56624db922353de534f1e504600c498c6befb340bf0133 </dd:ConsumableManufacturingSignature> <dd:ConsumableEstimatedPages> <dd:ValueInt>700</dd:ValueInt> <dd:PageYieldUnits>ISOPages</dd:PageYieldUnits> </dd:ConsumableEstimatedPages> <ccdyn:DataCollectionValid>false</ccdyn:DataCollectionValid> <ccdyn:PreviousCartridgeData> <dd:CartridgeModelInformation>0000</dd:CartridgeModelInformation> <dd:CartridgeModelLife>0000</dd:CartridgeModelLife> <dd:ProductNumber/> <dd:Manufacturer> <dd:Name/> <dd:Date>1976-01-01</dd:Date> </dd:Manufacturer> <dd:SerialNumber>0</dd:SerialNumber> <ccdyn:MonoColorRegardlessOfSize>0</ccdyn:MonoColorRegardlessOfSize> <ccdyn:EngineTonerRemaining>0</ccdyn:EngineTonerRemaining> <ccdyn:DrumLife>0</ccdyn:DrumLife> <ccdyn:DeveloperLife>0</ccdyn:DeveloperLife> <ccdyn:DeveloperWearLife>0</ccdyn:DeveloperWearLife> <ccdyn:EngineTonerRemainingLevelVeryLow>0</ccdyn:EngineTonerRemainingLevelVeryLow> <ccdyn:DrumLifeAtVeryLow>0</ccdyn:DrumLifeAtVeryLow> <ccdyn:DeveloperLifeAtVeryLow>0</ccdyn:DeveloperLifeAtVeryLow> <ccdyn:DeveloperWearLifeAtVeryLow>0</ccdyn:DeveloperWearLifeAtVeryLow> <ccdyn:PageCountLetterAreaConvertedAtVeryLow>0</ccdyn:PageCountLetterAreaConvertedAtVeryLow> </ccdyn:PreviousCartridgeData> </ccdyn:ConsumableInfo> </ccdyn:ConsumableConfigDyn>
-