Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Script und VIS: Druckerpatronen Zustand

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.8k

[Vorlage] Script und VIS: Druckerpatronen Zustand

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
176 Beiträge 43 Kommentatoren 96.2k Aufrufe 16 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T TottiToad

    @bahnuhr

    :man-facepalming: ja das macht sinn ;)

    Hier das Script welches ich verwende:

    
    /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
        Drucker HP Tintenstand für iobroker ermitteln
       Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
       und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
       Author : looxer01 - 22.12.2015
       Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
       kosmetik ykuendig
     */
     
    // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
      
     var druckerIP       = '192.168.178.127';            // Drucker IP 
     var druckermod      = "officejet";                   // Drucker Modell - Strukturelement in den Variablen
     var TinteID         = "953XL";                  // Tinte - Tintenbezeichnung
     var TinteCyanBez    = "F6U16A";                // Bezeichnung fuer Cyan
     var TinteMagentaBez = "F6U17A";                // Bezeichnung fuer Magenta
     var TinteYellowBez  = "F6U18A";                // Bezeichnung fuer Yellow
     var TinteBlackBez   = "L0R40A";                // Bezeichnung fuer Black
      
     // ENDE der Einstellungen
      
     var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
     var request         = require('request');                                                   // Enabling for URL Request
     var cut0            = "dd:Capacity";                                                        // Marker für capacity
     var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
     var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
      
     var level_C  = 0;                                                                           // Tintenlevel
     var level_M  = 0;                                                                           // Tintenlevel
     var level_Y  = 0;                                                                           // Tintenlevel
     var level_K  = 0;                                                                           // Tintenlevel
      
     var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
     var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
     var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
     var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
      
     var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
     var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
     var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
     var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
      
     var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
     var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
     var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
     var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
      
     // Anlegen der Variablen
     createState(DruckIP,druckerIP);
     createState(DruckerName,druckermod);
     createState(Tinte,TinteID);
      
     createState(CyanInk,TinteCyanBez);
     createState(MagentaInk,TinteMagentaBez);
     createState(YellowInk,TinteYellowBez);
     createState(BlackInk,TinteBlackBez);
      
     createState(CyanLevel,0);
     createState(MagentaLevel,0);
     createState(YellowLevel,0);
     createState(BlackLevel),0;
      
     // Schedule für die Updates
     schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
     Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
      
     function Drucker () {
      
         request(druckerURL, function (error, response, body) {                              // Einlesen der XML Information
         if (!error && response.statusCode == 200) {                                         // error check
      
             // Farbe nummer 1   
             var null_position = body.indexOf(cut0) + cut0.length + 1 ;
             var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
             var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
             var zwei_position = body.indexOf(cut2)+ cut2.length  + 1;                       // zweite Position finden
             var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
             var eins_lastpos = eins_position;                                               // merken position eins
             var zwei_lastpos = zwei_position;                                               // merken position zwei
             var TagEndMarker = '<';
      
             if("C" == color){ level_C  = level_string; }
             if("M" == color){ level_M  = level_string; }
             if("Y" == color){ level_Y  = level_string; }
             if("K" == color){ level_K  = level_string; }
      
             eins_lastpos = eins_position + 10;
             zwei_lastpos = zwei_position + 10;               
      
             // Farbe nummer 2   
             eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
             color =   body.substring(eins_position, eins_position+1) ;
             zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
             level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
      
             if("C" == color){ level_C  = level_string; }
             if("M" == color){ level_M  = level_string; }
             if("Y" == color){ level_Y  = level_string; }
             if("K" == color){ level_K  = level_string; }
      
             eins_lastpos = eins_position + 10;
             zwei_lastpos = zwei_position + 10;               
      
             // Farbe nummer 3   
             eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
             color =   body.substring(eins_position, eins_position+1) ;
             zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
             level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
      
             if("C" == color){ level_C  = level_string; }
             if("M" == color){ level_M  = level_string; }
             if("Y" == color){ level_Y  = level_string; }
             if("K" == color){ level_K  = level_string; }
      
             eins_lastpos = eins_position + 10;
             zwei_lastpos = zwei_position + 10;               
      
             // Farbe nummer 4 
             eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
             color =   body.substring(eins_position, eins_position+1) ;
             zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
             level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
      
             if("C" == color){ level_C  = level_string; }
             if("M" == color){ level_M  = level_string; }
             if("Y" == color){ level_Y  = level_string; }
             if("p" == color){ level_pK = level_string; }
             if("K" == color){ level_K  = level_string; }
      
             eins_lastpos = eins_position + 10;
             zwei_lastpos = zwei_position + 10;               
      
             log('Drucker Level  C ' + level_C  , "info");
             log('Drucker Level  M ' + level_M  , "info");
             log('Drucker Level  Y ' + level_Y  , "info");
             log('Drucker Level  K ' + level_K  , "info");
      
             // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
             setState(CyanLevel, level_C);
             setState(MagentaLevel, level_M);
             setState(YellowLevel, level_Y);
             setState(BlackLevel, level_K);
             setState(DruckIP, druckerIP);
      
         } else  {  //   if (!error && response.statusCode == 200) {
             log(error);
             log('Kein Drucker gefunden');
         }
      
         }); // end of request
      
     } // end of function
    
    

    Bin gespannt ob ihr den Fehler direkt findet

    Grüße & Danke
    Totti

    A Offline
    A Offline
    Ahnungsbefreit
    schrieb am zuletzt editiert von
    #131

    @tottitoad Ich habe den Fehler gefunden, die Variable "TagEndMarker" wird bei der ersten Farbe in Zeile 78 verwendet, aber erst in Zeile 81 deklariert. Habe noch eine nicht genutzte Zeile rausgeworfen, so läuft es jetzt bei mir für HP OfficeJet 8600 Pro:

    /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
       Drucker HP Tintenstand für iobroker ermitteln
      Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
      und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
      Author : looxer01 - 22.12.2015
      Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
      kosmetik ykuendig
    */
     
    // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
     
    var druckerIP       = '192.168.178.33';            // Drucker IP 
    var druckermod      = "HPOJ8600";                   // Drucker Modell - Strukturelement in den Variablen
    var TinteID         = "950XL";                  // Tinte - Tintenbezeichnung
    var TinteCyanBez    = "CN046A";                // Bezeichnung fuer Cyan
    var TinteMagentaBez = "CN047A";                // Bezeichnung fuer Magenta
    var TinteYellowBez  = "CN048A";                // Bezeichnung fuer Yellow
    var TinteBlackBez   = "CN045A";                // Bezeichnung fuer Black
     
    // ENDE der Einstellungen
     
    var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
    var request         = require('request');                                                   // Enabling for URL Request
    var cut0            = "dd:Capacity";                                                        // Marker für capacity
    var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
    var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
     
    var level_C  = 0;                                                                           // Tintenlevel
    var level_M  = 0;                                                                           // Tintenlevel
    var level_Y  = 0;                                                                           // Tintenlevel
    var level_K  = 0;                                                                           // Tintenlevel
     
    var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
    var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
    var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
    var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
     
    var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
    var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
    var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
    var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
     
    var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
    var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
    var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
    var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
     
    // Anlegen der Variablen
    createState(DruckIP,druckerIP);
    createState(DruckerName,druckermod);
    createState(Tinte,TinteID);
     
    createState(CyanInk,TinteCyanBez);
    createState(MagentaInk,TinteMagentaBez);
    createState(YellowInk,TinteYellowBez);
    createState(BlackInk,TinteBlackBez);
     
    createState(CyanLevel,0);
    createState(MagentaLevel,0);
    createState(YellowLevel,0);
    createState(BlackLevel),0;
     
    // Schedule für die Updates
    schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
    Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
     
    function Drucker () {
     
        request(druckerURL, function (error, response, body) {                              // Einlesen der XML Information
        if (!error && response.statusCode == 200) {                                         // error check
     
            // Farbe nummer 1  
            var TagEndMarker = '<'; 
            var null_position = body.indexOf(cut0) + cut0.length + 1 ;
            var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
            var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
            var zwei_position = body.indexOf(cut2)+ cut2.length  + 1;                       // zweite Position finden
            var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
            var eins_lastpos = eins_position;                                               // merken position eins
            var zwei_lastpos = zwei_position;                                               // merken position zwei
            
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            // Farbe nummer 2   
            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
            color =   body.substring(eins_position, eins_position+1) ;
            zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            // Farbe nummer 3   
            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
            color =   body.substring(eins_position, eins_position+1) ;
            zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            // Farbe nummer 4 
            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
            color =   body.substring(eins_position, eins_position+1) ;
            zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
     
            if("C" == color){ level_C  = level_string; }
            if("M" == color){ level_M  = level_string; }
            if("Y" == color){ level_Y  = level_string; }
            if("K" == color){ level_K  = level_string; }
     
            eins_lastpos = eins_position + 10;
            zwei_lastpos = zwei_position + 10;               
     
            log('Drucker Level  C ' + level_C  , "info");
            log('Drucker Level  M ' + level_M  , "info");
            log('Drucker Level  Y ' + level_Y  , "info");
            log('Drucker Level  K ' + level_K  , "info");
     
            // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
            setState(CyanLevel, level_C);
            setState(MagentaLevel, level_M);
            setState(YellowLevel, level_Y);
            setState(BlackLevel, level_K);
            setState(DruckIP, druckerIP);
     
        } else  {  //   if (!error && response.statusCode == 200) {
            log(error);
            log('Kein Drucker gefunden');
        }
     
        }); // end of request
     
    } // end of function
    
    

    Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

    H P 2 Antworten Letzte Antwort
    0
    • A Ahnungsbefreit

      @tottitoad Ich habe den Fehler gefunden, die Variable "TagEndMarker" wird bei der ersten Farbe in Zeile 78 verwendet, aber erst in Zeile 81 deklariert. Habe noch eine nicht genutzte Zeile rausgeworfen, so läuft es jetzt bei mir für HP OfficeJet 8600 Pro:

      /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
         Drucker HP Tintenstand für iobroker ermitteln
        Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
        und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
        Author : looxer01 - 22.12.2015
        Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
        kosmetik ykuendig
      */
       
      // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
       
      var druckerIP       = '192.168.178.33';            // Drucker IP 
      var druckermod      = "HPOJ8600";                   // Drucker Modell - Strukturelement in den Variablen
      var TinteID         = "950XL";                  // Tinte - Tintenbezeichnung
      var TinteCyanBez    = "CN046A";                // Bezeichnung fuer Cyan
      var TinteMagentaBez = "CN047A";                // Bezeichnung fuer Magenta
      var TinteYellowBez  = "CN048A";                // Bezeichnung fuer Yellow
      var TinteBlackBez   = "CN045A";                // Bezeichnung fuer Black
       
      // ENDE der Einstellungen
       
      var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
      var request         = require('request');                                                   // Enabling for URL Request
      var cut0            = "dd:Capacity";                                                        // Marker für capacity
      var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
      var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
       
      var level_C  = 0;                                                                           // Tintenlevel
      var level_M  = 0;                                                                           // Tintenlevel
      var level_Y  = 0;                                                                           // Tintenlevel
      var level_K  = 0;                                                                           // Tintenlevel
       
      var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
      var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
      var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
      var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
       
      var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
      var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
      var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
      var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
       
      var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
      var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
      var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
      var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
       
      // Anlegen der Variablen
      createState(DruckIP,druckerIP);
      createState(DruckerName,druckermod);
      createState(Tinte,TinteID);
       
      createState(CyanInk,TinteCyanBez);
      createState(MagentaInk,TinteMagentaBez);
      createState(YellowInk,TinteYellowBez);
      createState(BlackInk,TinteBlackBez);
       
      createState(CyanLevel,0);
      createState(MagentaLevel,0);
      createState(YellowLevel,0);
      createState(BlackLevel),0;
       
      // Schedule für die Updates
      schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
      Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
       
      function Drucker () {
       
          request(druckerURL, function (error, response, body) {                              // Einlesen der XML Information
          if (!error && response.statusCode == 200) {                                         // error check
       
              // Farbe nummer 1  
              var TagEndMarker = '<'; 
              var null_position = body.indexOf(cut0) + cut0.length + 1 ;
              var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
              var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
              var zwei_position = body.indexOf(cut2)+ cut2.length  + 1;                       // zweite Position finden
              var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
              var eins_lastpos = eins_position;                                               // merken position eins
              var zwei_lastpos = zwei_position;                                               // merken position zwei
              
       
              if("C" == color){ level_C  = level_string; }
              if("M" == color){ level_M  = level_string; }
              if("Y" == color){ level_Y  = level_string; }
              if("K" == color){ level_K  = level_string; }
       
              eins_lastpos = eins_position + 10;
              zwei_lastpos = zwei_position + 10;               
       
              // Farbe nummer 2   
              eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
              color =   body.substring(eins_position, eins_position+1) ;
              zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
              level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
       
              if("C" == color){ level_C  = level_string; }
              if("M" == color){ level_M  = level_string; }
              if("Y" == color){ level_Y  = level_string; }
              if("K" == color){ level_K  = level_string; }
       
              eins_lastpos = eins_position + 10;
              zwei_lastpos = zwei_position + 10;               
       
              // Farbe nummer 3   
              eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
              color =   body.substring(eins_position, eins_position+1) ;
              zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
              level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
       
              if("C" == color){ level_C  = level_string; }
              if("M" == color){ level_M  = level_string; }
              if("Y" == color){ level_Y  = level_string; }
              if("K" == color){ level_K  = level_string; }
       
              eins_lastpos = eins_position + 10;
              zwei_lastpos = zwei_position + 10;               
       
              // Farbe nummer 4 
              eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
              color =   body.substring(eins_position, eins_position+1) ;
              zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
              level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
       
              if("C" == color){ level_C  = level_string; }
              if("M" == color){ level_M  = level_string; }
              if("Y" == color){ level_Y  = level_string; }
              if("K" == color){ level_K  = level_string; }
       
              eins_lastpos = eins_position + 10;
              zwei_lastpos = zwei_position + 10;               
       
              log('Drucker Level  C ' + level_C  , "info");
              log('Drucker Level  M ' + level_M  , "info");
              log('Drucker Level  Y ' + level_Y  , "info");
              log('Drucker Level  K ' + level_K  , "info");
       
              // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
              setState(CyanLevel, level_C);
              setState(MagentaLevel, level_M);
              setState(YellowLevel, level_Y);
              setState(BlackLevel, level_K);
              setState(DruckIP, druckerIP);
       
          } else  {  //   if (!error && response.statusCode == 200) {
              log(error);
              log('Kein Drucker gefunden');
          }
       
          }); // end of request
       
      } // end of function
      
      
      H Offline
      H Offline
      homecineplexx
      schrieb am zuletzt editiert von
      #132

      gibts sowas auch für Canon Drucker?

      1 Antwort Letzte Antwort
      0
      • C Offline
        C Offline
        Ceel
        schrieb am zuletzt editiert von
        #133

        @homecineplexx
        das würde ich auch gerne haben
        ich habe ein TS6050 und könnte mich zum Testen bereiterklären

        1 Antwort Letzte Antwort
        0
        • A Ahnungsbefreit

          @tottitoad Ich habe den Fehler gefunden, die Variable "TagEndMarker" wird bei der ersten Farbe in Zeile 78 verwendet, aber erst in Zeile 81 deklariert. Habe noch eine nicht genutzte Zeile rausgeworfen, so läuft es jetzt bei mir für HP OfficeJet 8600 Pro:

          /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
             Drucker HP Tintenstand für iobroker ermitteln
            Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
            und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
            Author : looxer01 - 22.12.2015
            Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
            kosmetik ykuendig
          */
           
          // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
           
          var druckerIP       = '192.168.178.33';            // Drucker IP 
          var druckermod      = "HPOJ8600";                   // Drucker Modell - Strukturelement in den Variablen
          var TinteID         = "950XL";                  // Tinte - Tintenbezeichnung
          var TinteCyanBez    = "CN046A";                // Bezeichnung fuer Cyan
          var TinteMagentaBez = "CN047A";                // Bezeichnung fuer Magenta
          var TinteYellowBez  = "CN048A";                // Bezeichnung fuer Yellow
          var TinteBlackBez   = "CN045A";                // Bezeichnung fuer Black
           
          // ENDE der Einstellungen
           
          var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
          var request         = require('request');                                                   // Enabling for URL Request
          var cut0            = "dd:Capacity";                                                        // Marker für capacity
          var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
          var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
           
          var level_C  = 0;                                                                           // Tintenlevel
          var level_M  = 0;                                                                           // Tintenlevel
          var level_Y  = 0;                                                                           // Tintenlevel
          var level_K  = 0;                                                                           // Tintenlevel
           
          var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
          var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
          var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
          var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
           
          var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
          var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
          var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
          var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
           
          var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
          var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
          var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
          var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
           
          // Anlegen der Variablen
          createState(DruckIP,druckerIP);
          createState(DruckerName,druckermod);
          createState(Tinte,TinteID);
           
          createState(CyanInk,TinteCyanBez);
          createState(MagentaInk,TinteMagentaBez);
          createState(YellowInk,TinteYellowBez);
          createState(BlackInk,TinteBlackBez);
           
          createState(CyanLevel,0);
          createState(MagentaLevel,0);
          createState(YellowLevel,0);
          createState(BlackLevel),0;
           
          // Schedule für die Updates
          schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
          Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
           
          function Drucker () {
           
              request(druckerURL, function (error, response, body) {                              // Einlesen der XML Information
              if (!error && response.statusCode == 200) {                                         // error check
           
                  // Farbe nummer 1  
                  var TagEndMarker = '<'; 
                  var null_position = body.indexOf(cut0) + cut0.length + 1 ;
                  var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
                  var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
                  var zwei_position = body.indexOf(cut2)+ cut2.length  + 1;                       // zweite Position finden
                  var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
                  var eins_lastpos = eins_position;                                               // merken position eins
                  var zwei_lastpos = zwei_position;                                               // merken position zwei
                  
           
                  if("C" == color){ level_C  = level_string; }
                  if("M" == color){ level_M  = level_string; }
                  if("Y" == color){ level_Y  = level_string; }
                  if("K" == color){ level_K  = level_string; }
           
                  eins_lastpos = eins_position + 10;
                  zwei_lastpos = zwei_position + 10;               
           
                  // Farbe nummer 2   
                  eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
                  color =   body.substring(eins_position, eins_position+1) ;
                  zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
                  level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
           
                  if("C" == color){ level_C  = level_string; }
                  if("M" == color){ level_M  = level_string; }
                  if("Y" == color){ level_Y  = level_string; }
                  if("K" == color){ level_K  = level_string; }
           
                  eins_lastpos = eins_position + 10;
                  zwei_lastpos = zwei_position + 10;               
           
                  // Farbe nummer 3   
                  eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
                  color =   body.substring(eins_position, eins_position+1) ;
                  zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
                  level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
           
                  if("C" == color){ level_C  = level_string; }
                  if("M" == color){ level_M  = level_string; }
                  if("Y" == color){ level_Y  = level_string; }
                  if("K" == color){ level_K  = level_string; }
           
                  eins_lastpos = eins_position + 10;
                  zwei_lastpos = zwei_position + 10;               
           
                  // Farbe nummer 4 
                  eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length  + 1;
                  color =   body.substring(eins_position, eins_position+1) ;
                  zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length  + 1;
                  level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
           
                  if("C" == color){ level_C  = level_string; }
                  if("M" == color){ level_M  = level_string; }
                  if("Y" == color){ level_Y  = level_string; }
                  if("K" == color){ level_K  = level_string; }
           
                  eins_lastpos = eins_position + 10;
                  zwei_lastpos = zwei_position + 10;               
           
                  log('Drucker Level  C ' + level_C  , "info");
                  log('Drucker Level  M ' + level_M  , "info");
                  log('Drucker Level  Y ' + level_Y  , "info");
                  log('Drucker Level  K ' + level_K  , "info");
           
                  // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
                  setState(CyanLevel, level_C);
                  setState(MagentaLevel, level_M);
                  setState(YellowLevel, level_Y);
                  setState(BlackLevel, level_K);
                  setState(DruckIP, druckerIP);
           
              } else  {  //   if (!error && response.statusCode == 200) {
                  log(error);
                  log('Kein Drucker gefunden');
              }
           
              }); // end of request
           
          } // end of function
          
          
          P Offline
          P Offline
          ps1304
          schrieb am zuletzt editiert von ps1304
          #134

          @ahnungsbefreit da der iobroker jetzt meldet das die Funktion "request" deprecated wird, habe ich das ganze mit httpget umgebaut. Läuft bei mir mit einen HP9010 (OfficeJet Pro).

          /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
             Drucker HP Tintenstand für iobroker ermitteln
            Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
            und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
            Author : looxer01 - 22.12.2015
            Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
            kosmetik ykuendig
          */
           
          // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
           
          var druckerIP       = '192.168.2.30';            // Drucker IP 
          var druckermod      = "HP-Pro9010";                   // Drucker Modell - Strukturelement in den Variablen
          var TinteID         = "950XL";                  // Tinte - Tintenbezeichnung
          var TinteCyanBez    = "CN046A";                // Bezeichnung fuer Cyan
          var TinteMagentaBez = "CN047A";                // Bezeichnung fuer Magenta
          var TinteYellowBez  = "CN048A";                // Bezeichnung fuer Yellow
          var TinteBlackBez   = "CN045A";                // Bezeichnung fuer Black
           
          // ENDE der Einstellungen
           
          var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
          var http = require('http');                                                                 // Using the http module directly
          var cut0            = "dd:Capacity";                                                        // Marker für capacity
          var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
          var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
           
          var level_C  = 0;                                                                           // Tintenlevel
          var level_M  = 0;                                                                           // Tintenlevel
          var level_Y  = 0;                                                                           // Tintenlevel
          var level_K  = 0;                                                                           // Tintenlevel
           
          var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
          var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
          var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
          var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
           
          var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
          var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
          var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
          var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
           
          var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
          var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
          var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
          var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
           
          // Anlegen der Variablen
          createState(DruckIP,druckerIP);
          createState(DruckerName,druckermod);
          createState(Tinte,TinteID);
           
          createState(CyanInk,TinteCyanBez);
          createState(MagentaInk,TinteMagentaBez);
          createState(YellowInk,TinteYellowBez);
          createState(BlackInk,TinteBlackBez);
           
          createState(CyanLevel,0);
          createState(MagentaLevel,0);
          createState(YellowLevel,0);
          createState(BlackLevel),0;
           
          // Schedule für die Updates
          schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
          Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
           
          function Drucker() {
           
              http.get(druckerURL, (response) => {
                  let body = '';
                  
                  // A chunk of data has been received.
                  response.on('data', (chunk) => {
                      body += chunk;
                  });
                  
                  // The whole response has been received.
                  response.on('end', () => {
                      if (response.statusCode === 200) { // Check if the response is OK
                          // XML parsing logic remains the same
                          var TagEndMarker = '<'; 
                          var null_position = body.indexOf(cut0) + cut0.length + 1 ;
                          var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
                          var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
                          var zwei_position = body.indexOf(cut2) + cut2.length  + 1;                       // zweite Position finden
                          var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
                          var eins_lastpos = eins_position;                                               // merken position eins
                          var zwei_lastpos = zwei_position;                                               // merken position zwei
           
                          if ("C" == color) { level_C  = level_string; }
                          if ("M" == color) { level_M  = level_string; }
                          if ("Y" == color) { level_Y  = level_string; }
                          if ("K" == color) { level_K  = level_string; }
           
                          eins_lastpos = eins_position + 10;
                          zwei_lastpos = zwei_position + 10;               
           
                          // Farbe nummer 2   
                          eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
                          color =   body.substring(eins_position, eins_position+1) ;
                          zwei_position = body.indexOf(cut2, zwei_lastpos) + cut2.length  + 1;
                          level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
           
                          if ("C" == color) { level_C  = level_string; }
                          if ("M" == color) { level_M  = level_string; }
                          if ("Y" == color) { level_Y  = level_string; }
                          if ("K" == color) { level_K  = level_string; }
           
                          eins_lastpos = eins_position + 10;
                          zwei_lastpos = zwei_position + 10;               
           
                          // Farbe nummer 3   
                          eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1;
                          color =   body.substring(eins_position, eins_position+1) ;
                          zwei_position = body.indexOf(cut2, zwei_lastpos) + cut2.length + 1;
                          level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
           
                          if ("C" == color) { level_C  = level_string; }
                          if ("M" == color) { level_M  = level_string; }
                          if ("Y" == color) { level_Y  = level_string; }
                          if ("K" == color) { level_K  = level_string; }
           
                          eins_lastpos = eins_position + 10;
                          zwei_lastpos = zwei_position + 10;               
           
                          // Farbe nummer 4 
                          eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1;
                          color =   body.substring(eins_position, eins_position+1) ;
                          zwei_position = body.indexOf(cut2, zwei_lastpos) + cut2.length + 1;
                          level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
           
                          if ("C" == color) { level_C  = level_string; }
                          if ("M" == color) { level_M  = level_string; }
                          if ("Y" == color) { level_Y  = level_string; }
                          if ("K" == color) { level_K  = level_string; }
           
                          eins_lastpos = eins_position + 10;
                          zwei_lastpos = zwei_position + 10;               
           
                          log('Drucker Level  C ' + level_C  , "info");
                          log('Drucker Level  M ' + level_M  , "info");
                          log('Drucker Level  Y ' + level_Y  , "info");
                          log('Drucker Level  K ' + level_K  , "info");
           
                          // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
                          setState(CyanLevel, level_C);
                          setState(MagentaLevel, level_M);
                          setState(YellowLevel, level_Y);
                          setState(BlackLevel, level_K);
                          setState(DruckIP, druckerIP);
           
                      } else {
                          log('Kein Drucker gefunden');
                      }
                  });
                  
              }).on('error', (error) => {
                  log(error);
                  log('Kein Drucker gefunden');
              });
          } // end of function
          
          L 1 Antwort Letzte Antwort
          1
          • P ps1304

            @ahnungsbefreit da der iobroker jetzt meldet das die Funktion "request" deprecated wird, habe ich das ganze mit httpget umgebaut. Läuft bei mir mit einen HP9010 (OfficeJet Pro).

            /* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
               Drucker HP Tintenstand für iobroker ermitteln
              Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
              und dem angepassten Script von PiX aus iobroker  http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
              Author : looxer01 - 22.12.2015
              Version 0.2 29.01.2015        Druckerparameter jetzt einstellbar im Bereich der Einstellungen
              kosmetik ykuendig
            */
             
            // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
             
            var druckerIP       = '192.168.2.30';            // Drucker IP 
            var druckermod      = "HP-Pro9010";                   // Drucker Modell - Strukturelement in den Variablen
            var TinteID         = "950XL";                  // Tinte - Tintenbezeichnung
            var TinteCyanBez    = "CN046A";                // Bezeichnung fuer Cyan
            var TinteMagentaBez = "CN047A";                // Bezeichnung fuer Magenta
            var TinteYellowBez  = "CN048A";                // Bezeichnung fuer Yellow
            var TinteBlackBez   = "CN045A";                // Bezeichnung fuer Black
             
            // ENDE der Einstellungen
             
            var druckerURL      = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml";          // URL nicht ändern
            var http = require('http');                                                                 // Using the http module directly
            var cut0            = "dd:Capacity";                                                        // Marker für capacity
            var cut1            = "dd:ConsumableLabelCode";                                             // Marker für color
            var cut2            = "dd:ConsumablePercentageLevelRemaining";                              // Marker für Level
             
            var level_C  = 0;                                                                           // Tintenlevel
            var level_M  = 0;                                                                           // Tintenlevel
            var level_Y  = 0;                                                                           // Tintenlevel
            var level_K  = 0;                                                                           // Tintenlevel
             
            var DruckIP         = "Drucker.HP." + druckermod + ".IP";                                   // Variable für create states
            var DruckerName     = "Drucker.HP." + druckermod + ".Name";                                 // Variable für create states
            var Modell          = "Drucker.HP." + druckermod + ".Modell";                               // Variable für create states
            var Tinte           = "Drucker.HP." + druckermod + ".Tinte";                                // Variable für create states
             
            var CyanInk         = "Drucker.HP." + druckermod + ".Color1Cyan.Ink";                       // Variable für create states
            var MagentaInk      = "Drucker.HP." + druckermod + ".Color2Magenta.Ink";                    // Variable für create states
            var YellowInk       = "Drucker.HP." + druckermod + ".Color3Yellow.Ink";                     // Variable für create states
            var BlackInk        = "Drucker.HP." + druckermod + ".Color4Black.Ink";                      // Variable für create states
             
            var CyanLevel       = "Drucker.HP." + druckermod + ".Color1Cyan.Level";                     // Variable für create states
            var MagentaLevel    = "Drucker.HP." + druckermod + ".Color2Magenta.Level";                  // Variable für create states
            var YellowLevel     = "Drucker.HP." + druckermod + ".Color3Yellow.Level";                   // Variable für create states
            var BlackLevel      = "Drucker.HP." + druckermod + ".Color4Black.Level";                    // Variable für create states
             
            // Anlegen der Variablen
            createState(DruckIP,druckerIP);
            createState(DruckerName,druckermod);
            createState(Tinte,TinteID);
             
            createState(CyanInk,TinteCyanBez);
            createState(MagentaInk,TinteMagentaBez);
            createState(YellowInk,TinteYellowBez);
            createState(BlackInk,TinteBlackBez);
             
            createState(CyanLevel,0);
            createState(MagentaLevel,0);
            createState(YellowLevel,0);
            createState(BlackLevel),0;
             
            // Schedule für die Updates
            schedule("0 */6 * * *",  Drucker);      // Schedule alle 6 Stunden
            Drucker();                              // Sofort beim Scriptstart einmal laufen lassen
             
            function Drucker() {
             
                http.get(druckerURL, (response) => {
                    let body = '';
                    
                    // A chunk of data has been received.
                    response.on('data', (chunk) => {
                        body += chunk;
                    });
                    
                    // The whole response has been received.
                    response.on('end', () => {
                        if (response.statusCode === 200) { // Check if the response is OK
                            // XML parsing logic remains the same
                            var TagEndMarker = '<'; 
                            var null_position = body.indexOf(cut0) + cut0.length + 1 ;
                            var eins_position = body.indexOf(cut1, null_position) + cut1.length  + 1;       // erste Position finden
                            var color =   body.substring(eins_position, eins_position+1) ;                  // erste Position ist die Farbe
                            var zwei_position = body.indexOf(cut2) + cut2.length  + 1;                       // zweite Position finden
                            var level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
                            var eins_lastpos = eins_position;                                               // merken position eins
                            var zwei_lastpos = zwei_position;                                               // merken position zwei
             
                            if ("C" == color) { level_C  = level_string; }
                            if ("M" == color) { level_M  = level_string; }
                            if ("Y" == color) { level_Y  = level_string; }
                            if ("K" == color) { level_K  = level_string; }
             
                            eins_lastpos = eins_position + 10;
                            zwei_lastpos = zwei_position + 10;               
             
                            // Farbe nummer 2   
                            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
                            color =   body.substring(eins_position, eins_position+1) ;
                            zwei_position = body.indexOf(cut2, zwei_lastpos) + cut2.length  + 1;
                            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
             
                            if ("C" == color) { level_C  = level_string; }
                            if ("M" == color) { level_M  = level_string; }
                            if ("Y" == color) { level_Y  = level_string; }
                            if ("K" == color) { level_K  = level_string; }
             
                            eins_lastpos = eins_position + 10;
                            zwei_lastpos = zwei_position + 10;               
             
                            // Farbe nummer 3   
                            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1;
                            color =   body.substring(eins_position, eins_position+1) ;
                            zwei_position = body.indexOf(cut2, zwei_lastpos) + cut2.length + 1;
                            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
             
                            if ("C" == color) { level_C  = level_string; }
                            if ("M" == color) { level_M  = level_string; }
                            if ("Y" == color) { level_Y  = level_string; }
                            if ("K" == color) { level_K  = level_string; }
             
                            eins_lastpos = eins_position + 10;
                            zwei_lastpos = zwei_position + 10;               
             
                            // Farbe nummer 4 
                            eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1;
                            color =   body.substring(eins_position, eins_position+1) ;
                            zwei_position = body.indexOf(cut2, zwei_lastpos) + cut2.length + 1;
                            level_string = body.substring(zwei_position, body.indexOf(TagEndMarker, zwei_position));
             
                            if ("C" == color) { level_C  = level_string; }
                            if ("M" == color) { level_M  = level_string; }
                            if ("Y" == color) { level_Y  = level_string; }
                            if ("K" == color) { level_K  = level_string; }
             
                            eins_lastpos = eins_position + 10;
                            zwei_lastpos = zwei_position + 10;               
             
                            log('Drucker Level  C ' + level_C  , "info");
                            log('Drucker Level  M ' + level_M  , "info");
                            log('Drucker Level  Y ' + level_Y  , "info");
                            log('Drucker Level  K ' + level_K  , "info");
             
                            // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
                            setState(CyanLevel, level_C);
                            setState(MagentaLevel, level_M);
                            setState(YellowLevel, level_Y);
                            setState(BlackLevel, level_K);
                            setState(DruckIP, druckerIP);
             
                        } else {
                            log('Kein Drucker gefunden');
                        }
                    });
                    
                }).on('error', (error) => {
                    log(error);
                    log('Kein Drucker gefunden');
                });
            } // end of function
            
            L Offline
            L Offline
            looxer01
            schrieb am zuletzt editiert von looxer01
            #135

            Hi,

            ich habe das Script etwas umgebaut und u.a. die Unschönheiten der Variablen-Deklaration behandelt.
            sollte auf Dauer robuster sein.

            Script: HP-Tinte_V1-0.txt

            Nachtrag:
            ich habe übrigens auch eine Variante für HP Drucker die die geschätzten druckbaren Restseiten je Farbe im XML mitliefern
            ich kann es aber selber nicht testen, weil mein Drucker das nicht macht. Also: falls jemand das testen
            möchte, dann bitte melden

            Script mit verbleibenden Seiten:
            Ich ziehe das erweiterte script im Moment zurück, da es so nicht funktioniert.
            Sobald ich soweit bin reiche ich es nach

            vG Looxer

            bahnuhrB 1 Antwort Letzte Antwort
            1
            • L looxer01

              Hi,

              ich habe das Script etwas umgebaut und u.a. die Unschönheiten der Variablen-Deklaration behandelt.
              sollte auf Dauer robuster sein.

              Script: HP-Tinte_V1-0.txt

              Nachtrag:
              ich habe übrigens auch eine Variante für HP Drucker die die geschätzten druckbaren Restseiten je Farbe im XML mitliefern
              ich kann es aber selber nicht testen, weil mein Drucker das nicht macht. Also: falls jemand das testen
              möchte, dann bitte melden

              Script mit verbleibenden Seiten:
              Ich ziehe das erweiterte script im Moment zurück, da es so nicht funktioniert.
              Sobald ich soweit bin reiche ich es nach

              vG Looxer

              bahnuhrB Online
              bahnuhrB Online
              bahnuhr
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #136

              @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

              Variante für HP Drucker die die geschätzten druckbare Restseiten je Farbe im XML mitliefern

              bitte Script hier einstellen.


              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
              Danke.
              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
              ScreenToGif :https://www.screentogif.com/downloads.html

              HomoranH 1 Antwort Letzte Antwort
              0
              • bahnuhrB bahnuhr

                @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                Variante für HP Drucker die die geschätzten druckbare Restseiten je Farbe im XML mitliefern

                bitte Script hier einstellen.

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #137

                @bahnuhr sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                bitte Script hier einstellen.

                @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                Script: HP-Tinte_V1-0.txt

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                bahnuhrB 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @bahnuhr sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                  bitte Script hier einstellen.

                  @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                  Script: HP-Tinte_V1-0.txt

                  bahnuhrB Online
                  bahnuhrB Online
                  bahnuhr
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #138

                  @homoran
                  Nein, das ist sie nicht.

                  Er hat ja geschrieben, dass er noch zusätzlich eine andere Variante hat.

                  @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                  Nachtrag:
                  ich habe übrigens auch eine Variante


                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                  Danke.
                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                  ScreenToGif :https://www.screentogif.com/downloads.html

                  L 2 Antworten Letzte Antwort
                  1
                  • bahnuhrB bahnuhr

                    @homoran
                    Nein, das ist sie nicht.

                    Er hat ja geschrieben, dass er noch zusätzlich eine andere Variante hat.

                    @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                    Nachtrag:
                    ich habe übrigens auch eine Variante

                    L Offline
                    L Offline
                    looxer01
                    schrieb am zuletzt editiert von looxer01
                    #139

                    @bahnuhr
                    sind jetzt beide Scripts im vorherigen Post

                    Nachtrag:
                    die Variable FetchRemainPages muss auf true gestellt werden

                    1 Antwort Letzte Antwort
                    2
                    • bahnuhrB bahnuhr

                      @homoran
                      Nein, das ist sie nicht.

                      Er hat ja geschrieben, dass er noch zusätzlich eine andere Variante hat.

                      @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                      Nachtrag:
                      ich habe übrigens auch eine Variante

                      L Offline
                      L Offline
                      looxer01
                      schrieb am zuletzt editiert von looxer01
                      #140

                      @bahnuhr
                      würdest du deine XML Datei zur Verfügung stellen.
                      Ich möchte versuchen Findungsstrategien einzubauen.
                      Ich selber habe ja schon die beiden URL. Deine scheint ja nochmal mehr Daten zu enthalten.

                      Hintergrund
                      Die beiden URLs, die ich nutze haben beispielsweise einen anderen Aufbau. Bei der einen muß über hierarchiches Suchen der Tintenstand gefunden werden.
                      Die zweite ist weniger komplex und es kann z.B. nach "Yellow" gesucht werden und ein paar Zeilen weiter steht schon der Tintenstand zur Verfügung

                      Wenn es klappt, dann könnte das parsen . unabhängiger vom Druckertyp ablaufen und verschiedene URL ausgewertet werden.

                      vG Looxer

                      bahnuhrB 1 Antwort Letzte Antwort
                      0
                      • L looxer01

                        @bahnuhr
                        würdest du deine XML Datei zur Verfügung stellen.
                        Ich möchte versuchen Findungsstrategien einzubauen.
                        Ich selber habe ja schon die beiden URL. Deine scheint ja nochmal mehr Daten zu enthalten.

                        Hintergrund
                        Die beiden URLs, die ich nutze haben beispielsweise einen anderen Aufbau. Bei der einen muß über hierarchiches Suchen der Tintenstand gefunden werden.
                        Die zweite ist weniger komplex und es kann z.B. nach "Yellow" gesucht werden und ein paar Zeilen weiter steht schon der Tintenstand zur Verfügung

                        Wenn es klappt, dann könnte das parsen . unabhängiger vom Druckertyp ablaufen und verschiedene URL ausgewertet werden.

                        vG Looxer

                        bahnuhrB Online
                        bahnuhrB Online
                        bahnuhr
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #141

                        @looxer01
                        Ich nehme aber dein Script aus 2015. Die o.g. Scripte hab ich noch nicht ausprobiert.

                        Im Browser kommt bei: http://192.168.243.111/DevMgmt/ConsumableConfigDyn.xml

                        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:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:dd2="http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10" xmlns:ccdyn="http://www.hp.com/schemas/imaging/con/ledm/consumableconfigdyn/2007/11/19" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/consumableconfigdyn/2007/11/19 ../schemas/ConsumableConfigDyn.xsd http://www.hp.com/schemas/imaging/con/dictionaries/1.0/ ../schemas/dd/DataDictionaryMasterLEDM.xsd">
                        <dd:Version>
                        <dd:Revision>SVN-IPG-LEDM.38</dd:Revision>
                        <dd:Date>2010-06-02</dd:Date>
                        </dd:Version>
                        <ccdyn:ProductConsumableInfo>
                        <dd:NumOfUserReplaceableConsumables>5</dd:NumOfUserReplaceableConsumables>
                        <dd:NumOfNonUserReplaceableConsumables>0</dd:NumOfNonUserReplaceableConsumables>
                        <dd:AlignmentMode>automatic</dd:AlignmentMode>
                        <ccdyn:CartridgeChipInfo>enabled</ccdyn:CartridgeChipInfo>
                        <ccdyn:SupportedConsumables>
                        <ccdyn:SupportedConsumable>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:ConsumableLabelCode>M</dd:ConsumableLabelCode>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951 Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        </ccdyn:SupportedConsumable>
                        <ccdyn:SupportedConsumable>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:ConsumableLabelCode>C</dd:ConsumableLabelCode>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951 Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        </ccdyn:SupportedConsumable>
                        <ccdyn:SupportedConsumable>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:ConsumableLabelCode>Y</dd:ConsumableLabelCode>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>951 Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        </ccdyn:SupportedConsumable>
                        <ccdyn:SupportedConsumable>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:ConsumableLabelCode>K</dd:ConsumableLabelCode>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>950XL</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>950</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>950 Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        <ccdyn:SupportedConsumableInfo>
                        <dd:ConsumableSelectibilityNumber>950XL Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                        </ccdyn:SupportedConsumableInfo>
                        </ccdyn:SupportedConsumable>
                        </ccdyn:SupportedConsumables>
                        <dd:ConsumableSlotDirection>leftToRight</dd:ConsumableSlotDirection>
                        <dd:IK>635</dd:IK>
                        <ccdyn:SingleCartridgeMode>disabled</ccdyn:SingleCartridgeMode>
                        <dd:AntiTheftMode>disabled</dd:AntiTheftMode>
                        </ccdyn:ProductConsumableInfo>
                        <ccdyn:ConsumableInfo>
                        <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                        <dd:ConsumableFamilyName>PAULINA</dd:ConsumableFamilyName>
                        <dd2:ConsumableID>11F583E1C38FA4A141000078001257E1</dd2:ConsumableID>
                        <dd:ConsumableLabelCode>CMYK</dd:ConsumableLabelCode>
                        <dd:ConsumableLifeState>
                        <dd:ConsumableState>ok</dd:ConsumableState>
                        <dd:Brand>nonApprovedOEM</dd:Brand>
                        </dd:ConsumableLifeState>
                        <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                        <dd:ConsumableStation>4</dd:ConsumableStation>
                        <dd:ConsumableTypeEnum>printhead</dd:ConsumableTypeEnum>
                        <dd:Installation>
                        <dd:Date>2013-01-08</dd:Date>
                        </dd:Installation>
                        <ccdyn:ConsumablePersistentState>
                        <dd:ConsumableLabelCode>CMYK</dd:ConsumableLabelCode>
                        <dd:PersistentMarkerState>nonHP</dd:PersistentMarkerState>
                        </ccdyn:ConsumablePersistentState>
                        </ccdyn:ConsumableInfo>
                        <ccdyn:ConsumableInfo>
                        <dd:Capacity>
                        <dd:MaxCapacity>230</dd:MaxCapacity>
                        <dd:Unit>tenthsOfMilliliters</dd:Unit>
                        </dd:Capacity>
                        <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                        <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                        <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                        <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                        <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                        <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                        <dd:ConsumableLabelCode>M</dd:ConsumableLabelCode>
                        <dd:ConsumableLifeState>
                        <dd:ConsumableState>ok</dd:ConsumableState>
                        <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                        <dd:Brand>HP</dd:Brand>
                        <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                        <dd:IsRefilled>false</dd:IsRefilled>
                        </dd:ConsumableLifeState>
                        <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                        <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                        <dd:ConsumablePercentageLevelRemaining>60</dd:ConsumablePercentageLevelRemaining>
                        <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                        <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableStation>0</dd:ConsumableStation>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:Installation>
                        <dd:Date>2023-08-20</dd:Date>
                        </dd:Installation>
                        <dd:ProductNumber> CN047A</dd:ProductNumber>
                        <dd:SerialNumber>1620128304</dd:SerialNumber>
                        <dd:RegionalCartridge>
                        <dd:RegionIdentifier>1</dd:RegionIdentifier>
                        </dd:RegionalCartridge>
                        <dd:ConsumableIcon>
                        <dd:Shape>Circle</dd:Shape>
                        <dd:Rotation>rotateZero</dd:Rotation>
                        <dd:FillColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:FillColor>
                        <dd:OutlineColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:OutlineColor>
                        <dd:BackGroundColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:BackGroundColor>
                        <dd:RGBTextColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:RGBTextColor>
                        <dd:Label>M</dd:Label>
                        </dd:ConsumableIcon>
                        <dd:Warranty>
                        <dd:ExpirationDate>2018-01-15</dd:ExpirationDate>
                        </dd:Warranty>
                        </ccdyn:ConsumableInfo>
                        <ccdyn:ConsumableInfo>
                        <dd:Capacity>
                        <dd:MaxCapacity>216</dd:MaxCapacity>
                        <dd:Unit>tenthsOfMilliliters</dd:Unit>
                        </dd:Capacity>
                        <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                        <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                        <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                        <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                        <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                        <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                        <dd:ConsumableLabelCode>C</dd:ConsumableLabelCode>
                        <dd:ConsumableLifeState>
                        <dd:ConsumableState>ok</dd:ConsumableState>
                        <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                        <dd:Brand>HP</dd:Brand>
                        <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                        <dd:IsRefilled>false</dd:IsRefilled>
                        </dd:ConsumableLifeState>
                        <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                        <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                        <dd:ConsumablePercentageLevelRemaining>90</dd:ConsumablePercentageLevelRemaining>
                        <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                        <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableStation>1</dd:ConsumableStation>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:Installation>
                        <dd:Date>2024-05-06</dd:Date>
                        </dd:Installation>
                        <dd:ProductNumber>CN046AE</dd:ProductNumber>
                        <dd:SerialNumber>-1746714000</dd:SerialNumber>
                        <dd:RegionalCartridge>
                        <dd:RegionIdentifier>4</dd:RegionIdentifier>
                        </dd:RegionalCartridge>
                        <dd:ConsumableIcon>
                        <dd:Shape>Circle</dd:Shape>
                        <dd:Rotation>rotateZero</dd:Rotation>
                        <dd:FillColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:FillColor>
                        <dd:OutlineColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:OutlineColor>
                        <dd:BackGroundColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:BackGroundColor>
                        <dd:RGBTextColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:RGBTextColor>
                        <dd:Label>C</dd:Label>
                        </dd:ConsumableIcon>
                        <dd:Warranty>
                        <dd:ExpirationDate>2021-08-06</dd:ExpirationDate>
                        </dd:Warranty>
                        </ccdyn:ConsumableInfo>
                        <ccdyn:ConsumableInfo>
                        <dd:Capacity>
                        <dd:MaxCapacity>230</dd:MaxCapacity>
                        <dd:Unit>tenthsOfMilliliters</dd:Unit>
                        </dd:Capacity>
                        <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                        <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                        <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                        <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                        <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                        <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                        <dd:ConsumableLabelCode>Y</dd:ConsumableLabelCode>
                        <dd:ConsumableLifeState>
                        <dd:ConsumableState>ok</dd:ConsumableState>
                        <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                        <dd:Brand>HP</dd:Brand>
                        <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                        <dd:IsRefilled>false</dd:IsRefilled>
                        </dd:ConsumableLifeState>
                        <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                        <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                        <dd:ConsumablePercentageLevelRemaining>90</dd:ConsumablePercentageLevelRemaining>
                        <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                        <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableStation>2</dd:ConsumableStation>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:Installation>
                        <dd:Date>2024-05-06</dd:Date>
                        </dd:Installation>
                        <dd:ProductNumber>CN048AE</dd:ProductNumber>
                        <dd:SerialNumber>1959508856</dd:SerialNumber>
                        <dd:RegionalCartridge>
                        <dd:RegionIdentifier>4</dd:RegionIdentifier>
                        </dd:RegionalCartridge>
                        <dd:ConsumableIcon>
                        <dd:Shape>Circle</dd:Shape>
                        <dd:Rotation>rotateZero</dd:Rotation>
                        <dd:FillColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:FillColor>
                        <dd:OutlineColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:OutlineColor>
                        <dd:BackGroundColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:BackGroundColor>
                        <dd:RGBTextColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:RGBTextColor>
                        <dd:Label>Y</dd:Label>
                        </dd:ConsumableIcon>
                        <dd:Warranty>
                        <dd:ExpirationDate>2019-05-14</dd:ExpirationDate>
                        </dd:Warranty>
                        </ccdyn:ConsumableInfo>
                        <ccdyn:ConsumableInfo>
                        <dd:Capacity>
                        <dd:MaxCapacity>651</dd:MaxCapacity>
                        <dd:Unit>tenthsOfMilliliters</dd:Unit>
                        </dd:Capacity>
                        <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                        <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                        <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                        <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                        <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                        <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                        <dd:ConsumableLabelCode>K</dd:ConsumableLabelCode>
                        <dd:ConsumableLifeState>
                        <dd:ConsumableState>ok</dd:ConsumableState>
                        <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                        <dd:Brand>HP</dd:Brand>
                        <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                        <dd:IsRefilled>false</dd:IsRefilled>
                        </dd:ConsumableLifeState>
                        <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                        <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                        <dd:ConsumablePercentageLevelRemaining>50</dd:ConsumablePercentageLevelRemaining>
                        <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                        <dd:ConsumableSelectibilityNumber>950XL Z20</dd:ConsumableSelectibilityNumber>
                        <dd:ConsumableStation>3</dd:ConsumableStation>
                        <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                        <dd:Installation>
                        <dd:Date>2023-08-20</dd:Date>
                        </dd:Installation>
                        <dd:ProductNumber>CN045AE</dd:ProductNumber>
                        <dd:SerialNumber>-1311755696</dd:SerialNumber>
                        <dd:RegionalCartridge>
                        <dd:RegionIdentifier>4</dd:RegionIdentifier>
                        </dd:RegionalCartridge>
                        <dd:ConsumableIcon>
                        <dd:Shape>Circle</dd:Shape>
                        <dd:Rotation>rotateZero</dd:Rotation>
                        <dd:FillColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:FillColor>
                        <dd:OutlineColor>
                        <dd:Red>0</dd:Red>
                        <dd:Green>0</dd:Green>
                        <dd:Blue>0</dd:Blue>
                        </dd:OutlineColor>
                        <dd:BackGroundColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:BackGroundColor>
                        <dd:RGBTextColor>
                        <dd:Red>255</dd:Red>
                        <dd:Green>255</dd:Green>
                        <dd:Blue>255</dd:Blue>
                        </dd:RGBTextColor>
                        <dd:Label>K</dd:Label>
                        </dd:ConsumableIcon>
                        <dd:Warranty>
                        <dd:ExpirationDate>2023-02-19</dd:ExpirationDate>
                        </dd:Warranty>
                        </ccdyn:ConsumableInfo>
                        </ccdyn:ConsumableConfigDyn>
                        

                        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                        Danke.
                        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                        ScreenToGif :https://www.screentogif.com/downloads.html

                        L 1 Antwort Letzte Antwort
                        0
                        • bahnuhrB bahnuhr

                          @looxer01
                          Ich nehme aber dein Script aus 2015. Die o.g. Scripte hab ich noch nicht ausprobiert.

                          Im Browser kommt bei: http://192.168.243.111/DevMgmt/ConsumableConfigDyn.xml

                          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:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:dd2="http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10" xmlns:ccdyn="http://www.hp.com/schemas/imaging/con/ledm/consumableconfigdyn/2007/11/19" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/consumableconfigdyn/2007/11/19 ../schemas/ConsumableConfigDyn.xsd http://www.hp.com/schemas/imaging/con/dictionaries/1.0/ ../schemas/dd/DataDictionaryMasterLEDM.xsd">
                          <dd:Version>
                          <dd:Revision>SVN-IPG-LEDM.38</dd:Revision>
                          <dd:Date>2010-06-02</dd:Date>
                          </dd:Version>
                          <ccdyn:ProductConsumableInfo>
                          <dd:NumOfUserReplaceableConsumables>5</dd:NumOfUserReplaceableConsumables>
                          <dd:NumOfNonUserReplaceableConsumables>0</dd:NumOfNonUserReplaceableConsumables>
                          <dd:AlignmentMode>automatic</dd:AlignmentMode>
                          <ccdyn:CartridgeChipInfo>enabled</ccdyn:CartridgeChipInfo>
                          <ccdyn:SupportedConsumables>
                          <ccdyn:SupportedConsumable>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:ConsumableLabelCode>M</dd:ConsumableLabelCode>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951 Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          </ccdyn:SupportedConsumable>
                          <ccdyn:SupportedConsumable>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:ConsumableLabelCode>C</dd:ConsumableLabelCode>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951 Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          </ccdyn:SupportedConsumable>
                          <ccdyn:SupportedConsumable>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:ConsumableLabelCode>Y</dd:ConsumableLabelCode>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>951 Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          </ccdyn:SupportedConsumable>
                          <ccdyn:SupportedConsumable>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:ConsumableLabelCode>K</dd:ConsumableLabelCode>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>950XL</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>950</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>everyday</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>950 Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          <ccdyn:SupportedConsumableInfo>
                          <dd:ConsumableSelectibilityNumber>950XL Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableUsageType>highVolume</dd:ConsumableUsageType>
                          </ccdyn:SupportedConsumableInfo>
                          </ccdyn:SupportedConsumable>
                          </ccdyn:SupportedConsumables>
                          <dd:ConsumableSlotDirection>leftToRight</dd:ConsumableSlotDirection>
                          <dd:IK>635</dd:IK>
                          <ccdyn:SingleCartridgeMode>disabled</ccdyn:SingleCartridgeMode>
                          <dd:AntiTheftMode>disabled</dd:AntiTheftMode>
                          </ccdyn:ProductConsumableInfo>
                          <ccdyn:ConsumableInfo>
                          <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                          <dd:ConsumableFamilyName>PAULINA</dd:ConsumableFamilyName>
                          <dd2:ConsumableID>11F583E1C38FA4A141000078001257E1</dd2:ConsumableID>
                          <dd:ConsumableLabelCode>CMYK</dd:ConsumableLabelCode>
                          <dd:ConsumableLifeState>
                          <dd:ConsumableState>ok</dd:ConsumableState>
                          <dd:Brand>nonApprovedOEM</dd:Brand>
                          </dd:ConsumableLifeState>
                          <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                          <dd:ConsumableStation>4</dd:ConsumableStation>
                          <dd:ConsumableTypeEnum>printhead</dd:ConsumableTypeEnum>
                          <dd:Installation>
                          <dd:Date>2013-01-08</dd:Date>
                          </dd:Installation>
                          <ccdyn:ConsumablePersistentState>
                          <dd:ConsumableLabelCode>CMYK</dd:ConsumableLabelCode>
                          <dd:PersistentMarkerState>nonHP</dd:PersistentMarkerState>
                          </ccdyn:ConsumablePersistentState>
                          </ccdyn:ConsumableInfo>
                          <ccdyn:ConsumableInfo>
                          <dd:Capacity>
                          <dd:MaxCapacity>230</dd:MaxCapacity>
                          <dd:Unit>tenthsOfMilliliters</dd:Unit>
                          </dd:Capacity>
                          <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                          <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                          <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                          <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                          <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                          <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                          <dd:ConsumableLabelCode>M</dd:ConsumableLabelCode>
                          <dd:ConsumableLifeState>
                          <dd:ConsumableState>ok</dd:ConsumableState>
                          <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                          <dd:Brand>HP</dd:Brand>
                          <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                          <dd:IsRefilled>false</dd:IsRefilled>
                          </dd:ConsumableLifeState>
                          <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                          <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                          <dd:ConsumablePercentageLevelRemaining>60</dd:ConsumablePercentageLevelRemaining>
                          <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                          <dd:ConsumableSelectibilityNumber>951XL</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableStation>0</dd:ConsumableStation>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:Installation>
                          <dd:Date>2023-08-20</dd:Date>
                          </dd:Installation>
                          <dd:ProductNumber> CN047A</dd:ProductNumber>
                          <dd:SerialNumber>1620128304</dd:SerialNumber>
                          <dd:RegionalCartridge>
                          <dd:RegionIdentifier>1</dd:RegionIdentifier>
                          </dd:RegionalCartridge>
                          <dd:ConsumableIcon>
                          <dd:Shape>Circle</dd:Shape>
                          <dd:Rotation>rotateZero</dd:Rotation>
                          <dd:FillColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:FillColor>
                          <dd:OutlineColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:OutlineColor>
                          <dd:BackGroundColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:BackGroundColor>
                          <dd:RGBTextColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:RGBTextColor>
                          <dd:Label>M</dd:Label>
                          </dd:ConsumableIcon>
                          <dd:Warranty>
                          <dd:ExpirationDate>2018-01-15</dd:ExpirationDate>
                          </dd:Warranty>
                          </ccdyn:ConsumableInfo>
                          <ccdyn:ConsumableInfo>
                          <dd:Capacity>
                          <dd:MaxCapacity>216</dd:MaxCapacity>
                          <dd:Unit>tenthsOfMilliliters</dd:Unit>
                          </dd:Capacity>
                          <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                          <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                          <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                          <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                          <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                          <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                          <dd:ConsumableLabelCode>C</dd:ConsumableLabelCode>
                          <dd:ConsumableLifeState>
                          <dd:ConsumableState>ok</dd:ConsumableState>
                          <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                          <dd:Brand>HP</dd:Brand>
                          <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                          <dd:IsRefilled>false</dd:IsRefilled>
                          </dd:ConsumableLifeState>
                          <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                          <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                          <dd:ConsumablePercentageLevelRemaining>90</dd:ConsumablePercentageLevelRemaining>
                          <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                          <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableStation>1</dd:ConsumableStation>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:Installation>
                          <dd:Date>2024-05-06</dd:Date>
                          </dd:Installation>
                          <dd:ProductNumber>CN046AE</dd:ProductNumber>
                          <dd:SerialNumber>-1746714000</dd:SerialNumber>
                          <dd:RegionalCartridge>
                          <dd:RegionIdentifier>4</dd:RegionIdentifier>
                          </dd:RegionalCartridge>
                          <dd:ConsumableIcon>
                          <dd:Shape>Circle</dd:Shape>
                          <dd:Rotation>rotateZero</dd:Rotation>
                          <dd:FillColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:FillColor>
                          <dd:OutlineColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:OutlineColor>
                          <dd:BackGroundColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:BackGroundColor>
                          <dd:RGBTextColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:RGBTextColor>
                          <dd:Label>C</dd:Label>
                          </dd:ConsumableIcon>
                          <dd:Warranty>
                          <dd:ExpirationDate>2021-08-06</dd:ExpirationDate>
                          </dd:Warranty>
                          </ccdyn:ConsumableInfo>
                          <ccdyn:ConsumableInfo>
                          <dd:Capacity>
                          <dd:MaxCapacity>230</dd:MaxCapacity>
                          <dd:Unit>tenthsOfMilliliters</dd:Unit>
                          </dd:Capacity>
                          <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                          <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                          <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                          <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                          <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                          <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                          <dd:ConsumableLabelCode>Y</dd:ConsumableLabelCode>
                          <dd:ConsumableLifeState>
                          <dd:ConsumableState>ok</dd:ConsumableState>
                          <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                          <dd:Brand>HP</dd:Brand>
                          <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                          <dd:IsRefilled>false</dd:IsRefilled>
                          </dd:ConsumableLifeState>
                          <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                          <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                          <dd:ConsumablePercentageLevelRemaining>90</dd:ConsumablePercentageLevelRemaining>
                          <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                          <dd:ConsumableSelectibilityNumber>951XL Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableStation>2</dd:ConsumableStation>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:Installation>
                          <dd:Date>2024-05-06</dd:Date>
                          </dd:Installation>
                          <dd:ProductNumber>CN048AE</dd:ProductNumber>
                          <dd:SerialNumber>1959508856</dd:SerialNumber>
                          <dd:RegionalCartridge>
                          <dd:RegionIdentifier>4</dd:RegionIdentifier>
                          </dd:RegionalCartridge>
                          <dd:ConsumableIcon>
                          <dd:Shape>Circle</dd:Shape>
                          <dd:Rotation>rotateZero</dd:Rotation>
                          <dd:FillColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:FillColor>
                          <dd:OutlineColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:OutlineColor>
                          <dd:BackGroundColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:BackGroundColor>
                          <dd:RGBTextColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:RGBTextColor>
                          <dd:Label>Y</dd:Label>
                          </dd:ConsumableIcon>
                          <dd:Warranty>
                          <dd:ExpirationDate>2019-05-14</dd:ExpirationDate>
                          </dd:Warranty>
                          </ccdyn:ConsumableInfo>
                          <ccdyn:ConsumableInfo>
                          <dd:Capacity>
                          <dd:MaxCapacity>651</dd:MaxCapacity>
                          <dd:Unit>tenthsOfMilliliters</dd:Unit>
                          </dd:Capacity>
                          <dd:ConsumableAcceptibilitySubBrand>officejet</dd:ConsumableAcceptibilitySubBrand>
                          <dd:ConsumableAcceptibilitySegmentClass>allDevices</dd:ConsumableAcceptibilitySegmentClass>
                          <dd:ConsumableAcceptibilityUpgradability>notSupported</dd:ConsumableAcceptibilityUpgradability>
                          <dd:ConsumableContentType>markingAgent</dd:ConsumableContentType>
                          <dd:ConsumableFamilyName>NESTA</dd:ConsumableFamilyName>
                          <dd:ConsumableKeyingDescriptor>large1</dd:ConsumableKeyingDescriptor>
                          <dd:ConsumableLabelCode>K</dd:ConsumableLabelCode>
                          <dd:ConsumableLifeState>
                          <dd:ConsumableState>ok</dd:ConsumableState>
                          <dd:MeasuredQuantityState>ok</dd:MeasuredQuantityState>
                          <dd:Brand>HP</dd:Brand>
                          <dd:ConsumableStateAction>none</dd:ConsumableStateAction>
                          <dd:IsRefilled>false</dd:IsRefilled>
                          </dd:ConsumableLifeState>
                          <dd:ConsumableLevelMessagingStyle>dropCount</dd:ConsumableLevelMessagingStyle>
                          <dd:ConsumableLowUseAlgorithm>standard</dd:ConsumableLowUseAlgorithm>
                          <dd:ConsumablePercentageLevelRemaining>50</dd:ConsumablePercentageLevelRemaining>
                          <dd:ConsumableReplaceabilityType>userReplaceable</dd:ConsumableReplaceabilityType>
                          <dd:ConsumableSelectibilityNumber>950XL Z20</dd:ConsumableSelectibilityNumber>
                          <dd:ConsumableStation>3</dd:ConsumableStation>
                          <dd:ConsumableTypeEnum>ink</dd:ConsumableTypeEnum>
                          <dd:Installation>
                          <dd:Date>2023-08-20</dd:Date>
                          </dd:Installation>
                          <dd:ProductNumber>CN045AE</dd:ProductNumber>
                          <dd:SerialNumber>-1311755696</dd:SerialNumber>
                          <dd:RegionalCartridge>
                          <dd:RegionIdentifier>4</dd:RegionIdentifier>
                          </dd:RegionalCartridge>
                          <dd:ConsumableIcon>
                          <dd:Shape>Circle</dd:Shape>
                          <dd:Rotation>rotateZero</dd:Rotation>
                          <dd:FillColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:FillColor>
                          <dd:OutlineColor>
                          <dd:Red>0</dd:Red>
                          <dd:Green>0</dd:Green>
                          <dd:Blue>0</dd:Blue>
                          </dd:OutlineColor>
                          <dd:BackGroundColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:BackGroundColor>
                          <dd:RGBTextColor>
                          <dd:Red>255</dd:Red>
                          <dd:Green>255</dd:Green>
                          <dd:Blue>255</dd:Blue>
                          </dd:RGBTextColor>
                          <dd:Label>K</dd:Label>
                          </dd:ConsumableIcon>
                          <dd:Warranty>
                          <dd:ExpirationDate>2023-02-19</dd:ExpirationDate>
                          </dd:Warranty>
                          </ccdyn:ConsumableInfo>
                          </ccdyn:ConsumableConfigDyn>
                          
                          L Offline
                          L Offline
                          looxer01
                          schrieb am zuletzt editiert von looxer01
                          #142

                          @bahnuhr
                          aaah ok. das ist die Struktur, die ich ja auch schon habe. Das optimierte Script, das ich gepostet habe funktioniert damit gut.
                          Ich war auf der Suche nach der XML mit den verbleibenden Druckseiten: "RemainingPages".

                          vG Looxer

                          bahnuhrB 1 Antwort Letzte Antwort
                          0
                          • L looxer01

                            @bahnuhr
                            aaah ok. das ist die Struktur, die ich ja auch schon habe. Das optimierte Script, das ich gepostet habe funktioniert damit gut.
                            Ich war auf der Suche nach der XML mit den verbleibenden Druckseiten: "RemainingPages".

                            vG Looxer

                            bahnuhrB Online
                            bahnuhrB Online
                            bahnuhr
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #143

                            @looxer01
                            gibt es da einen anderen xml Befehl ?


                            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                            Danke.
                            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                            ScreenToGif :https://www.screentogif.com/downloads.html

                            MartinPM L 2 Antworten Letzte Antwort
                            0
                            • bahnuhrB bahnuhr

                              @looxer01
                              gibt es da einen anderen xml Befehl ?

                              MartinPM Online
                              MartinPM Online
                              MartinP
                              schrieb am zuletzt editiert von
                              #144

                              @bahnuhr Wieso macht man so etwas eigentlich nicht mit SNMP? Oder haben die Druckerhersteller sich da im HTTP interfacing auf so etwas, wie einen Standard geeinigt?

                              Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                              Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                              Linux pve 6.8.12-16-pve
                              6 GByte RAM für den Container
                              Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                              Remote-Access über Wireguard der Fritzbox

                              L 1 Antwort Letzte Antwort
                              0
                              • bahnuhrB bahnuhr

                                @looxer01
                                gibt es da einen anderen xml Befehl ?

                                L Offline
                                L Offline
                                looxer01
                                schrieb am zuletzt editiert von
                                #145

                                @bahnuhr
                                versuch die mal: http://192.168.0.94/DevMgmt/ProductUsageDyn.xml
                                natürlich mit deiner IP

                                1 Antwort Letzte Antwort
                                1
                                • MartinPM MartinP

                                  @bahnuhr Wieso macht man so etwas eigentlich nicht mit SNMP? Oder haben die Druckerhersteller sich da im HTTP interfacing auf so etwas, wie einen Standard geeinigt?

                                  L Offline
                                  L Offline
                                  looxer01
                                  schrieb am zuletzt editiert von
                                  #146

                                  @martinp
                                  ich habe einen HP8900Pro. Dieser wie viele andere auch verstehen meines Wissens nach kein SNMP

                                  NegaleinN 1 Antwort Letzte Antwort
                                  0
                                  • L looxer01

                                    @martinp
                                    ich habe einen HP8900Pro. Dieser wie viele andere auch verstehen meines Wissens nach kein SNMP

                                    NegaleinN Offline
                                    NegaleinN Offline
                                    Negalein
                                    Global Moderator
                                    schrieb am zuletzt editiert von
                                    #147

                                    @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                                    ich habe einen HP8900Pro. Dieser wie viele andere auch verstehen meines Wissens nach kein SNMP

                                    mein OfficeJet 9010 pro Series findet zumindest mit dem MIB-Browser einiges.
                                    Muss noch testen, welche OID für was steht.

                                    Den Druckzähler hab ich bereits, obwohl der im Webportal nicht angezeigt wird.

                                    ° Node.js: 20.17.0 NPM: 10.8.2
                                    ° Proxmox, Ubuntu 22.04.3 LTS
                                    ° Fixer ---> iob fix

                                    L 1 Antwort Letzte Antwort
                                    0
                                    • NegaleinN Negalein

                                      @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                                      ich habe einen HP8900Pro. Dieser wie viele andere auch verstehen meines Wissens nach kein SNMP

                                      mein OfficeJet 9010 pro Series findet zumindest mit dem MIB-Browser einiges.
                                      Muss noch testen, welche OID für was steht.

                                      Den Druckzähler hab ich bereits, obwohl der im Webportal nicht angezeigt wird.

                                      L Offline
                                      L Offline
                                      looxer01
                                      schrieb am zuletzt editiert von
                                      #148

                                      @negalein
                                      Ich habe mal SNMP aktiviert für den Drucker und dann in den SNMP Adapter eingepflegt.
                                      zunächst mal zeigt der Adapter kein Problem und kann lesen.
                                      Ein Tinten Level gibts noch nicht aber mit der richtigen OID mag es gehen. Ich habe diese

                                      Tintenstand Cyan: .1.3.6.1.2.1.43.11.1.1.9.1.1
                                      Tintenstand Magenta: .1.3.6.1.2.1.43.11.1.1.9.1.2
                                      Tintenstand Yellow: .1.3.6.1.2.1.43.11.1.1.9.1.3
                                      Tintenstand Black: .1.3.6.1.2.1.43.11.1.1.9.1.4

                                      NegaleinN 1 Antwort Letzte Antwort
                                      0
                                      • L looxer01

                                        @negalein
                                        Ich habe mal SNMP aktiviert für den Drucker und dann in den SNMP Adapter eingepflegt.
                                        zunächst mal zeigt der Adapter kein Problem und kann lesen.
                                        Ein Tinten Level gibts noch nicht aber mit der richtigen OID mag es gehen. Ich habe diese

                                        Tintenstand Cyan: .1.3.6.1.2.1.43.11.1.1.9.1.1
                                        Tintenstand Magenta: .1.3.6.1.2.1.43.11.1.1.9.1.2
                                        Tintenstand Yellow: .1.3.6.1.2.1.43.11.1.1.9.1.3
                                        Tintenstand Black: .1.3.6.1.2.1.43.11.1.1.9.1.4

                                        NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        schrieb am zuletzt editiert von
                                        #149

                                        @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                                        Ein Tinten Level gibts noch nicht aber mit der richtigen OID mag es gehen. Ich habe diese

                                        das sind doch die Tintenlevels? Oder meinst du da nicht den Füllstand?


                                        gedruckte Seiten

                                        .1.3.6.1.2.1.43.10.2.1.4.1.1

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        L 1 Antwort Letzte Antwort
                                        0
                                        • NegaleinN Negalein

                                          @looxer01 sagte in [Vorlage] Script und VIS: Druckerpatronen Zustand:

                                          Ein Tinten Level gibts noch nicht aber mit der richtigen OID mag es gehen. Ich habe diese

                                          das sind doch die Tintenlevels? Oder meinst du da nicht den Füllstand?


                                          gedruckte Seiten

                                          .1.3.6.1.2.1.43.10.2.1.4.1.1

                                          L Offline
                                          L Offline
                                          looxer01
                                          schrieb am zuletzt editiert von
                                          #150

                                          @negalein
                                          ja genau.
                                          Leider bekomme ich immer folgendes vom Adapter gemeldet:
                                          [HP8900Pro] device disconnected - request timeout

                                          HomoranH 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          882

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe