Autor Thema: Druckerpatronen-Zustand  (Gelesen 4088 mal)

Offline akw

  • Developer
  • Full Member
  • ****
  • Beiträge: 200
    • Bytefeed
Druckerpatronen-Zustand
« am: 27 August 2018, 08:37:10 »
Hi,

weil meine Frau als Lehrerin nun schon mehrfach morgens vor der Schule festgestellt hat, dass der Drucker mal wieder keine Tinte hat, habe ich mal den Patronenzustand in FHEM integriert. Es handelt sich um einen HP Officejet Pro 8620. Ich gehe davon aus, dass es bei einer Reihe anderer HP-Drucker auf gleiche Weise funktioniert.

defmod Edeldrucker HTTPMOD http://192.168.178.78/DevMgmt/ConsumableConfigDyn.xml 60
attr Edeldrucker userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict
attr Edeldrucker httpVersion 1.1
attr Edeldrucker reading01Name Cyan
attr Edeldrucker reading01XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker reading02Name Magenta
attr Edeldrucker reading02XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker reading03Name Yellow
attr Edeldrucker reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker reading04Name Black
attr Edeldrucker reading04XPath-Strict //ccdyn:ConsumableInfo[5]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker room Büro
attr Edeldrucker stateFormat C: Cyan% M: Magenta% Y: Yellow% K: Black%

Wichtig ist das Attribut "httpVersion", da der Drucker nicht auf HTTP 1.0 - Requests antwortet und das HTTPMOD defaultmäßig dieses Protokoll verwendet. Warum eigentlich? M.E. sollte der Default auf 1.1 stehen...


Vielleicht ist es ja für den ein oder anderen hilfreich!
Man kann natürlich noch viel mehr machen, aber das reicht mir zunächst mal. Eventuell ist es sinnvoll, irgendwann ein richtiges FHEM-Modul zu schreiben, dass mit dem Drucker per IPP (Internet Printing Protocol) spricht, um zum einen unabhängig vom Druckerhersteller zu funktionieren und zum anderen mehr Infos abzurufen. Außerdem könnte FHEM dann evt. auch selbst drucken :-)



FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de
Gefällt mir Gefällt mir x 4 Liste anzeigen

Offline Helmi55

  • Sr. Member
  • ****
  • Beiträge: 947
    • Helmi's Fotoseite
Antw:Druckerpatronen-Zustand
« Antwort #1 am: 28 August 2018, 18:24:11 »
Ja ja die Lehrerinnen Kenne ich.
Wäre schön wenn das auch mit EPSON 3620 arbeiten würde
Gruß
Helmut
System1 fhem 5.9 auf RPi 3B, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 5.9 auf RPi 3B mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/album

Offline Tedious

  • Hero Member
  • *****
  • Beiträge: 1214
  • Indocti discant et ament meminisse periti
Antw:Druckerpatronen-Zustand
« Antwort #2 am: 29 August 2018, 09:45:41 »
Danke für den Code, habe ich direkt mal übernommen. Nettes Gimmick für den Überblick - nur wenn die Patrone leer ist kannst Du den HP auch konfigurieren dass er eine EMail schickt ;)
FHEM auf Brix N3150/4GB/250GB SSD mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max! und SonOff, Alexa mit HABridge, Kleinkram...

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6293
Antw:Druckerpatronen-Zustand
« Antwort #3 am: 29 August 2018, 13:24:13 »
Bei vielen Druckern anderer Hersteller funktioniert das nur mit SNMP. Das kann man aber problemlos in FHEM einbinden, indem auf dem FHEM-Rechner mit apt-get snmp die notwendigen Bibliotheken und Befehle installiert werden.

Dann braucht es ein Skript in /opt/fhem, beispielsweise
#!/bin/bash

PIP=192.168.0.XX
cmd="snmpget -Ovq -v1 -c public"
pages=1.3.6.1.2.1.43.10.2.1.4.1.1
#alert=iso.3.6.1.2.1.43.16.5.1.2.1.1
alert=1.3.6.1.4.1.2435.2.3.9.4.2.1.5.4.5.2.0
alertlevel=1.3.6.1.4.1.2435.2.3.9.4.2.1.5.4.5.6.0
tinte=iso.3.6.1.2.1.43.18.1.1.8.1.1
status=iso.3.6.1.2.1.43.18.1.1.8.1.2

nblack=1.3.6.1.2.1.43.11.1.1.6.1.1
nyellow=1.3.6.1.2.1.43.11.1.1.6.1.2
ncyan=1.3.6.1.2.1.43.11.1.1.6.1.3
nmagenta=1.3.6.1.2.1.43.11.1.1.6.1.4

fblack=1.3.6.1.2.1.43.11.1.1.9.1.1
fyellow=1.3.6.1.2.1.43.11.1.1.9.1.2
fcyan=1.3.6.1.2.1.43.11.1.1.9.1.3
fmagenta=1.3.6.1.2.1.43.11.1.1.9.1.4

#mblack
#myellow
#mcyan
#mmagenta

pages=`$cmd $PIP $pages`
alert=`$cmd $PIP $alert`
alertlevel=`$cmd $PIP $alertlevel`
tinte=`$cmd $PIP $tinte`
status=`$cmd $PIP $status`

#nblack=`$cmd $PIP $nblack`
#nyellow=`$cmd $PIP $nyellow`
#ncyan=`$cmd $PIP $ncyan`
#nmagenta=`$cmd $PIP $nmagenta`

fblack=`$cmd $PIP $fblack`
fyellow=`$cmd $PIP $fyellow`
fcyan=`$cmd $PIP $fcyan`
fmagenta=`$cmd $PIP $fmagenta`

if [ $fblack == -3 ]; then
  fblack="OK"
else
  if [ $fblack == -2 ]; then
    fblack="UNK2"
  else
    if [ $fblack == -1 ]; then
      fblack="UNK1"
    else
      if [ $fblack == 0 ]; then
        fblack="Leer"
      fi
    fi
  fi
fi

if [ $fyellow == -3 ]; then
  fyellow="OK"
else
  if [ $fyellow == -2 ]; then
    fyellow="UNK2" 
  else
    if [ $fyellow == -1 ]; then
      fyellow="UNK1"
    else
      if [ $fyellow == 0 ]; then
        fyellow="Leer"
      fi
    fi
  fi
fi

if [ $fcyan == -3 ]; then
  fcyan="OK"
else
  if [ $fcyan == -2 ]; then
    fcyan="UNK2" 
  else
    if [ $fcyan == -1 ]; then
      fcyan="UNK1"
    else
      if [ $fcyan == 0 ]; then
        fcyan="Leer"
      fi
    fi
  fi
fi

if [ $fmagenta == -3 ]; then
  fmagenta="OK"
else
  if [ $fmagenta == -2 ]; then
    fmagenta="UNK2" 
  else
    if [ $fmagenta == -1 ]; then
      fmagenta="UNK1"
    else
      if [ $fmagenta == 0 ]; then
        fmagenta="Leer"
      fi
    fi
  fi
fi
 


echo "$status|$pages|$alert|$alertlevel|$tinte|$fcyan|$fmagenta|$fyellow|$fblack"

sowie ein kleines Perl-Programm
##############################################################################
#
#  Tintenstrahldrucker
#
##############################################################################

sub getTintenstrahldrucker(){
  my $string=`/opt/fhem/getTintenstrahldrucker.sh`;
  $string=~s/"//g;
  my @data=split('\|',$string);
  my $hash = $defs{'Tintenstrahldrucker'};
  readingsBeginUpdate($hash);
  readingsBulkUpdate($hash,"raw",$string);
  readingsBulkUpdate($hash,"status",$data[0]);
  readingsBulkUpdate($hash,"pages",$data[1]);
  readingsBulkUpdate($hash,"alert",$data[2]);
  readingsBulkUpdate($hash,"alertlevel",$data[3]);
  readingsBulkUpdate($hash,"ink",$data[4]);
  readingsBulkUpdate($hash,"ink-cyan",$data[5]);
  readingsBulkUpdate($hash,"ink-magenta",$data[6]);
  readingsBulkUpdate($hash,"ink-yellow",$data[7]);
  readingsBulkUpdate($hash,"ink-black",$data[8]);
  readingsEndUpdate($hash,1);
}

das bei dem dummy "Tintentstrahldrucker" die userReadings befüllt und durch ein kleines "at" zyklisch aufgerufen wird.

Problem dabei: Welche OID (Object Identifier) - das sind die kryptischen Zahlenstrings im Skript - bedeuten WAS ? Da schweigen sich die meisten Hersteller aus, das obige funktioniert mit einem Brother-Tintenstrahldrucker.

LG

pah

Offline wendeling

  • Full Member
  • ***
  • Beiträge: 280
Antw:Druckerpatronen-Zustand
« Antwort #4 am: 02 September 2018, 18:05:01 »
Halo,
bei mir will er dass ich folgende installiere :

apt-get install libxml-parser-perl libxml-xpath-perl

aber das läßt er nicht zu ?

Was tun ?

Gruß
Wendelin


Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6293
Antw:Druckerpatronen-Zustand
« Antwort #5 am: 02 September 2018, 18:18:38 »
Zitat
bei mir will er
Wer - "er" ?

Zitat
aber das läßt er nicht zu ?
Derselbe "er" ? Was heißt, "lässt nicht zu" ?

LG

pah

Offline Tedious

  • Hero Member
  • *****
  • Beiträge: 1214
  • Indocti discant et ament meminisse periti
Antw:Druckerpatronen-Zustand
« Antwort #6 am: 03 September 2018, 09:02:48 »
FHEM fehlen die Pakete. Musst Du in der Shell nachinstallieren, Du musst dazu sudo voranstellen...
FHEM auf Brix N3150/4GB/250GB SSD mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max! und SonOff, Alexa mit HABridge, Kleinkram...

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19040
Antw:Druckerpatronen-Zustand
« Antwort #7 am: 03 September 2018, 09:08:19 »
Halo,
bei mir will er dass ich folgende installiere :

apt-get install libxml-parser-perl libxml-xpath-perl

aber das läßt er nicht zu ?

Was tun ?

Gruß
Wendelin

https://forum.fhem.de/index.php/topic,71806.0.html
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline wendeling

  • Full Member
  • ***
  • Beiträge: 280
Antw:Druckerpatronen-Zustand
« Antwort #8 am: 03 September 2018, 21:52:51 »
Hallo,
Entschuldigung das ich gefragt habe!

Mit er ist der Raspberry bzw. dessen Betriebssystem gemeint gewesen.

Aber wenn ich es wüsste hätte ich nicht gefragt.

Aber ok. dann ohne Druck.. 

Gruß
Wendelin


Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6293
Antw:Druckerpatronen-Zustand
« Antwort #9 am: 04 September 2018, 04:44:50 »
Nun ja.

Wer irgendwelche komischen Fragen stellt, ohne Informationen mitzuliefern,
wer Befehlsfolgen postet, ohne die Log-Ausgaben oder Fehlermeldungen mitzuliefern,

darf sich über fehlenden Support nicht wundern.

Also ohne Druck.

LG

pah

Offline Laserhelge

  • New Member
  • *
  • Beiträge: 19
Antw:Druckerpatronen-Zustand
« Antwort #10 am: 04 September 2018, 22:19:59 »
Hallo,

wollte gerade die Idee mit dem Füllstand umsetzen, bekomme aber im Minutentakt folgenden Eintrag im Log:

Laserdrucker: Read callback: Error: http://192.168.115.221/DevMgmt/ConsumableConfigDyn.xml: empty answer received

Wenn ich die Adresse im Browser aufrufe, bekomme ich die XML-Datei angezeigt.

Hat jemand einen Tipp für mich?

Danke und viele Grüße

defmod Laserdrucker HTTPMOD http://192.168.115.221/DevMgmt/ConsumableConfigDyn.xml 60
attr Laserdrucker userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict
attr Laserdrucker httpVersion 1.1
attr Laserdrucker reading01Name Cyan
attr Laserdrucker reading01XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker reading02Name Magenta
attr Laserdrucker reading02XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker reading03Name Gelb
attr Laserdrucker reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker reading04Name Schwarz
attr Laserdrucker reading04XPath-Strict //ccdyn:ConsumableInfo[5]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker room DG_Buero
attr Laserdrucker stateFormat C: Cyan% M: Magenta% Y: Gelb% K: Schwarz%

setstate Laserdrucker C: Cyan% M: Magenta% Y: Gelb% K: Schwarz%
FHEM auf Raspberry 2 / CUL / KNX

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6293
Antw:Druckerpatronen-Zustand
« Antwort #11 am: 05 September 2018, 04:49:33 »
Timeout hochsetzen.

LG

pah

Offline Mumpitz

  • Full Member
  • ***
  • Beiträge: 241
Antw:Druckerpatronen-Zustand
« Antwort #12 am: 05 September 2018, 20:39:33 »
Hi,

weil meine Frau als Lehrerin nun schon mehrfach morgens vor der Schule festgestellt hat, dass der Drucker mal wieder keine Tinte hat, habe ich mal den Patronenzustand in FHEM integriert. Es handelt sich um einen HP Officejet Pro 8620. Ich gehe davon aus, dass es bei einer Reihe anderer HP-Drucker auf gleiche Weise funktioniert.

defmod Edeldrucker HTTPMOD http://192.168.178.78/DevMgmt/ConsumableConfigDyn.xml 60
attr Edeldrucker userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict
attr Edeldrucker httpVersion 1.1
attr Edeldrucker reading01Name Cyan
attr Edeldrucker reading01XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker reading02Name Magenta
attr Edeldrucker reading02XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker reading03Name Yellow
attr Edeldrucker reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker reading04Name Black
attr Edeldrucker reading04XPath-Strict //ccdyn:ConsumableInfo[5]/dd:ConsumablePercentageLevelRemaining/text()
attr Edeldrucker room Büro
attr Edeldrucker stateFormat C: Cyan% M: Magenta% Y: Yellow% K: Black%

Wichtig ist das Attribut "httpVersion", da der Drucker nicht auf HTTP 1.0 - Requests antwortet und das HTTPMOD defaultmäßig dieses Protokoll verwendet. Warum eigentlich? M.E. sollte der Default auf 1.1 stehen...


Vielleicht ist es ja für den ein oder anderen hilfreich!
Man kann natürlich noch viel mehr machen, aber das reicht mir zunächst mal. Eventuell ist es sinnvoll, irgendwann ein richtiges FHEM-Modul zu schreiben, dass mit dem Drucker per IPP (Internet Printing Protocol) spricht, um zum einen unabhängig vom Druckerhersteller zu funktionieren und zum anderen mehr Infos abzurufen. Außerdem könnte FHEM dann evt. auch selbst drucken :-)

Hallo akw

Tolle Sache, für mich angepasst, libxml nachinstalliert, ausgeführt und siehe da. Es funktioniert!

Besten Dank bereits jetzt dafür!

Hast Du zufälligerweise schon eine Umsetzung für TabletUI gemacht?  ;)

Offline Laserhelge

  • New Member
  • *
  • Beiträge: 19
Antw:Druckerpatronen-Zustand
« Antwort #13 am: 05 September 2018, 23:22:09 »
Danke für den Vorschlag, aber auch mit einem Timeout von 20 bekomme ich die Meldung

Laserdrucker: Read callback: Error: http://192.168.115.221/DevMgmt/ConsumableConfigDyn.xml: empty answer received

im Log. Im Browser erscheint die XML-Datei auch gefühlt verzögerungsfrei.

Hat jemand eine Idee, woran es sonst liegen könnte.

defmod Laserdrucker HTTPMOD http://192.168.115.221/DevMgmt/ConsumableConfigDyn.xml 60
attr Laserdrucker userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict
attr Laserdrucker httpVersion 1.1
attr Laserdrucker reading01Name Cyan
attr Laserdrucker reading01XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker reading02Name Magenta
attr Laserdrucker reading02XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker reading03Name Yellow
attr Laserdrucker reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker reading04Name Black
attr Laserdrucker reading04XPath-Strict //ccdyn:ConsumableInfo[5]/dd:ConsumablePercentageLevelRemaining/text()
attr Laserdrucker room DG_Buero
attr Laserdrucker stateFormat C: Cyan% M: Magenta% Y: Yellow% K: Black%
attr Laserdrucker timeout 2000

setstate Laserdrucker C: Cyan% M: Magenta% Y: Yellow% K: Black%

Danke und viele Grüße, Klaus
FHEM auf Raspberry 2 / CUL / KNX

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6293
Antw:Druckerpatronen-Zustand
« Antwort #14 am: 06 September 2018, 03:59:38 »
Vorgehensweise: diese Seite mal mit wget holen und den Inhalt ansehen. Dabei verschiedene Versionen von http (1.0, 1.1, 2.0) im Header einstellen - wenn die HP-Kisten da maulig sind, könnte es daran liegen.

LG

pah

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 5031
  • NIVEAu ist keine Creme...
Antw:Druckerpatronen-Zustand
« Antwort #15 am: 06 September 2018, 09:14:49 »
Hallo,
Entschuldigung das ich gefragt habe!

Mit er ist der Raspberry bzw. dessen Betriebssystem gemeint gewesen.

Aber wenn ich es wüsste hätte ich nicht gefragt.

Aber ok. dann ohne Druck.. 

Gruß
Wendelin

Pah hat schon recht: ohne Fehlermeldung (also warum "er" es nicht zulässt) wird es schwer/unmöglich...

Hast du "nur":

apt-get install libxml-parser-perl libxml-xpath-perl
eingegeben?

Schon mal mit 'sudo' vorneweg probiert?

EDIT: wurde ja schon mal angeregt...

Wenn's das nicht war, dann wird's/isses wohl "OffTopic" und sollte in einem eigenen Thread gelöst werden...

Evtl. soger Raspi-/Linux-Forum...

Gruß, Joachim
« Letzte Änderung: 06 September 2018, 09:16:58 von MadMax-FHEM »
FHEM 5.9 PI3: HM-CFG-USB, 40x HM, ZWave-USB, 6x ZWave, EnOcean-PI, 3x EnOcean, HUE, CO2, ESP-Multisensor, FireTV, KODI, alexa-fhem, ...
FHEM 5.9 PI2: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, KODI, ha-bridge, ...
FHEM 5.9 PI3 (Test): HM-MOD-PCB, Snips, Google Home, ...

Offline wendeling

  • Full Member
  • ***
  • Beiträge: 280
Antw:Druckerpatronen-Zustand
« Antwort #16 am: 08 September 2018, 07:23:46 »
Hallo,
Danke für die Rückantwort!
Ja ich musste das genannte Packt installieren, jedoch konnte ich das nur als root, und das war mein Problem. Konnte das aber jetzt lösen.
Jetzt läuft es mit meinem HP Drucker ganz gut nach geringen Anpassungen.
Für meine Lexmark Drucker (c 310+cn 360) bekomme ich es leider nicht hin.

Gruß
Wendelin

Offline MarvinLu

  • Jr. Member
  • **
  • Beiträge: 86
Antw:Druckerpatronen-Zustand
« Antwort #17 am: 16 November 2018, 18:07:56 »
Schönen guten Abend zusammen,

ich hoffe jemand kann mir helfen.

Ich versuche grade, meinen Epson-Drucker mit den o.g. Befehlen zu integrieren..

Leider klappt das nicht so, wie ich mir das vorstelle.

Mein Logfile sieht nach dem eingeben der Befehle so aus:
2018.11.16 18:01:51 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:02:06 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:02:22 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:02:37 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:02:37 3: Drucker: Read response to update didn't match any Reading
2018.11.16 18:02:37 3: m2s: m2s_192.168.188.118_4557/DVES_D4D03B left us (keepalive check)
2018.11.16 18:02:53 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:03:09 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:03:26 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:03:44 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:03:44 3: Drucker: Read response to update didn't match any Reading
2018.11.16 18:03:44 3: m2s: m2s_192.168.188.118_32287/DVES_D4D03B left us (keepalive check)
2018.11.16 18:03:44 3: m2s: m2s_192.168.188.117_19921/DVES_D51434 left us (keepalive check)
2018.11.16 18:03:59 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:04:15 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:04:30 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:04:46 3: Drucker: error in find for XPathStrictNodeset:
error in processing external entity reference at line 2, column 39, byte 91:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "
"http://www.w3.org/TR/html4/strict.dtd">
======================================^
<html>
<head>
 at /usr/lib/arm-linux-gnueabihf/perl5/5.24/XML/Parser.pm line 187.

2018.11.16 18:04:46 3: Drucker: Read response to update didn't match any Reading

Die List des Druckers:
Internals:
   BUSY       0
   CHANGED   
   DEF        http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML
   Interval   300
   LASTSEND   1542387074.78695
   MainURL    http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML
   ModuleVersion 3.5.4 - 9.11.2018
   NAME       Drucker
   NR         40
   STATE      C: Cyan% M: Magenta% Y: Yellow% K: Black%
   TRIGGERTIME 1542387374.78572
   TRIGGERTIME_FMT 2018-11-16 17:56:14
   TYPE       HTTPMOD
   XPathStrictEnabled 1
   addr       http://192.168.188.25:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML
   header     
   host       192.168.188.25
   httpheader HTTP/1.1 200 OK
CONTENT-TYPE: text/html
CONTENT-LENGTH: 7438
SERVER: EPSON_Linux UPnP/1.0 Epson UPnP SDK/1.0
CONNECTION: close
   httpversion 1.1
   hu_blocking 0
   hu_filecount 2
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /PRESENTATION/HTML/TOP/PRTINFO.HTML
   protocol   http
   redirects  0
   timeout    2000
   url        http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML
   value      0
   QUEUE:
   READINGS:
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML
     value      0
   sslargs:
Attributes:
   httpVersion 1.1
   reading01Name Cyan
   reading01XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
   reading02Name Magenta
   reading02XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
   reading03Name Yellow
   reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
   reading04Name Black
   reading04XPath-Strict //ccdyn:ConsumableInfo[5]/dd:ConsumablePercentageLevelRemaining/text()
   room       Drucker
   stateFormat C: Cyan% M: Magenta% Y: Yellow% K: Black%
   timeout    2000
   userattr   reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict

Wenn ich mir den Quellcode meines Druckers anzeigen lasse, der im Hintergrund der Patronenstände steht, finde ich diese Zeilen zum Anzeigen der Patronenfüllstände:
</div>
<ul class="information-last clearfix">
<li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_K.PNG' height='6'>
</div>
<div class='clrname'>BK</div>
</li>
<li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_M.PNG' height='12'>
</div>
<div class='clrname'>M</div>
</li>
<li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_Y.PNG' height='50'>
</div>
<div class='clrname'>Y</div>
</li>
<li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_C.PNG' height='50'>
</div>
<div class='clrname'>C</div>
</li>
<li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_Waste.PNG' height='36'>
</div>
<div class='mbicn'><img src='../../IMAGE/Icn_Mb.PNG' height='18' width='18'></div>

Ich bin mir sicher, dass ich die readingList anpassen muss, ich weiß nur nicht so recht wie..

Kann da jemand helfen?

Liebe Grüße und ein schönes Wochenende,
Marvin

Offline Deudi

  • Sr. Member
  • ****
  • Beiträge: 532
  • abgeschnitte Kabel sind immer zu kurz ...
Antw:Druckerpatronen-Zustand
« Antwort #18 am: 11 Dezember 2018, 18:47:52 »
Der Fund dieser Codeschnipsel hat mich inspiriert auf dem Wandtablet unter dem Webcambild des Druckers neuerdings auch den Tonerstand anzuzeigen.
Vielen Dank an alle die etwas dazu gepostet haben. Da ich eine gewisse Lernkurve durchmachen musste, möchte ich diese kurz schildern. Vielleicht nützt es jemandem, der hier später drüber stolpert.

Einen Brother Farblaser (MFC-9142CDN) lese ich mit HTTPMOD aus.

Kann da jemand helfen?
Nur bedingt. Leider keine Ahnung von reading01XPath-Strict...

Ich benutze die Attribute readingXXRegex mit z.B. folgendem Inhalt für reading01Regex:
>Toner&nbsp;Cyan&#32;\(C\)\*\*</dt><dd>\(([\d]+)\.Auf der Webseite des Druckers wird der Cyan Tonerstand im Quelltext etwa so angegeben (Ausschnitt):
>Toner&nbsp;Cyan&#32;(C)**</dt><dd>(80.0%)Maskieren muss man bekanntlich \ . ^ $ * + ? { } [ ] ( ) |
Zurück bekomme ich dann nur die "80".

@MarvinLu: Probiere es doch auch mal so. Ins blaue hinein würde ich mal folgendes für ein reading03Regex probieren, um die "50" zu bekommen:
Ink_Y.*?='([\d]+)'
Interessant war bei mir, dass Magenta und Cyan ganz toll sofort funktioniert haben, Gelb dann aber nicht mehr. Ich habe eine Stunde gebraucht um herauszufinden, dass der Drucker meinem Firefox die Seite in Deutsch ausliefert, dem HTTPMOD aber in Englisch. Das habe ich erst mittels wget herausgefunden und suche daher nun nach Yellow. Also immer mal erst schauen was man mittels wget so bekommt.

Den 20 Jahre alten Epson S/W Laser (EPL-5700) mit Ethernetkarte kann ich leider nicht auslesen auswerten. Auf der Webseite steht nix vom Toner und via SNMP kommt allerlei, nur habe ich leider keine MIB gefunden.

Ein Canon Farb-Tintenstrahldrucker (MG8150) kann leider kein SNMP und die Webseite schweigt sich über den Tintenstand leider aus. Hier bin ich mit dem Tool "ink" fündig geworden.
apt-get install inkAuslesen mit z.B.:
root@brix:/home/ich# ink -b bjnp://192.168.211.50
ink 0.5.2 (c) 2015 Markus Heinz

Canon MG8100 series

Black:                                  10%
Photoblack:                            100%
Yellow:                                 40%
Magenta:                               100%
Cyan:                                   10%
Photogrey:                              10%
Die Werte kann man sich dann abgreifen z.B. mit
ink -b bjnp://192.168.211.50 | awk ‘/Photoblack:/ { print $NF }’Für die Integration in FHEM hat mir der Code von pah als Vorlage gedient.

Grüße
Deudi


Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6293
Antw:Druckerpatronen-Zustand
« Antwort #19 am: 11 Dezember 2018, 19:06:14 »

Offline Mumpitz

  • Full Member
  • ***
  • Beiträge: 241
Antw:Druckerpatronen-Zustand
« Antwort #20 am: 12 Dezember 2018, 06:32:04 »
Der Fund dieser Codeschnipsel hat mich inspiriert auf dem Wandtablet unter dem Webcambild des Druckers neuerdings auch den Tonerstand anzuzeigen.
Vielen Dank an alle die etwas dazu gepostet haben. Da ich eine gewisse Lernkurve durchmachen musste, möchte ich diese kurz schildern. Vielleicht nützt es jemandem, der hier

Wärst du bereit Deinen Tablet UI Code zusammen mit einem Screen Shot zu veröffentlichen?

Mumpitz

Offline Deudi

  • Sr. Member
  • ****
  • Beiträge: 532
  • abgeschnitte Kabel sind immer zu kurz ...
Antw:Druckerpatronen-Zustand
« Antwort #21 am: 12 Dezember 2018, 18:30:59 »
Wärst du bereit Deinen Tablet UI Code zusammen mit einem Screen Shot zu veröffentlichen?

Hallo Mumpitz,

Code für das TabletUI kann ich leider nicht liefern, da ich das InfoPanel benutze. Der Screenshot ist trotzdem angehängt.

LG
Deudi
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino

Offline MarvinLu

  • Jr. Member
  • **
  • Beiträge: 86
Antw:Druckerpatronen-Zustand
« Antwort #22 am: 13 Dezember 2018, 22:28:36 »
Vielen Dank für eure Hilfe!

Ich bekomme den letzten Schritt nicht hin, wenn ich das Reading definieren will.

Mein Code (hier beispw. für eine Farbe):

define Drucker_Epson HTTPMOD http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML 300
attr Drucker_Epson userattr readingsName_Yellow
attr Drucker_Epson readingsName_Yellow Yellow
attr Drucker_Epson readingsRegex_Yellow <Ink_Y.*?='([\d]+)'>

Ich habe leider die Syntax von readingsRegex noch nicht ganz verstanden..

Wie müsste der letzte Befehl lauten, um die 50 aus diesem Codeschnipsel zu erhalten?
<img class='color' src='../../IMAGE/Ink_Y.PNG' height='50'>

Liebe Grüße und Danke für die Hilfe,
Marvin

Offline Deudi

  • Sr. Member
  • ****
  • Beiträge: 532
  • abgeschnitte Kabel sind immer zu kurz ...
Antw:Druckerpatronen-Zustand
« Antwort #23 am: 15 Dezember 2018, 13:44:59 »
define Drucker_Epson HTTPMOD http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML 300
attr Drucker_Epson userattr readingsName_Yellow
attr Drucker_Epson readingsName_Yellow Yellow
attr Drucker_Epson readingsRegex_Yellow <Ink_Y.*?='([\d]+)'>

Ich habe leider die Syntax von readingsRegex noch nicht ganz verstanden..

Stimmt  ;)

Probiere es mal so:
define Drucker_Epson HTTPMOD http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML 300
attr Drucker_Epson readings01Name Yellow
attr Drucker_Epson readings01Regex Ink_Y.*?='([\d]+)'

Man möge mich korrigieren aber ich denke die Syntax der Readingsname hatte sich geändert. Versuche es mal mit readings01Name, readings02Name, ...
Erklärung zur Regex: Es wird nach "Ink_Y" gesucht (entsprechend deinem geposteten Quellcode sollte das eindeutig sein). Danach werden beliebig viele beliebige Zeichen übersprungen bis zum Gleichheitszeichen und dem Hochkomma. Extrahiert werden dann die Dezimalzahlen zwischen den beiden Hochkommata.

Wenn das funktioniert, dann solltest du das für die anderen Farben auch hinbekommen.

Gruß
Deudi
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino

Offline somansch

  • Full Member
  • ***
  • Beiträge: 214
Antw:Druckerpatronen-Zustand
« Antwort #24 am: 21 Dezember 2018, 00:20:21 »
Ich habe mal für meine "HP Color LaserJet MFP" ausprobiert, welche weiteren sinnvollen Readings über diesen Weg auszuwerten sind:
defmod Druckereigenschaften HTTPMOD http://192.168.5.43/DevMgmt/ProductConfigDyn.xml 3600
attr Druckereigenschaften userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict reading05Name reading05XPath-Strict
attr Druckereigenschaften httpVersion 1.1
attr Druckereigenschaften reading01Name Model
attr Druckereigenschaften reading01XPath-Strict //dd:MakeAndModel/text()
attr Druckereigenschaften reading02Name Serial_Number
attr Druckereigenschaften reading02XPath-Strict //dd:SerialNumber/text()
attr Druckereigenschaften reading03Name Firmware_Date
attr Druckereigenschaften reading03XPath-Strict //dd:Date/text()
attr Druckereigenschaften reading04Name Total_Memory
attr Druckereigenschaften reading04XPath-Strict //dd:TotalMemory/text()
attr Druckereigenschaften reading05Name Available_Memory
attr Druckereigenschaften reading05XPath-Strict //dd:AvailableMemory/text()
attr Druckereigenschaften room 087_Status
attr Druckereigenschaften stateFormat Modell: Model SN: Serial_Number
attr Druckereigenschaften userReadings Memory_Usage {100-(ReadingsNum("Druckereigenschaften","Available_Memory","")/2.56)}

defmod Druckerpatronenstatus HTTPMOD http://192.168.5.43/DevMgmt/ConsumableConfigDyn.xml 3600
attr Druckerpatronenstatus userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict
attr Druckerpatronenstatus httpVersion 1.1
attr Druckerpatronenstatus reading01Name Cyan
attr Druckerpatronenstatus reading01XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus reading02Name Magenta
attr Druckerpatronenstatus reading02XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus reading03Name Yellow
attr Druckerpatronenstatus reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus reading04Name Black
attr Druckerpatronenstatus reading04XPath-Strict //ccdyn:ConsumableInfo[1]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus room 087_Status
attr Druckerpatronenstatus stateFormat C: Cyan% M: Magenta% Y: Yellow% B: Black%

defmod Druckerstatistik HTTPMOD http://192.168.5.43/DevMgmt/ProductUsageDyn.xml 3600
attr Druckerstatistik userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict reading05Name reading05XPath-Strict reading06Name reading06XPath-Strict reading07Name reading07XPath-Strict reading08Name reading08XPath-Strict
attr Druckerstatistik httpVersion 1.1
attr Druckerstatistik reading01Name Pages_Total
attr Druckerstatistik reading01XPath-Strict //pudyn:PrinterSubunit/dd:TotalImpressions/text()
attr Druckerstatistik reading02Name Pages_Monochrome
attr Druckerstatistik reading02XPath-Strict //pudyn:PrinterSubunit/dd:MonochromeImpressions/text()
attr Druckerstatistik reading03Name Pages_Color
attr Druckerstatistik reading03XPath-Strict //pudyn:PrinterSubunit/dd:ColorImpressions/text()
attr Druckerstatistik reading04Name Pages_Duplex
attr Druckerstatistik reading04XPath-Strict //pudyn:PrinterSubunit/dd:DuplexSheets/text()
attr Druckerstatistik reading05Name Jam_Events
attr Druckerstatistik reading05XPath-Strict //pudyn:PrinterSubunit/dd:JamEvents/text()
attr Druckerstatistik reading06Name Mispick_Events
attr Druckerstatistik reading06XPath-Strict //pudyn:PrinterSubunit/dd:MispickEvents/text()
attr Druckerstatistik reading07Name ADF_Image_Scans
attr Druckerstatistik reading07XPath-Strict //pudyn:ScannerEngineSubunit/dd:AdfImages/text()
attr Druckerstatistik reading08Name Flatbed_Image_Scans
attr Druckerstatistik reading08XPath-Strict //pudyn:ScannerEngineSubunit/dd:FlatbedImages/text()
attr Druckerstatistik room 087_Status
attr Druckerstatistik stateFormat Total: Pages_Total Monochrome: Pages_Monochrome Color: Pages_Color

defmod Druckerstatus HTTPMOD http://192.168.5.43/DevMgmt/ProductStatusDyn.xml 5
attr Druckerstatus userattr reading01Name reading01XPath-Strict
attr Druckerstatus httpVersion 1.1
attr Druckerstatus reading01Name Status
attr Druckerstatus reading01XPath-Strict //psdyn:LocString[@lang='de']/text()
attr Druckerstatus room 087_Status
attr Druckerstatus stateFormat Status

Das Ergebnis kann sich sehen lassen, oder?  :D

Viele Grüße
Andreas
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6293
Antw:Druckerpatronen-Zustand
« Antwort #25 am: 21 Dezember 2018, 04:07:52 »
Ah, Schwarz auf Schwarz.
Muss ein Experte im User Interface Design sein...

pah


Offline mark79

  • Sr. Member
  • ****
  • Beiträge: 522
Antw:Druckerpatronen-Zustand
« Antwort #26 am: 21 Dezember 2018, 17:40:32 »
Ah, Schwarz auf Schwarz.
Muss ein Experte im User Interface Design sein...

pah

Ich finde es schon hübsch und für mich sieht der Hintergrund nach Grau aus.
Vielleicht würde ich die Kreise noch Grau machen.

Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, DashButtons, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Offline Mumpitz

  • Full Member
  • ***
  • Beiträge: 241
Antw:Druckerpatronen-Zustand
« Antwort #27 am: 21 Dezember 2018, 23:04:16 »
Ich habe mal für meine "HP Color LaserJet MFP" ausprobiert, welche weiteren sinnvollen Readings über diesen Weg auszuwerten sind:
defmod Druckereigenschaften HTTPMOD http://192.168.5.43/DevMgmt/ProductConfigDyn.xml 3600
attr Druckereigenschaften userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict reading05Name reading05XPath-Strict
attr Druckereigenschaften httpVersion 1.1
attr Druckereigenschaften reading01Name Model
attr Druckereigenschaften reading01XPath-Strict //dd:MakeAndModel/text()
attr Druckereigenschaften reading02Name Serial_Number
attr Druckereigenschaften reading02XPath-Strict //dd:SerialNumber/text()
attr Druckereigenschaften reading03Name Firmware_Date
attr Druckereigenschaften reading03XPath-Strict //dd:Date/text()
attr Druckereigenschaften reading04Name Total_Memory
attr Druckereigenschaften reading04XPath-Strict //dd:TotalMemory/text()
attr Druckereigenschaften reading05Name Available_Memory
attr Druckereigenschaften reading05XPath-Strict //dd:AvailableMemory/text()
attr Druckereigenschaften room 087_Status
attr Druckereigenschaften stateFormat Modell: Model SN: Serial_Number
attr Druckereigenschaften userReadings Memory_Usage {100-(ReadingsNum("Druckereigenschaften","Available_Memory","")/2.56)}

defmod Druckerpatronenstatus HTTPMOD http://192.168.5.43/DevMgmt/ConsumableConfigDyn.xml 3600
attr Druckerpatronenstatus userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict
attr Druckerpatronenstatus httpVersion 1.1
attr Druckerpatronenstatus reading01Name Cyan
attr Druckerpatronenstatus reading01XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus reading02Name Magenta
attr Druckerpatronenstatus reading02XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus reading03Name Yellow
attr Druckerpatronenstatus reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus reading04Name Black
attr Druckerpatronenstatus reading04XPath-Strict //ccdyn:ConsumableInfo[1]/dd:ConsumablePercentageLevelRemaining/text()
attr Druckerpatronenstatus room 087_Status
attr Druckerpatronenstatus stateFormat C: Cyan% M: Magenta% Y: Yellow% B: Black%

defmod Druckerstatistik HTTPMOD http://192.168.5.43/DevMgmt/ProductUsageDyn.xml 3600
attr Druckerstatistik userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict reading05Name reading05XPath-Strict reading06Name reading06XPath-Strict reading07Name reading07XPath-Strict reading08Name reading08XPath-Strict
attr Druckerstatistik httpVersion 1.1
attr Druckerstatistik reading01Name Pages_Total
attr Druckerstatistik reading01XPath-Strict //pudyn:PrinterSubunit/dd:TotalImpressions/text()
attr Druckerstatistik reading02Name Pages_Monochrome
attr Druckerstatistik reading02XPath-Strict //pudyn:PrinterSubunit/dd:MonochromeImpressions/text()
attr Druckerstatistik reading03Name Pages_Color
attr Druckerstatistik reading03XPath-Strict //pudyn:PrinterSubunit/dd:ColorImpressions/text()
attr Druckerstatistik reading04Name Pages_Duplex
attr Druckerstatistik reading04XPath-Strict //pudyn:PrinterSubunit/dd:DuplexSheets/text()
attr Druckerstatistik reading05Name Jam_Events
attr Druckerstatistik reading05XPath-Strict //pudyn:PrinterSubunit/dd:JamEvents/text()
attr Druckerstatistik reading06Name Mispick_Events
attr Druckerstatistik reading06XPath-Strict //pudyn:PrinterSubunit/dd:MispickEvents/text()
attr Druckerstatistik reading07Name ADF_Image_Scans
attr Druckerstatistik reading07XPath-Strict //pudyn:ScannerEngineSubunit/dd:AdfImages/text()
attr Druckerstatistik reading08Name Flatbed_Image_Scans
attr Druckerstatistik reading08XPath-Strict //pudyn:ScannerEngineSubunit/dd:FlatbedImages/text()
attr Druckerstatistik room 087_Status
attr Druckerstatistik stateFormat Total: Pages_Total Monochrome: Pages_Monochrome Color: Pages_Color

defmod Druckerstatus HTTPMOD http://192.168.5.43/DevMgmt/ProductStatusDyn.xml 5
attr Druckerstatus userattr reading01Name reading01XPath-Strict
attr Druckerstatus httpVersion 1.1
attr Druckerstatus reading01Name Status
attr Druckerstatus reading01XPath-Strict //psdyn:LocString[@lang='de']/text()
attr Druckerstatus room 087_Status
attr Druckerstatus stateFormat Status

Das Ergebnis kann sich sehen lassen, oder?  :D

Viele Grüße
Andreas
Genial!!! Danke für den Gedankenanstoss. Würdest du den FTUI code ebenfalls teilen?

Offline somansch

  • Full Member
  • ***
  • Beiträge: 214
Antw:Druckerpatronen-Zustand
« Antwort #28 am: 21 Dezember 2018, 23:20:58 »
Genial!!! Danke für den Gedankenanstoss. Würdest du den FTUI code ebenfalls teilen?

Ich habe einen neuen Thread hierfür im FTUI Forum gemacht:https://forum.fhem.de/index.php/topic,94751.0.html

Dort werde ich dann den FTUI Code posten.

Offline MarvinLu

  • Jr. Member
  • **
  • Beiträge: 86
Antw:Druckerpatronen-Zustand
« Antwort #29 am: 02 Januar 2019, 15:32:36 »
Stimmt  ;)

Probiere es mal so:
define Drucker_Epson HTTPMOD http://192.168.188.25/PRESENTATION/HTML/TOP/PRTINFO.HTML 300
attr Drucker_Epson readings01Name Yellow
attr Drucker_Epson readings01Regex Ink_Y.*?='([\d]+)'

Man möge mich korrigieren aber ich denke die Syntax der Readingsname hatte sich geändert. Versuche es mal mit readings01Name, readings02Name, ...
Erklärung zur Regex: Es wird nach "Ink_Y" gesucht (entsprechend deinem geposteten Quellcode sollte das eindeutig sein). Danach werden beliebig viele beliebige Zeichen übersprungen bis zum Gleichheitszeichen und dem Hochkomma. Extrahiert werden dann die Dezimalzahlen zwischen den beiden Hochkommata.

Wenn das funktioniert, dann solltest du das für die anderen Farben auch hinbekommen.

Gruß
Deudi

Wahnsinn, es funktioniert!! Vielen Dank dafür!!
Das einzige, was nicht ganz korrekt war, waren diese Befehle:
attr Drucker_Epson reading[b]s[/b]01Name Yellow
attr Drucker_Epson reading[b]s[/b]01Regex Ink_Y.*?='([\d]+)'
Das "s" muss weggelassen werden, dann funktioniert alles!

Liebe Grüße,
Marvin

Offline slor

  • Full Member
  • ***
  • Beiträge: 480
Antw:Druckerpatronen-Zustand
« Antwort #30 am: 03 Januar 2019, 10:41:52 »
Hallo,

hier meine Config für einen Epson Stylus Photo PX820FWD

defmod Drucker_Epson HTTPMOD http://192.168.1.5/PRESENTATION/HTML/TOP/INDEX.HTML 300
attr Drucker_Epson userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex
attr Drucker_Epson alias Epson Stylus Photo PX820FWD
attr Drucker_Epson httpVersion 1.1
attr Drucker_Epson reading01Name Cyan
attr Drucker_Epson reading01Regex Ink_C.*?='([\d]+)'
attr Drucker_Epson reading02Name Yellow
attr Drucker_Epson reading02Regex Ink_Y.*?='([\d]+)'
attr Drucker_Epson reading03Name LightCyan
attr Drucker_Epson reading03Regex Ink_LC.*?='([\d]+)'
attr Drucker_Epson reading04Name Black
attr Drucker_Epson reading04Regex Ink_K.*?='([\d]+)'
attr Drucker_Epson reading05Name Magenta
attr Drucker_Epson reading05Regex Ink_M.*?='([\d]+)'
attr Drucker_Epson reading06Name LightMagenta
attr Drucker_Epson reading06Regex Ink_LM.*?='([\d]+)'
attr Drucker_Epson stateFormat C: Cyan% Y: Yellow% LC: LightCyan% BK: Black% M: Magenta% LM: LightMagenta%
FHEM auf Cubietruck Debian Stretch
CCU3 mit RaspberryMatic im Testbetrieb
FS20, Homematic, MQTT, Telegram, Sonoff mit Tasmota, Bluetooth Anwesenheitserkennung mit Handys

Offline chr2k

  • Sr. Member
  • ****
  • Beiträge: 577
Antw:Druckerpatronen-Zustand
« Antwort #31 am: 04 Januar 2019, 00:33:00 »
Vielleicht ist es ja für den ein oder anderen hilfreich!

Sehr hilfreich. Danke! Hat Out-of-the-Box funktioniert. Habe einen HP Officejet Pro 8600 plus.

Gruß
Christian

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 446
Antw:Druckerpatronen-Zustand
« Antwort #32 am: 18 Januar 2019, 16:43:33 »
Danke hat mir auch geholfen mit meinem HP.
Hat noch jemand DOIFs für "fast" alle?
Würde mich über einen Codeschnipsel freuen.