Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Christian 4

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    C
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 7
    • Best 1
    • Groups 1

    Christian 4

    @Christian 4

    Starter

    2
    Reputation
    3
    Profile views
    7
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Christian 4 Follow
    Starter

    Best posts made by Christian 4

    • [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:
      Bildschirmfoto 2021-04-16 um 11.52.48.png

      Habpanel:
      Bildschirmfoto 2021-04-16 um 12.38.37.png

      posted in JavaScript
      C
      Christian 4

    Latest posts made by Christian 4

    • RE: [Vorlage] HP Drucker Füllstände (Javascript).

      Hallo @nashra,

      den Standard Drehknopf im Habpanel.

      Bildschirmfoto 2021-04-19 um 07.44.35.png

      VG Christian

      posted in JavaScript
      C
      Christian 4
    • RE: [Vorlage] HP Drucker Füllstände (Javascript).

      @latzi

      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.

      Bildschirmfoto 2021-04-18 um 12.04.51.png

      VG Christian

      posted in JavaScript
      C
      Christian 4
    • RE: [Vorlage] HP Drucker Füllstände (Javascript).

      @latzi
      👍

      posted in JavaScript
      C
      Christian 4
    • RE: [Vorlage] HP Drucker Füllstände (Javascript).

      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

      posted in JavaScript
      C
      Christian 4
    • RE: [Vorlage] HP Drucker Füllstände (Javascript).

      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

      posted in JavaScript
      C
      Christian 4
    • [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:
      Bildschirmfoto 2021-04-16 um 11.52.48.png

      Habpanel:
      Bildschirmfoto 2021-04-16 um 12.38.37.png

      posted in JavaScript
      C
      Christian 4
    • RE: Spotify: playlist error empty playlist name

      @jayr @seb2010 Habt Ihr es hinbekommen ? Selbiges bei mir...

      posted in ioBroker Allgemein
      C
      Christian 4
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo