FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: akw am 27 August 2018, 08:37:10

Titel: Druckerpatronen-Zustand
Beitrag von: akw 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 :-)



Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Helmi55 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Tedious 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 ;)
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: wendeling 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

Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning am 02 September 2018, 18:18:38
Zitatbei mir will er
Wer - "er" ?

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

LG

pah
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Tedious am 03 September 2018, 09:02:48
FHEM fehlen die Pakete. Musst Du in der Shell nachinstallieren, Du musst dazu sudo voranstellen...
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: CoolTux am 03 September 2018, 09:08:19
Zitat von: wendeling 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

https://forum.fhem.de/index.php/topic,71806.0.html
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: wendeling 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

Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Laserhelge 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%
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning am 05 September 2018, 04:49:33
Timeout hochsetzen.

LG

pah
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Mumpitz am 05 September 2018, 20:39:33
Zitat von: akw 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 :-)

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?  ;)
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Laserhelge 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: MadMax-FHEM am 06 September 2018, 09:14:49
Zitat von: wendeling 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

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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: wendeling 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: MarvinLu 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Deudi 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.

Zitat von: MarvinLu am 16 November 2018, 18:07:56
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 \(C\)\*\*</dt><dd>\(([\d]+)\.
Auf der Webseite des Druckers wird der Cyan Tonerstand im Quelltext etwa so angegeben (Ausschnitt):
>Toner&nbsp;Cyan (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 ink
Auslesen 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


Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning am 11 Dezember 2018, 19:06:14
Ist ganz einfach.

https://www.w3schools.com/xml/xpath_intro.asp

LG

pah
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Mumpitz am 12 Dezember 2018, 06:32:04
Zitat von: Deudi 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

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

Mumpitz
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Deudi am 12 Dezember 2018, 18:30:59
Zitat von: Mumpitz am 12 Dezember 2018, 06:32:04
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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: MarvinLu 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Deudi am 15 Dezember 2018, 13:44:59
Zitat von: MarvinLu am 13 Dezember 2018, 22:28:36
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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: somansch 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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning am 21 Dezember 2018, 04:07:52
Ah, Schwarz auf Schwarz.
Muss ein Experte im User Interface Design sein...

pah

Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mark79 am 21 Dezember 2018, 17:40:32
Zitat von: Prof. Dr. Peter Henning am 21 Dezember 2018, 04:07:52
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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Mumpitz am 21 Dezember 2018, 23:04:16
Zitat von: somansch 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
Genial!!! Danke für den Gedankenanstoss. Würdest du den FTUI code ebenfalls teilen?
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: somansch am 21 Dezember 2018, 23:20:58
Zitat von: Mumpitz am 21 Dezember 2018, 23:04:16
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 (https://forum.fhem.de/index.php/topic,94751.0.html)

Dort werde ich dann den FTUI Code posten.
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: MarvinLu am 02 Januar 2019, 15:32:36
Zitat von: Deudi am 15 Dezember 2018, 13:44:59
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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: slor 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%
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: chr2k am 04 Januar 2019, 00:33:00
Zitat von: akw am 27 August 2018, 08:37:10
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
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: masterpete23 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.
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: THZ_Haus am 07 Juni 2019, 20:31:50
Zitat von: Helmi55 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

Hallo,
für den WF 3620:     

https://IP-Adresse/PRESENTATION/ADVANCED/INFO_PRTINFO/TOP 60
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 23 Juni 2019, 09:05:10
Hallo,

basierend auf dieser Idee wollte ich mal alle interessanten Infos aus dem Druckerstatus für Brother Laserdrucker parsen. Mal abgesehen von meinen geringen Kenntnissen über reg. Ausdrücke, bin ich aber soweit, dass man z.B. bei allen Drucker der MFC Serie mit dem gleichen Aufruf die Wartungsinfos bekommt. Ich habe dann versucht über den https://regex101.com/ einen Packan zu bekommen. Hier bekomme ich auch ein Ergebnis und es wird nix angemeckert, aber im FHEM kommen zum Regexe Fehlermeldungen. Jetzt die Fakten. Es geht um Regex05

defmod MFC9332_STATUS HTTPMOD http://xxx.xxx.xxx.xx/general/information.html 7200
attr MFC9332_STATUS userattr reading01Name reading01Regex reading01XPath-Strict reading02Name reading02Regex reading02XPath-Strict reading03Name reading03Regex reading03XPath-Strict reading04Name reading04Regex reading04XPath-Strict reading05Name reading05Regex reading05XPath-Strict
attr MFC9332_STATUS group Drucker
attr MFC9332_STATUS httpVersion 1.1
attr MFC9332_STATUS reading01Name Cyan
attr MFC9332_STATUS reading01Regex \(C\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr MFC9332_STATUS reading02Name Magenta
attr MFC9332_STATUS reading02Regex \(M\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr MFC9332_STATUS reading03Name Gelb
attr MFC9332_STATUS reading03Regex \(Y\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr MFC9332_STATUS reading04Name Schwarz
attr MFC9332_STATUS reading04Regex \(BK\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr MFC9332_STATUS reading05Name Typ
attr MFC9332_STATUS reading05Regex Modellname*.{9}(\w{1,10})
attr MFC9332_STATUS room 91_Geraete
attr MFC9332_STATUS stateFormat C: Cyan% M: Magenta% G: Gelb% S: Schwarz%


Fehlermeldung:
2019.06.23 08:45:26 3: MFC9332_STATUS: Defined with URL http://xxx.xxx.xxx.xx/general/information.html and interval 7200 featurelevel 5.9
2019.06.23 08:46:58 3: MFC9332_STATUS: Attr with invalid regex in attr MFC9332_STATUS reading05Regex Modellname*.{9}(\w{1,10}: Unmatched ( in regex; marked by <-- HERE in m/Modellname*.{9}( <-- HERE \w{1,10}/ at ./FHEM/98_HTTPMOD.pm line 585.


<div id="baseFrame"><div id="frameContainer"><div id="headerFrameContainerLeft"><div id="headerFrameContainerRight"><div id="headerFrameInner"><div id="headerFrame"><div id="modelName"><h1>MFC-9332CDW</h1><div class="SetBox" id="SetBoxNoAuthRight"><div id="SetBoxNoAuthLeft"><a href="/admin/password.html">Bitte konfigurieren Sie das Kennwort &gt;&gt;</a></div></div></div><div id="corporateLogo"><img src="/common/images/logo.gif" alt="Brother"></div></div><div id="solutions"><div><span><a href="http://solutions.brother.com/cgi-bin/solutions.cgi?MDL=mfc562&amp;LNG=de&amp;SRC=DEVICE">Brother<br>Solutions Center</a></span></div></div><div id="tabMenu"><ul><li><ul><li class="selected"><p>Allgemein</p></li></ul></li><li><ul><li><a href="/address/speeddial.html?start=1&amp;pageid=14">Adressbuch</a></li><li><a href="/fax/fax/fax.html">Fax</a></li><li><a href="/copy/copy.html">Kopie</a></li><li><a href="/print/print.html">Drucken</a></li><li><a href="/scan/scantousb.html">Scannen</a></li></ul></li><li><ul><li><a href="/admin/password.html">Administrator</a></li></ul></li><li><ul><li><a href="/net/net/net.html">Netzwerk</a></li></ul></li></ul></div></div></div></div><div id="mainFrameContainer"><div id="mainFrameTopLeft"><div id="mainFrameTopRight"><div id="mainFrameTopInner"><div id="subTabMenu">&nbsp;</div></div></div></div><div id="mainFrameInner"><div id="subMenu"><div><a href="/general/status.html">Status</a></div><div><a href="/general/reflesh.html" class="subPage">Automatische Aktualisierung</a></div><div class="selected"><div class="top"><div class="bottom"><a href="/general/information.html?kind=item">Wartungsinformationen</a></div></div></div><div><a href="/general/lists.html">Berichte/Listen</a></div><div><a href="/general/find.html">Gerät suchen</a></div><div><a href="/general/contact.html">Ansprechpartner &amp; Standort </a></div><div><a href="/general/sleep.html">Energiesparmodus</a></div><div><a href="/general/volume.html">Lautstärke</a></div><div><a href="/general/date.html">Datum/Uhrzeit</a></div></div><div id="rightFrameContainer"><div id="rightFrame"><div id="mainContent"><div id="pageTitle"><h2>Wartungsinformationen</h2></div><div id="pageContents"><form method="post" action="/etc/mnt_info.csv"><div><input type="hidden" id="pageid" name="pageid" value="3"></div><div class="contentsGroup"><h3>Knoteninformation</h3><dl class="items"><dt>Modellname</dt><dd>Brother MFC-9332CDW</dd><dt>Seriennr.

Darüberhinaus finde ich einfach nicht die Syntax, um den ganzen Begriff: Brother MFC-9332CDW als Ergebnis zu bekommen. Bitte um Hilfe. Danke

LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: rcmcronny am 23 Juni 2019, 10:23:40
Hoi,

das Modell würde ich folgend abgreifen:


attr MFC9332_STATUS reading05Regex <dt>Modellname<\/dt><dd>(.*)<\/dd>
[code]

Das geht sicher auch nocht eleganter / kürzer / besser :)
Zur Fehlermeldung kann ich aktuell noch nix sagen.

Ronny

Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mi.ke am 23 Juni 2019, 13:11:10
Zitat von: elektrikpe2 am 23 Juni 2019, 09:05:10
Darüberhinaus finde ich einfach nicht die Syntax, um den ganzen Begriff: Brother MFC-9332CDW als Ergebnis zu bekommen. Bitte um Hilfe. Danke

Warum fragst Du denn den Modellnamen ab? Der ändert sich doch sowieso nie!?!

Cheers
mi.ke
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mi.ke am 23 Juni 2019, 13:11:46
Ich hab seit ca. zwei Jahren einen Brother DCP-9022CDW

Diesen frage ich wie folgt ab.

Vielleicht kann es ja jemand brauchen

Cheers
mi.ke


defmod BrotherDrucker HTTPMOD http://xxx.xxx.xxx.xxx/general/information.html?kind=item 0
attr BrotherDrucker userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex
attr BrotherDrucker enableControlSet 1
attr BrotherDrucker event-on-change-reading .*
attr BrotherDrucker group Büro
attr BrotherDrucker reading01Name cyan
attr BrotherDrucker reading01Regex Toner&nbsp;;Cyan.*?<dd>\((.*?).00
attr BrotherDrucker reading02Name magenta
attr BrotherDrucker reading02Regex Toner&nbsp;;Magenta.*?<dd>\((.*?).00
attr BrotherDrucker reading03Name yellow
attr BrotherDrucker reading03Regex Toner&nbsp;;Yellow.*?<dd>\((.*?).00
attr BrotherDrucker reading04Name black
attr BrotherDrucker reading04Regex Toner&nbsp;;Black.*?<dd>\((.*?).00
attr BrotherDrucker reading05Name pagesPrinted
attr BrotherDrucker reading05Regex Total ;Pages ;Printed.*?A4.*?<dd>(.*?)<span
attr BrotherDrucker room 0bergeschoss
attr BrotherDrucker sortby pc21
attr BrotherDrucker stateFormat Gedruckte Seiten: <b>pagesPrinted</b><br>C:cyan% | M:magenta% | Y:yellow% | Black:black%
attr BrotherDrucker verbose 2
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 23 Juni 2019, 13:17:15
Hallo,

@ronny: ja vielen Dank. Damit ist jetzt die Fehlermeldung weg aber obwohl ich in allen regexe online Tester den erwünschten Wert erhalte, wird er nicht in "Typ" gespeichert. Ich befürchte, ich habe da noch Verständnisprobleme im Zusammenhang mit HTTMOD oder Ergebnisermittlung bei regexe. Wenn mir da jemand helfen könnte verspreche ich, meine Ergebnisse über eine Status/Statistik-Abfrage als Codeschnipsel zur Verfügung zu stellen. Hier mal der List:

Internals:
   BUSY       0
   CFGFN     
   DEF        http://xxx.xxx.xxx.xx/general/information.html 300
   FUUID      5d0f1237-f33f-0197-82d1-203af86846c13662
   Interval   300
   LASTSEND   1561287979.4047
   MainURL    http://xxx.xxx.xxx.xx/general/information.html
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       MFC9332_STATUS
   NOTIFYDEV  global
   NR         4188
   NTFY_ORDER 50-MFC9332_STATUS
   STATE      C: 80.00% M: 80.00% G: 80.00% S: 60.00% Modell: Typ
   TRIGGERTIME 1561288279.40241
   TRIGGERTIME_FMT 2019-06-23 13:11:19
   TYPE       HTTPMOD
   addr       http://xxx.xxx.xxx.xx:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://xxx.xxx.xxx.xx/general/information.html
   header     
   host       xxx.xxx.xxx.xx
   httpheader HTTP/1.1 200 OK
Cache-Control: no-cache
X-Frame-Options: DENY
Content-Length: 10009
Content-Type: text/html
Content-Language: en-gb
Connection: close
Server: debut/1.30
Pragma: no-cache
   httpversion 1.1
   hu_blocking 0
   hu_filecount 12
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /general/information.html
   protocol   http
   redirects  0
   timeout    2
   url        http://xxx.xxx.xxx.xx/general/information.html
   value      0
   QUEUE:
   READINGS:
     2019-06-23 13:06:20   Cyan            80.00
     2019-06-23 13:06:20   Gelb            80.00
     2019-06-23 13:06:20   Magenta         80.00
     2019-06-23 13:06:20   Schwarz         60.00
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://xxx.xxx.xxx.xx/general/information.html
     value      0
   defptr:
     readingBase:
       Cyan       reading
       Gelb       reading
       Magenta    reading
       Schwarz    reading
     readingNum:
       Cyan       01
       Gelb       03
       Magenta    02
       Schwarz    04
     readingOutdated:
     requestReadings:
       update:
         Cyan       reading 01
         Gelb       reading 03
         Magenta    reading 02
         Schwarz    reading 04
   sslargs:
Attributes:
   group      Drucker
   httpVersion 1.1
   reading01Name Cyan
   reading01Regex \(C\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
   reading02Name Magenta
   reading02Regex \(M\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
   reading03Name Gelb
   reading03Regex \(Y\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
   reading04Name Schwarz
   reading04Regex \(BK\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
   reading05Name Typ
   reading05Regex <dt>Modellname<\/dt><dd>(.*?)<\/dd>
   room       91_Geraete
   stateFormat C: Cyan% M: Magenta% G: Gelb% S: Schwarz% Modell: Typ
   userattr   reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex
   verbose    0


@mi.ke: Ich bin Beamter und neben die Seriennummer gehört der Typ  ;) Nein, ich will/muss mehrere Drucker abfragen und nacher in FTUI darstellen.

LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mi.ke am 23 Juni 2019, 13:23:30
Zitat von: elektrikpe2 am 23 Juni 2019, 13:17:15
ich will/muss mehrere Drucker abfragen und nacher in FTUI darstellen.

Wenn ich Beamter wäre, würde ich mir es leicht machen  8)
setreading MFC9332_STATUS Typ Brother MFC-9332CDW

Cheers
mi.ke
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 23 Juni 2019, 14:00:45
nee, dat is zu einfach
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mi.ke am 23 Juni 2019, 14:23:30
Zitat von: elektrikpe2 am 23 Juni 2019, 14:00:45
nee, dat is zu einfach

verstehe !!

Bei mir funktionieren diese beiden Abfrage (gerade getestet)

attr MFC9332_STATUS reading05Regex Name<\/dt><dd>(.*?)<

attr MFC9332_STATUS reading05Regex Model.*?<dd>(.*?)<

Cheers
mi.ke
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 23 Juni 2019, 16:03:02
Hallo,

ich habe geglaubt, die Hilfe von mi.ke verstanden zu haben. Seine VOrgabe funktioniert tatsächlich. Dazu habe ich jetzt einige Abfragen zu den Druckereigenschaften gemacht.

attr Druckereigenschaften reading01Name Typ
attr Druckereigenschaften reading01Regex Model.*?<dd>(.*?)<
attr Druckereigenschaften reading02Name Serienr
attr Druckereigenschaften reading02Regex Serienn.*?<dd>(.*?)<
attr Druckereigenschaften reading03Name Sub1
attr Druckereigenschaften reading03Regex Sub1.*?<dd>(.*?)<
attr Druckereigenschaften reading04Name MB
attr Druckereigenschaften reading04Regex Speicher.*?<dd>(.*?)<


Eigentlich musste ich ja nur die Suchbegriffe in der regex ändern, um die Ergebnisse zu bekommen. Im regexe-Tester kommen auch alle Ergebnisse. Aber in FHEM nur  reading01 Typ und reading03 Sub1 (Firmware). Ich verstehe nix mehr

LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mi.ke am 23 Juni 2019, 16:55:21
gugg mal

Am Beispiel reading02Regex 

Das ist eine Kopie des HTML Textes:
Serial no.</dt><dd>(.*?)<
-rot willst Du haben:
-dazu suchst Du grün  und blau wird ignoriert

Das Problem ist, dass da nicht Seriennr. steht sondern Serial no.
Zumindest bei mir ist das so.

Beispiel 2: Speicher - da ist der Suchbegriff Memory

cheers
mi.ke
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 23 Juni 2019, 17:05:17
Vielen Dank. Hat funktioniert. Muss ich mal sehen, wie ich an die englische HTML Seite komme. Ich bin immer von der deutschen ausgegangen. Würde Dir einen ausgeben wenn ich könnte. Ich trink einen auf dich. LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mi.ke am 23 Juni 2019, 17:11:04
Zitat von: elektrikpe2 am 23 Juni 2019, 17:05:17
Würde Dir einen ausgeben wenn ich könnte. Ich trink einen auf dich.

Guter Mann !
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 24 Juni 2019, 19:51:27
Habe doch noch eine Frage. Ist zwar evt. hier nicht ganz richtig untergebracht, gehört aber hier zum Thema. Ich bekomme ja bei dem Aufruf der html Seiten per httmod die Daten auf englisch. Liegt wohl daran, dass das so im httpheader so eingetragen wurde. Im Browser werden mir Seiten jedoch in deutsch dargestellt. Da ich in manchen Bereichen ein echter Anfänger bin, wollte ich wissen, ob man sich das Ergebnis des HTTPMOD-Zugriffs irgendwie anzeigen lassen kann. Danke.
LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: mi.ke am 25 Juni 2019, 09:43:35
Hi Peter,

wenn es in den Internals unter buf nicht angezeigt wird, kannst Du das mit showBody sichtbar machen.
attr Druckereigenschaften showBody 1

cheers
mi.ke
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 25 Juni 2019, 11:42:39
Hallo, ich habe jetzt danke Mi.ke die Werte soweit gefunden, wo ich denke, dass sie interessant sein könnten. Werde also bald meine gesamte Steuerung hier zur Verfügung stellen. Das die Werte in englisch kommen liegt eindeutig am httpheader (Content-Language: en-gb). Ich habe im Forum noch andere Threads gefunden, die bei der Abfrage des Druckerstatus darüber gestolpert sind. Dort wird geraten, den httpheader anzupassen. Leider bin ich zu doof, die entsprechenden attribute zu finden, die dazu führen (auch über commandref nicht). Grundsätzlich kann man sich über die Art, die jetzt hier festgestellt wurde helfen, aber schöner wäre m.E. eine Version, die dem entspricht was ich bei direktem Zugriff bekomme. Ich lass das mal hier stehen, das weiß hier sicher auch jemand. Ansonsten kann ich das auch zu einem Thread im HTTPMOD für Anfängerfragen machen.

LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 26 Juni 2019, 13:50:08
Hier jetzt wie versprochen meine Codeschnipsel für Druckerabfragen mindestens MFC-9xxx. Ich denke es geht für alle Drucker die über den HTTPMOD gleichartig angesprochen werden können:

FHEM:
defmod Druckerstatistik HTTPMOD http://xxx.xxx.xxx.xx/general/information.html 86400
attr Druckerstatistik userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex requestHeader1
attr Druckerstatistik group Drucker
attr Druckerstatistik reading01Name Pages_Total
attr Druckerstatistik reading01Regex Page ;Counter*?<dd>(.*?)<
attr Druckerstatistik reading02Name Pages_black
attr Druckerstatistik reading02Regex Page ;Counter<.*?B&amp;;W.*?<dd>(.*?)<
attr Druckerstatistik reading03Name Pages_Color
attr Druckerstatistik reading03Regex Page ;Counter<.*?Color.*?<dd>(.*?)<
attr Druckerstatistik reading04Name Fax
attr Druckerstatistik reading04Regex Fax.*?<dd>(.*?)<
attr Druckerstatistik reading05Name Kopie
attr Druckerstatistik reading05Regex Copy.*?<dd>(.*?)<
attr Druckerstatistik reading06Name ADF_Image_Scans
attr Druckerstatistik reading06Regex ADF.*?<dd>(.*?)<
attr Druckerstatistik reading07Name Flatbed_Image_Scans
attr Druckerstatistik reading07Regex Flatbed.*?<dd>(.*?)<
attr Druckerstatistik requestHeader1 User-Agent: Mozilla/5.0 (Windows NT 10.0) Gecko/20100101 Firefox/43.0
attr Druckerstatistik room 91_Geraete
attr Druckerstatistik stateFormat Total: Pages_Total Schwarz: Pages_black Color: Pages_Color


defmod Druckerpatronenstatus HTTPMOD http://xxx.xxx.xxx.xx/general/information.html 21600
attr Druckerpatronenstatus userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex
attr Druckerpatronenstatus group Drucker
attr Druckerpatronenstatus httpVersion 1.1
attr Druckerpatronenstatus reading01Name Cyan
attr Druckerpatronenstatus reading01Regex \(C\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr Druckerpatronenstatus reading02Name Magenta
attr Druckerpatronenstatus reading02Regex \(M\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr Druckerpatronenstatus reading03Name Gelb
attr Druckerpatronenstatus reading03Regex \(Y\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr Druckerpatronenstatus reading04Name Schwarz
attr Druckerpatronenstatus reading04Regex \(BK\)\*\*.{9}\((\d{1,3}\.\d{1,2})%\)
attr Druckerpatronenstatus room 91_Geraete
attr Druckerpatronenstatus stateFormat C: Cyan% M: Magenta% G: Gelb% S: Schwarz%


defmod Druckereigenschaften HTTPMOD http://xxx.xxx.xxx.xx/general/information.html 86400
attr Druckereigenschaften userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex
attr Druckereigenschaften group Drucker
attr Druckereigenschaften httpVersion 1.1
attr Druckereigenschaften reading01Name Typ
attr Druckereigenschaften reading01Regex Model.*?<dd>(.*?)<
attr Druckereigenschaften reading02Name Serienr
attr Druckereigenschaften reading02Regex Serial.*?<dd>(.*?)<
attr Druckereigenschaften reading03Name Sub1
attr Druckereigenschaften reading03Regex Sub1.*?<dd>(.*?)<
attr Druckereigenschaften reading04Name MB
attr Druckereigenschaften reading04Regex Memory.*?<dd>(.*?)<
attr Druckereigenschaften room 91_Geraete
attr Druckereigenschaften stateFormat Modell: Typ SN: Serienr Firmware: Sub1 Speicher: MB mb


Diese Daten können natürlich auch direkt im FTUI eingegeben werden ;-)

FTUI:

<!DOCTYPE html>
<html>
<body>
   <div class="page" id="content_system_printer_status">
<div class="phone-back-btn">
<div data-type="link" data-url="#content_system.html" data-load="#content_system" data-color="black" data-icon="mi-chevron_left" class="large"></div>
</div>

<div class="hbox">
<div class="vbox phone-width">
<div class="card lift">

<header>Eigenschaften</header>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckereigenschaften","var_data":"Modell","var_content":"Typ"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckereigenschaften","var_data":"Seriennummer","var_content":"Serienr"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckereigenschaften","var_data":"Firmware","var_content":"Sub1"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckereigenschaften","var_data":"Speicher","var_content":"MB"}'></div>
</section>
<header>Toner Status</header>
<section>
<div class="hdm-flexbox-container">
<div class="hdm-flexbox-item-50">
<div class="small readonly"
data-type="knob"
data-device="Druckerpatronenstatus"
data-get="Schwarz"
data-part="1"
data-anglearc="360"
data-angleoffset="0"
data-min="0"
data-max="100"
data-nomcolor="#000000"
data-fgcolor="#000000"
data-bgcolor="#00A1DE"
data-unit="%"></div>
<div data-type="label" class="big">Schwarz (CF400A)</div>
</div>
<div class="hdm-flexbox-item-50">
<div class="small readonly"
data-type="knob"
data-device="Druckerpatronenstatus"
data-get="Cyan"
data-part="1"
data-anglearc="360"
data-angleoffset="0"
data-min="0"
data-max="100"
data-nomcolor="#000000"
data-fgcolor="#00FFFF"
data-bgcolor="#00A1DE"
data-unit="%"></div>
<div data-type="label" class="big">Zyan (CF401A)</div>
</div>
</div>
</section>
<section>
<div class="hdm-flexbox-container">
<div class="hdm-flexbox-item-50">
<div class="small readonly"
data-type="knob"
data-device="Druckerpatronenstatus"
data-get="Gelb"
data-part="1"
data-anglearc="360"
data-angleoffset="0"
data-min="0"
data-max="100"
data-nomcolor="#000000"
data-fgcolor="#FFFF00"
data-bgcolor="#00A1DE"
data-unit="%"></div>
<div data-type="label" class="big">Gelb (CF402A)</div>
</div>
<div class="hdm-flexbox-item-50">
<div class="small readonly"
data-type="knob"
data-device="Druckerpatronenstatus"
data-get="Magenta"
data-part="1"
data-anglearc="360"
data-angleoffset="0"
data-min="0"
data-max="100"
data-nomcolor="#000000"
data-fgcolor="#FF00FF"
data-bgcolor="#00A1DE"
data-unit="%"></div>
<div data-type="label" class="big">Magenta (CF403A)</div>
</div>
</div>
</section>
</div>
</div>
<div class="vbox phone-width">
<div class="card lift">
<header>Drucker Statistik</header>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckerstatistik","var_data":"Seiten Gesamt","var_content":"Pages_Total"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckerstatistik","var_data":"Seiten Schwarz/Weiß","var_content":"Pages_black"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckerstatistik","var_data":"Seiten Farbe","var_content":"Pages_Color"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckerstatistik","var_data":"Fax","var_content":"Fax"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckerstatistik","var_data":"Kopien","var_content":"Kopie"}'></div>
</section>
<header>Scanner Statistik</header>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckerstatistik","var_data":"Einzug-Scans","var_content":"ADF_Image_Scans"}'></div>
</section>
<section>
<div data-template="template_system_printer.html" data-parameter='{"var_device":"Druckerstatistik","var_data":"Flachbett-Scans","var_content":"Flatbed_Image_Scans"}'></div>
</section>
</div>
</div>
</div>
</div>
</body>
</html>


Ich habe mich ziemlich genau an die Vorgabe von Andreas (somansch) gehalten, weil mir sein Layout/Design so gut gefiel, dass ich es (fast ganz) abgekupfert habe (Ausnahme Schwarz auf Schwarz - pah). Nein, ich habe gemischt mit paul79 und holle. Daher hier auch vielen Dank an Alle, die mir geholfen haben (natürlich auch Mi.ke)

LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: elektrikpe2 am 29 Juni 2019, 10:38:49
Hallo, ich noch mal. Habe dank dkreutz hier die Änderung des Attributes für eine deutsche Ausgabe der brother Daten, falls es jemand interessiert und auch nicht wusste wie es geht: attr ... requestHeader1 Accept-Language: de-de,de,en - und schon entsprechen die Daten die der HTTPMOD zieht auch den Daten, die ich bei direktem Zugriff auf einen Drucker der auf "deutsch" steht.

LG Peter
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: wendeling am 30 Mai 2020, 10:37:51
Hallo,
wer kann mir bezüglich eines Epson Druckers helfen ?

Gruß
Wendelin
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: thomas1977mg am 18 Juni 2020, 16:39:27
CANON INKJET

Hallo zusammen,

ich würde gerne meine CANON PIXMA Drucker auslesen.
Mit den HTTP-MOD Befehlen komme ich da so leider nicht weiter.

Hat hier bereits jemand eine Lösung für?

Vielen Dank,
Tom
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: rischbiter123 am 18 Juni 2020, 18:46:02
Moin,

beim Pixma funktioniert es auch, wie in Antwort 18, mit ink. Die Webseite gibt die Füllstände leider nicht her.
Wie das dann allerdings in Fhem umgesetzt werden muss, kann ich nicht sagen, da ich es selber nicht nutze.

LG

Andreas
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Hauslaus am 22 Oktober 2020, 22:22:10
Hallo!

Meinem Canon entlocke ich durch die Antwort 18 die hilfreichen Daten:

Canon MX920 series

Black:                              40%
Photoblack:                      60%
Yellow:                             20%
Magenta:                          80%
Cyan:                                 0%

Um diese Angaben in mein FHEM zu bekommen ist HTTPMOD leider nicht hilfreich.

Die Antwort 3 (https://forum.fhem.de/index.php/topic,90601.msg831360.html#msg831360 (https://forum.fhem.de/index.php/topic,90601.msg831360.html#msg831360)) hilft mir leider nicht weiter. Ich denke mir, dass ich den ersten Teil aus Antwort 3 auf jeden Fall nicht benötige, da ich ja die Werte aus dem INK-Programm bereits auf meinem Terminal stehen habe. Wie  bekomme ich nun aber diese Werte in mein FHEM?

Gibt es vielleicht doch schon eine Lösung für Canon Drucker oder gibt es vielleicht einen Wink mit dem Zaunpfahl?

Gruß
Hauslaus
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Prof. Dr. Peter Henning am 23 Oktober 2020, 07:12:15
ZitatWink mit dem Zaunpfahl
Klar doch:

Ordentliche Fehlerbeschreibungen liefern - statt weinerliches "hilft mir nicht weiter".
Informationen darüber, was man eigentlich benutzt - keiner von uns weiß, was mit "INK-Programm" und "Terminal" gemeint ist. Oder hat Zeit, sich "Antwort 18" herauszusuchen.

LG

pah
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: amenomade am 23 Oktober 2020, 08:25:34
Zitat von: Hauslaus am 22 Oktober 2020, 22:22:10
Hallo!

Meinem Canon entlocke ich durch die Antwort 18 die hilfreichen Daten:

Canon MX920 series

Black:                              40%
Photoblack:                      60%
Yellow:                             20%
Magenta:                          80%
Cyan:                                 0%

Um diese Angaben in mein FHEM zu bekommen ist HTTPMOD leider nicht hilfreich.

Die Antwort 3 (https://forum.fhem.de/index.php/topic,90601.msg831360.html#msg831360 (https://forum.fhem.de/index.php/topic,90601.msg831360.html#msg831360)) hilft mir leider nicht weiter. Ich denke mir, dass ich den ersten Teil aus Antwort 3 auf jeden Fall nicht benötige, da ich ja die Werte aus dem INK-Programm bereits auf meinem Terminal stehen habe. Wie  bekomme ich nun aber diese Werte in mein FHEM?

Gibt es vielleicht doch schon eine Lösung für Canon Drucker oder gibt es vielleicht einen Wink mit dem Zaunpfahl?

Gruß
Hauslaus
Es gibt mehrere Möglichkeiten, Werte aus einem Terminalbefehl an Fhem zu übergeben.
Z.B.:
- wenn Du schon ein HTTPMOD hast, kannst Du einfach per userReadings (siehe CommandRef) den system Befehl aufrufen
- CustomReadings Modul (siehe CommandRef)
- die sauberste (non blocking) Methode ist aus einem Skript auf system Ebene - Scheduling per cron - , die Werte mit nc und setreading zu setzen (entweder über den Telnet Port oder über HTTP). Viele Beispiele im Forum.
...

Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Hauslaus am 25 Oktober 2020, 20:56:31
Hallo amenomade,

danke für die Antwort.

Ich habe bereits was mit HTTPMOD am laufen. Ich habe mir das Modul nochmals im CommandRef angesehen. Entweder verstehe ich es falsch oder ....

Anfangsbeschreibung von HTTPMOD (Googleübersetzung):
ZitatDieses Modul bietet eine allgemeine Möglichkeit, Informationen von Geräten mit einer HTTP-Schnittstelle abzurufen und in Messwerten zu speichern oder Informationen an solche Geräte zu senden. Es fragt eine bestimmte URL mit Headern und Daten ab, die durch Attribute definiert sind.
Aus der HTTP-Antwort werden in Attributen benannte Messwerte mithilfe von Regexes, JSON oder XPath extrahiert, die ebenfalls durch Attribute definiert sind.

ZU Xpath steht hier (Googleübersetzung):
ZitatAnalysieren von http / XML mit xpath

Eine weitere Alternative zum Regex-Parsing ist die Verwendung von XPath zum Extrahieren von Werten aus HTTP-Antworten.
Das folgende Beispiel zeigt, wie XML-Daten mit XPath-Strict oder HTML-Daten mit XPath analysiert werden können.
Beide funktionieren ähnlich und das Beispiel verwendet XML-Daten, die mit der Option XPath-Strict analysiert wurden: Wenn die XML-Daten in der HTTP-Antwort folgendermaßen aussehen:
<root xmlns: foo = "http://www.foo.org/" xmlns: bar = "http://www.bar.org">
.....

Also verlangt HTTPMOD doch immer HTML-Daten?

Die Ausgabe dieses auf meinen RaspberryPi installierten INK-Tool läuft ausserhalb des FHEM-System. Ist das mein Problem?

In Antwort 18 schreibt deudi:
ZitatEin 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.

Und dieses Tool installiert ich mit:
apt-get install ink

Und mit der Eingabe erhalte ich:
root@raspi-Heim:/home/pi# ink -b bjnp://192.168.178.89
ink 0.5.2 (c) 2015 Markus Heinz

Canon MX920 series

Black:                                  40%
Photoblack:                          60%
Yellow:                                 20%
Magenta:                              80%
Cyan:                                    0%

Die Eingabe HTTPMOD erwartet doch eine Eingabe nach dem Muster:
http://xxx.xxx.xxx.xx/general/information.

Und nicht:
ink -b bjnp://192.168.178.89

Kann ich mit HTTPMOD Daten von einem Nicht-FHEM-Tool abrufen bzw. auslesen?

Gruß
Hauslaus
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Hauslaus am 25 Oktober 2020, 20:59:07
#pah  Prof. Dr. Peter Henning

Als "New Member" sind wir angehalten uns einzulesen. Das tat ich. Ich habe auf der Suche nach einer Lösung u.a. diesen Beitrag im Gesamten gelesen. Da ich einen Pixma-Drucker besitze sehe ich in der Antwort 18 auch eine Teillösung für mich. Und wenn ein "Sr. Member" ein INK-Tool aufzeigt bin ich als ein "New Member" davon ausgegangen, dass es sich hierbei um ein allgemein bekanntes Tool handelt. Insbesondere wenn nur 18 Minuten nach diesem INK-Toolantwort ihre Antwort als "Hero Member" erfolgt. Ich hätte dieses Tool sonst gar nicht installiert.

Im übrigen habe ich keine Fehlermeldung und somit kann ich keine ordentliche Fehlermeldung abgeben. Dieses ING-Tool liefert eine perfekte Textausgabe die leider, wie von mir auch beschrieben, keine HTML Ausgabe liefert.

In meiner Frage bat ich nicht um eine Programmierung und ich habe nicht um eine weitere tiefere Unterstützung gebeten. Es war einfach nur eine Frage.

Auch ohne Programmierkenntnisse und mit meinem Grundschulenglisch läuft mein FHEM seit Jahren super und auch stabil. Ich habe hierfür viel aus diesem Forum mitgenommen und gelernt. Ich selber konnte leider bisher keinen Beitrag leisten da ich kein Profi bin und auch bestimmt kein Profi mehr werde. Das soll doch für FHEM auch keine Voraussetzung sein?

Mit dem Wunsch nach einem Zaunpfahl will ich keinen reizen und sollte aber bitte in keiner Beleidigung enden.

Gruß
Hauslaus
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: amenomade am 25 Oktober 2020, 21:44:10
Zitat von: Hauslaus am 25 Oktober 2020, 20:56:31


Kann ich mit HTTPMOD Daten von einem Nicht-FHEM-Tool abrufen bzw. auslesen?

Gruß
Hauslaus
Ja, mit einem userReading. Siehe Abschnitt userReadings in https://fhem.de/commandref_DE.html#readingFnAttributes, und https://fhem.de/commandref_DE.html#command für system Befehle.

Wenn Du schon ein HTTPMOD hast, der einige Daten aus der Webseite des Druckers holt, kannst Du darauf triggern, und im userReading deinen system Befehl aufrufen.

Aber wie gesagt, das sauberste ist, auf System Ebene, einen script laufen zu lassen (z.B. per cron), der die Daten an Fhem übergibt
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Hauslaus am 25 Oktober 2020, 21:53:28
Hallo

auf der Suche nach der Quelle des INK-Tools bin ich auf die Seiten gestossen.

Falls jemand damit was anfangen kann:
https://sourceforge.net/projects/ink/
https://github.com/dmonty2/ink2snmp
Bei GitHub steht (Googlleübersetzung):
Zitatink2snmp

Lesen Sie die Tintenfüllstände und konvertieren Sie sie in SNMP.

Installieren Sie libinklevel und Tinte von Markus Heinz.
Der Tintenbefehl unterstützt USB-, Parallel- und Netzwerkdrucker.
http://ink.sourceforge.net/
Testen und richten Sie den Befehl 'Tinte' für Ihren Drucker ein.
Fügen Sie Ihren Arbeitstintenbefehl oben im ink2snmp-Skript hinzu.
Fügen Sie Ihrer /etc/snmp/snmpd.conf Folgendes hinzu
pass .1.3.6.1.2.1.43 / bin / bash / usr / local / bin / ink2snmp

Das konvertieren in SNMP habe ich doch hier irgendwo gelesen ist doch das Richtige.

Ich probiere es jedenfalls gleich.

Gruß
Hauslaus
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: Hauslaus am 25 Oktober 2020, 22:00:54
Hallo amenomade,

Danke für die Antwort. Ich werde mir das mit einem Skript ansehen. Sauber immer klingt gut.

Unsere Beiträge hatten sich gerade überschnitten. Ich werde mir das mit dem "ink2snmp" auf GitHub ansehen und versuchen es zu verstehen.

Danke
Hauslaus
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: amenomade am 26 Oktober 2020, 21:16:15
Ja, klingt gut. Wenn snmp aber nicht mit HTTPMOD sondern mit z.B. SYSSTAT
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: caldir65 am 26 November 2020, 08:39:04
Moin,

und, wurde der Aufruf von ink aus fhem jetzt erfolgreich gelöst?

Ich frage, da ich es ähnlich habe mit Turboprint, da kann ich es wie folgt auf der Konsole erfragen:
pi@raspi-fhem:~ $ tpconfig --ink
Black=400
Cyan=70
Yellow=80
Magenta=970
PhotoBlack=150


Gut, hier müssten die Ausgaben noch entsprechend "umgerechnet" werden, die Werte sind durch 10 zu teilen, dann entspricht es den %-Angaben der entsprechenden Anzeige von Turboprint...

Bisher habe ich leider keine Lösung gefunden im Netz, die ich mir entsprechend anpassen konnte ...

Gruß, Christoph

PS: ich benutze auch einen Epson (XP-7100), jedoch greift die httpmod-Variante hier so nicht, da in der Status-Übersicht sowohl Black als auch PhotoBlack das gleiche Kürzel bk haben ...
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: dirk.k am 26 November 2020, 09:17:16
Hallo zusammen,
ich frage meinen Brother mit SYSSTAT und SNMP ab.
Funktioniert sehr gut. Hier mal der Code als Beispiel:

defmod PrinterStatus SYSSTAT 600 600 192.168.0.223
attr PrinterStatus disable 1
attr PrinterStatus event-on-change-reading 1
attr PrinterStatus group Printer
attr PrinterStatus mibs .1.3.6.1.2.1.43.10.2.1.4.1.1:GesamtSeiten,\
.1.3.6.1.2.1.43.8.2.1.14.1.1:Hersteller,\
.1.3.6.1.2.1.43.5.1.1.17.1:Seriennummer,\
.1.3.6.1.2.1.43.11.1.1.9.1.6:Bandeinheit,\
.1.3.6.1.2.1.43.11.1.1.9.1.7:Trommeleinheit,\
.1.3.6.1.2.1.43.11.1.1.6.1.1:TonerSchwarzTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.2:TonerCyanTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.3:TonerMagentaTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.4:TonerYellowTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.5:BildEinheitTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.6:TransferBeltTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.7:FuserTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.8:Tray1RollerTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.9:Tray1FrictionPadTXT,\
.1.3.6.1.2.1.43.11.1.1.6.1.10:WasteTonerXTT,\
.1.3.6.1.2.1.43.11.1.1.8.1.1:TonerSchwarzSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.2:TonerCyanSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.3:TonerMagentaSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.4:TonerYellowSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.5:BildEinheitSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.6:TransferBeltSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.7:FuserSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.8:Tray1RollerSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.9:Tray1FrictionPadSOLL,\
.1.3.6.1.2.1.43.11.1.1.8.1.10:WasteTonerSOLL,\
.1.3.6.1.2.1.43.11.1.1.9.1.1:TonerSchwarzREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.2:TonerCyanREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.3:TonerMagentaREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.4:TonerYellowREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.5:BildEinheitREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.6:TransferBeltREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.7:FuserREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.8:Tray1RollerREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.9:Tray1FrictionPadREST,\
.1.3.6.1.2.1.43.11.1.1.9.1.10:WasteTonerREST,\

attr PrinterStatus room 1.9_Technik
attr PrinterStatus snmp 1
attr PrinterStatus snmpCommunity public
attr PrinterStatus snmpVersion 2
attr PrinterStatus userReadings ur_BildEinheitREST_Prozent:.* {100 * BildEinheitSOLL/BildEinheitREST}\
\

attr PrinterStatus verbose 0
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: caldir65 am 06 Mai 2021, 15:25:37
Hallo,

inzwischen habe ich den Drucker soweit zur Mitarbeit bewegen können, daß zumindest ein Teil der Tinten angezeigt wird in fhem. Allerdings mußte ich noch etwas Berechnung hinein bringen - nach den gelieferten Werten wurde mir die Tinte um Faktor 2 zu wenig angezeigt.
Jetzt habe ich nur noch das Problem, daß mir keine Werte für PhotoBlack geliefert werden in dieser Definition - innerhalb des Quelltextes des Druckers wird sogar die gleiche Bezeichnung verwendet...
Hat jemand eine Idee, wie ich jetzt auch die letzte Patrone mit in meine Anzeige bekommen kann?

So habe ich den Drucker konfiguriert:
   BUSY       0
   DEF        https://192.168.1.121/PRESENTATION/ADVANCED/INFO_PRTINFO/TOP 3600
   FUUID      5fb97e26-f33f-378b-f758-d4f66727dd5b366b
   FVERSION   98_HTTPMOD.pm:0.241850/2021-04-08
   Interval   3600
   MainURL    https://192.168.1.121/PRESENTATION/ADVANCED/INFO_PRTINFO/TOP
   ModuleVersion 4.1.08 - 1.4.2021
   NAME       Drucker_Epson
   NOTIFYDEV  global
   NR         1548
   NTFY_ORDER 50-Drucker_Epson
   STATE      C: 34% M: 27% Y: 33% B: Black%
   TYPE       HTTPMOD
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://192.168.1.121:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://192.168.1.121/PRESENTATION/ADVANCED/INFO_PRTINFO/TOP
     header     
     host       192.168.1.121
     httpheader HTTP/1.1 200 OK
CACHE-CONTROL: no-cache
Pragma: no-cache
CONTENT-TYPE: text/html
CONTENT-LENGTH: 6163
SERVER: EPSON_Linux UPnP/1.0 Epson UPnP SDK/1.0
X-FRAME-OPTIONS: SAMEORIGIN
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /PRESENTATION/ADVANCED/INFO_PRTINFO/TOP
     protocol   https
     redirects  0
     timeout    2
     url        https://192.168.1.121/PRESENTATION/ADVANCED/INFO_PRTINFO/TOP
     sslargs:
   QUEUE:
   READINGS:
     2021-05-06 14:59:49   Cyan            34
     2021-05-06 14:59:49   Magenta         27
     2021-05-06 14:59:49   Yellow          33
     2021-05-06 13:03:35   attrTemplateVersion 20201129
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://192.168.1.121/PRESENTATION/ADVANCED/INFO_PRTINFO/TOP
   defptr:
     readingBase:
       Cyan       reading
       Magenta    reading
       Yellow     reading
     readingNum:
       Cyan       02
       Magenta    03
       Yellow     01
     readingOutdated:
     requestReadings:
       update:
         Cyan       reading 02
         Magenta    reading 03
         Yellow     reading 01
Attributes:
   DbLogExclude .*
   icon       it_printer
   model      epson_printer_cartridge_status
   reading01Name Yellow
   reading01Regex Ink_Y.*?='([\d]+)'
   reading02Name Cyan
   reading02Regex Ink_C.*?='([\d]+)'
   reading03Name Magenta
   reading03Regex Ink_M.*?='([\d]+)'
   reading04Name Black
   reading04Regex Ink_K.*?='([\d]+)'
   reading05Name PhotoBlack
   room       Arbeitszimmer
   stateFormat C: Cyan% M: Magenta% Y: Yellow% B: Black%
   userReadings Black33B { my $black1 = ReadingsVal($name,"Black",0)*2; return $black1;},Yellow33Y { my $yellow1 = ReadingsVal($name,"Yellow",0)*2; return $yellow1;},Cyan33C { my $cyan1 = ReadingsVal($name,"Cyan",0)*2; return $cyan1;},Magenta33M { my $magenta1 = ReadingsVal($name,"Magenta",0)*2; return $magenta1;},PhotoBlack33PB { my $pb1 = ReadingsVal($name,"PhotoBlack",0)*2; return $pb1;}


und der Quellcode der Seite, die ich abfrage:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="Author" content="SEIKO EPSON"><meta name="format-detection" content="telephone=no"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>XP-7100 Series</title><link rel='stylesheet' type='text/css' href='../COMMON/STYLE.CSS'><script type='text/javascript' src='SCRIPT.JS'></script></head><body class="contents"><div class="wrap"><div class="header-main">Status&nbsp;&gt;&nbsp;Produktstatus</div><div class="section"><fieldset class="group no-legend"><form target="_top" action="/PRESENTATION/ADVANCED/COMMON/TOP" method="post" id="input_form" name="input_form"><ul class="values"><li class="value clearfix"><select class="select" id="SEL_LANGA" name="SEL_LANGA" onchange="return document.input_form.submit();"><option value="1">English</option><option value="2">Français</option><option value="4" selected>Deutsch</option><option value="3">Italiano</option><option value="5">Español</option><option value="6">Português</option><option value="7">Nederlands</option><option value="12">Norsk</option><option value="13">Svenska</option><option value="14">Suomi</option><option value="15">polski</option><option value="16">Čeština</option><option value="17">Magyar</option><option value="18">Dansk</option><option value="20">Ελληνικά</option><option value="21">Slovensky</option><option value="22">Română</option><option value="10">繁體中文</option></select></li></ul></form></fieldset><fieldset class="group no-legend"><fieldset class="group"><legend>Druckerstatus</legend><ul class="values"><li class="value clearfix"><div class="preserve-white-space">Verfügbar</div></li></ul><ul class="values"><li class="value clearfix"><div class="preserve-white-space"></div></li></ul></fieldset><div id="ELSE_STATUS"><fieldset class="group"><legend>Anderer Status</legend><ul class="values"><li class="value clearfix"><div class="preserve-white-space"><noscript>Aktivieren Sie die JavaScript-Einstellung des Browsers.</noscript></div></li></ul></fieldset></div><script type="text/javascript"><!--
HideElseStatus();//-->
</script></fieldset><div class="information-last clearfix " ><ul class="inksection"><li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_K.PNG' height='34' style=''>
</div>
<div class='clrname'>BK</div>
</li><!--
--><li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_C.PNG' height='34' style=''>
</div>
<div class='clrname'>C</div>
</li><!--
--><li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_Y.PNG' height='33' style=''>
</div>
<div class='clrname'>Y</div>
</li><!--
--><li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_M.PNG' height='27' style=''>
</div>
<div class='clrname'>M</div>
</li><!--
--><li class='tank'>
<div class='tank'>
<img class='color' src='../../IMAGE/Ink_K.PNG' height='42' style=''>
</div>
<div class='clrname'>PB</div>
</li>
</ul></div><fieldset class="group no-legend"><fieldset class="group"><legend>Kassette 1</legend><dl class="values"><dt class="key"><span class="key">Papiergröße&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">10 x 15 cm (4 x 6 Zoll)</div></dd><dt class="key"><span class="key">Papiertyp&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">Epson Premium Glossy</div></dd></dl></fieldset><fieldset class="group"><legend>Kassette 2</legend><dl class="values"><dt class="key"><span class="key">Papiergröße&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">A4 210 x 297 mm</div></dd><dt class="key"><span class="key">Papiertyp&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">Normalpapier</div></dd></dl></fieldset></fieldset><fieldset class="group no-legend"><dl class="values"><dt class="key"><span class="key">Epson Connect-Status&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">Nicht registriert</div></dd><dt class="key"><span class="key">Epson Connect-eMail-Adresse&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space"></div></dd><dt class="key"><span class="key">Google Cloud Print-Status&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">Nicht registriert</div></dd></dl></fieldset><fieldset class="group no-legend"><dl class="values"><dt class="key"><span class="key">Firmware&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">01.65.YL17J5</div></dd><dt class="key"><span class="key">Stammzertifikat-Version&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">02.00</div></dd><dt class="key"><span class="key">Seriennummer&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">X5D7005096</div></dd><dt class="key"><span class="key">Netzwerk-MAC-Adresse&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space">38:9D:92:AD:D6:FB</div></dd></dl></fieldset><fieldset class="group no-legend"><dl class="values"><dt class="key"><span class="key">Administratorname/Kontaktinformationen&nbsp;:</span></dt><dd class="value clearfix"><div class="preserve-white-space"></div></dd></dl></fieldset><script type="text/javascript"><!--
initialize();//-->
</script></div><div class="footer"><form action="" method='get' id='refresh_form'><div><input type='hidden' value='' name='tm'></div></form><script type="text/javascript"><!--
document.getElementById('refresh_form').tm.value=new Date().getTime();//-->
</script><table width="100%"><tr><td class="footer_button" align="left"><ul class="buttons"><li class="button"><button type="button" class="button" onclick="document.getElementById('refresh_form').submit(); return false;">Aktualisieren</button></li></ul></td><td class="footer_license" align="right"><a class="license" target="_blank" href="/PRESENTATION/ADVANCED/LICENSE/TOP">Softwarelizenzen</a></td></tr></table></div></div></body></html>


Vielen Dank für Unterstützung.

Gruß,
Christoph

Edit: Anpassung an Änderungen im Device
Titel: Antw:Druckerpatronen-Zustand
Beitrag von: caldir65 am 23 Oktober 2021, 19:43:15
Moinsen,

ich habe jetzt einen ganz anderen Weg zur Abfrage genutzt. Bei meinen Recherchen zum Thema bin ich in einem c't-Artikel aus 2015 (https://www.heise.de/ct/ausgabe/2015-10-Internet-Printing-Protocol-Fehlersuche-Statusabfrage-drucken-ohne-Treiber-2600094.html) fündig geworden, der sich näher mit Cups und entsprechenden CLI-Möglichkeiten auseinander setzt. Diese Möglichkeit sollte mit vielen Druckern, die Toner- oder Tintenstand offerieren und mit Cups angesprochen werden können, funktionieren.
Hierfür benötigt man noch eine Datei aus dem c't-Artikel (marker.ipp), die als Zusatzangebot herunterladbar ist.

Mit dem ipptool bekomme ich auf dieseweise folgende Ausgabe:
desktop:~/tmp$ ipptool -tv ipp://192.168.1.121/ marker.ipp
"marker.ipp":
    Get-Printer-Attributes:
        attributes-charset (charset) = utf-8
        attributes-natural-language (naturalLanguage) = en
        printer-uri (uri) = ipp://192.168.1.121:631/
        requested-attributes (1setOf keyword) = marker-names,marker-levels
    marker                                                               [PASS]
        RECEIVED: 221 bytes in response
        status-code = successful-ok (successful-ok)
        attributes-charset (charset) = utf-8
        attributes-natural-language (naturalLanguage) = en
        marker-names (1setOf nameWithoutLanguage) = Photo Black ink,Cyan ink,Magenta ink,Yellow ink,Black ink
        marker-levels (1setOf integer) = 26,14,7,16,89

Die Auswertung habe ich mit der Hilfe von @betateilchen in ein Textfile umgeleitet. Zudem ein Dummy erstellt, welchen ich über eine Funktion mit Readings befülle.
Um die Daten unabhängig von fhem zu erstellen, wird ein ipptool-Aufruf mittels Script durchgeführt, zudem werden die Daten anschließend direkt vom Script in den Dummy eingetragen.

Details hierzu findet ihr auch in diesem Thread (https://forum.fhem.de/index.php/topic,123568.msg1181297.html#msg1181297).

Vielleicht hilft es ja jemanden
Titel: Aw: Druckerpatronen-Zustand
Beitrag von: Dulaman am 08 April 2023, 12:06:22
Hallo zusammen,
ich schließe mich dem Thema hier einmal an. Da ich derzeit auch an der Integration des Tonerstandes für meinen Lexmark MC3224 Druckers bin.

Ich habe es mit der RegEx und HTTPMOD Methode versucht, komme allerdings nicht weiter.
HTTPMOD funktioniert in FHEM, da habe ich die Preise von Tankstellen integriert.

Meine Stsatusseite des Druckers sieht wie folgt aus:
http://192.168.7.138/#/Status

Und die Anzeige des Toners wird so in der HTML angezeigt:
<li id="TonerSupplies" data-node="TonerSupplies" class="child-row">
<div class="supplyStatusContainer" data-init="initSupplyStatusContainer(this)">
<div class="contentRow" role="gridcell">
<div class="contentHeader" role="heading">
<span class="translated" data-textid="67527" tabindex="-1">
Schwarze Kassette
</span>
<br>
</div>
<div class="contentBody" role="presentation">
<div class="progress" role="presentation" tabindex="" data-deviceid="8-1">
<div class="progress-inner BlackGauge" role="img" aria-labelledby="0%">
<div class="progress-slider" style="width: 0px; overflow: hidden;">
<span class="dataText">0</span>
</div>
</div> <div class="status_icon warning">&nbsp;</div></div>
</div>
</div>
<div class="contentRow" role="gridcell">
<div class="contentHeader" role="heading">
<span class="translated" data-textid="67526" tabindex="-1">
Cyan-Kassette
</span>
<br>
</div>
<div class="contentBody" role="presentation">
<div class="progress" role="presentation" tabindex="" data-deviceid="8-2">
<div class="progress-inner CyanGauge" role="img" aria-labelledby="0%">
<div class="progress-slider" style="width: 0px; overflow: hidden;">
<span class="dataText">0</span>
</div>
</div> <div class="status_icon warning">&nbsp;</div></div>
</div>
</div>
<div class="contentRow" role="gridcell">
<div class="contentHeader" role="heading">
<span class="translated" data-textid="67525" tabindex="-1">
Magenta Kassette
</span>
<br>
</div>
<div class="contentBody" role="presentation">
<div class="progress" role="presentation" tabindex="" data-deviceid="8-3">
<div class="progress-inner MagentaGauge" role="img" aria-labelledby="0%">
<div class="progress-slider" style="width: 0px; overflow: hidden;">
<span class="dataText">0</span>
</div>
</div> <div class="status_icon warning">&nbsp;</div></div>
</div>
</div>
<div class="contentRow" role="gridcell">
<div class="contentHeader" role="heading">
<span class="translated" data-textid="67524" tabindex="-1">
Gelbe Kassette
</span>
<br>
</div>
<div class="contentBody" role="presentation">
<div class="progress" role="presentation" tabindex="" data-deviceid="8-4">
<div class="progress-inner YellowGauge" role="img" aria-labelledby="0%">
<div class="progress-slider" style="width: 0px; overflow: hidden;">
<span class="dataText">0</span>
</div>
</div> <div class="status_icon warning">&nbsp;</div></div>
</div>
</div>
</div>
</li>

Meine Versuche mittels RegEx sehen so aus:
<span class="translated" data-textid="67527" tabindex="-1">Schwarze Kassette</span> <span class="dataText">([^0-9]+)

Selbst den "einfachen" Status des Druckers, bekomme ich nicht hin.
Status: Ruhemodus
RegEx: <span class="statusline statuswarning">([A-Za-z]+)


<ul id="StatusHeader" class="itemContainer" role="status">

<ul>


<li id="Navigation" data-node="Navigation" class="child-row">

</li>

<li id="StatusArea" data-node="StatusArea" class="child-row">

<div class="content statusarea" role="status">
<div class="status">
<span class="translated" data-textid="67964" tabindex="-1">
Status
</span>
: <span class="statusline statuswarning">Ruhemodus </span>
</div>
<div class="warnings" style="">
<span class="translated" data-textid="72888" tabindex="-1">
Nachrichten
</span>
: <span class="warningline statuswarning">Kapazität Tonerkassette Schwarz wenig </span> <span class="warningline-more">
<span class="translated" data-textid="72893" tabindex="-1">
(Mehr...)
</span>
</span>
</div>
</div>

</li>


</ul>

</ul>


Hier das Listing meines Devices:
Internals:
  BUSY      0
  CFGFN     
  DEF        http://192.168.7.138/#/Status 300
  FUUID      6431365b-f33f-3b18-e323-3a35533efa6b21dc
  Interval  300
  MainURL    http://192.168.7.138/#/Status
  ModuleVersion 4.1.15 - 17.12.2022
  NAME      Lexmark
  NOTIFYDEV  global
  NR        333931
  NTFY_ORDER 50-Lexmark
  STATE      ???
  TYPE      HTTPMOD
  eventCount 5
  value     
  CompiledRegexes:
  HttpUtils:
    NAME     
    addr      http://192.168.7.138:80
    auth      0
    buf       
    code      400
    compress  1
    conn     
    data     
    displayurl http://192.168.7.138/#/Status
    header   
    host      192.168.7.138
    httpheader HTTP/1.1 400 Bad Request
Date: Sat, 08 Apr 2023 10:01:49 GMT
Server: Lexmark_Web_Server
X-Frame-Options: SAMEORIGIN
Cache-Control: no-cache
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1
    httpversion 1.0
    hu_blocking 0
    hu_filecount 1
    hu_port    80
    hu_portSfx
    ignoreredirects 1
    loglevel  4
    path      /#/Status
    protocol  http
    redirects  0
    timeout    2
    url        http://192.168.7.138/#/Status
    sslargs:
  QUEUE:
  READINGS:
  REQUEST:
    context    reading
    data     
    header   
    ignoreredirects 0
    num        unknown
    retryCount 0
    type      update
    url        http://192.168.7.138/#/Status
  hmccu:
Attributes:
  reading01Name Status
  reading01Regex <span class="statusline statuswarning">([A-Za-z]+)
  reading02Name Warnings
  reading02Regex <span class="warningline statuswarning">([A-Za-z]+)
  room      1.1_Buero

Ich vermute noch als Fehler, dass das # in der Adresszeile den Rest des Links auskommentiert.
Hat jemand ebenfalls einen Lexmarkdrucker und kann die richtige URL nennen?

Vielen Dank.
Titel: Aw: Druckerpatronen-Zustand
Beitrag von: mähschaf am 09 April 2023, 16:46:26
Hallo Dulaman,

Ich bin da jetzt kein Experte, aber wenn es wirklich an dem Hash-Zeichen # liegt, versuch doch mal, dieses Zeichen zu codieren (https://de.wikipedia.org/wiki/URL-Encoding).

Vielleicht hilft das?

Viel Erfolg,
Martin

Titel: Aw: Druckerpatronen-Zustand
Beitrag von: Dulaman am 10 April 2023, 21:39:29
Hallo,

leider hat das mit dem Zeichen umcodieren nicht geholfen.
Die URL http://192.168.7.138/%23/Status ergibt ebenfalls nen HTTP 400 Fehler.

Danke, für den Tipp ... ich suche weiter.

Gruß Andreas
Titel: Aw: Druckerpatronen-Zustand
Beitrag von: mi.ke am 11 April 2023, 09:43:03
Zitat von: Dulaman am 08 April 2023, 12:06:22Ich habe es mit der RegEx und HTTPMOD Methode versucht, komme allerdings nicht weiter.
HTTPMOD funktioniert in FHEM, da habe ich die Preise von Tankstellen integriert.

Meine Stsatusseite des Druckers sieht wie folgt aus:
http://192.168.7.138/#/Status

im einfachsten Fall per HTTPMOD z.B. so:
Schwarze.*?dataText">(.*?)<
und wie Du es am einfachsten raus bekommst:
https://regex101.com/ (https://regex101.com/)
Titel: Aw: Druckerpatronen-Zustand
Beitrag von: satprofi am 19 November 2023, 13:34:46
Hallo @all.
Versuche den Patronenstatus eines Brother zu eruieren.
Das Model auslesen klappt schon mal

pc">(.*?)<

<link rel="stylesheet" type="text/css" href="../common/css/mobile_ews.css" />
<title>Brother MFC-J1010DW</title><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no" /></head><body><div id="headerFrame"><div id="menuButton" layout="pc" onclick="toggleMenu();"><img src="/common/images/menu_icon.gif" alt="Menu"></div><div id="modelName" layout="pc">MFC-J1010DW</div><div id="corporateLogo" layout="pc"><img src="/common/images/logo.gif" alt="Brother" /></div></div></div><div id="Menu" layout="pc"><div

Mit regex finde ich auch die Prozentzahl, aber wird von fhem nicht eingelesen.

\(M\)\*\*.{9}(\d\d)

Firmware-Version</dt><dd>1.12</dd></dl></div><div class="contentsGroup"><dl class="items_info_1line"><dt>Seitenz&auml;hler</dt><dd>11</dd><dt class="subhead"><span>Farbe</span></dt><dd>7</dd><dt class="subhead"><span>SCHWARZWEISS</span></dt><dd>4</dd></dl></div><div class="contentsGroup"><h3>Verbleibende&#32;Lebensdauer</h3><dl class="items"><dt>Tinte&nbsp;Cyan&#32;(C)**</dt><dd>99%</dd><dt>Tinte&nbsp;Magenta&#32;(M)**</dt><dd>99%</dd><dt>Tinte&nbsp;Gelb&#32;(Y)**</dt><dd>99%</dd><dt>Tinte&nbsp;Schwarz&#32;(BK)**</dt><dd>97%</dd></dl></div><div class="contentsGroup"><h3>Gesamtanzahl&#32;gedruckter&#32;Seiten</h3><dl class="items">
was mache ich da falsch?


auszug aus logfile

2023.11.19 13:39:24 5: Drucker: Read callback: body
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="en-gb" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb"><head><meta http-equiv="Content-Script-Type" content="text/javascript" /><meta http-equiv="content-style-type" content="text/css" /><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript" src="/common/js/ews.js"></script><link rel="stylesheet" type="text/css" href="../common/css/mobile_common.css" />
<link rel="stylesheet" type="text/css" href="../common/css/mobile_ews.css" />
<title>Brother MFC-J1010DW</title><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no" /></head><body><div id="headerFrame"><div id="menuButton" layout="pc" onclick="toggleMenu();"><img src="/common/images/menu_icon.gif" alt="Menu"></div><div id="modelName" layout="pc">MFC-J1010DW</div><div id="corporateLogo" layout="pc"><img src="/common/images/logo.gif" alt="Brother" /></div></div></div><div id="Menu" layout="pc"><div id="navigationContainer"><div id="navMenu"><div id="LayoutButton"><img id="PCButton" layout="pc" src="/common/images/chevron_left.gif" onclick="changeLayout('user_layout','mobile');"></img><img id="MobileButton" layout="pc" src="/common/images/pin.gif" onclick="changeLayout('user_layout','pc');"></img></div><hr><div id="LogInOutBox"><form method="post" action="/home/status.html"><div><input type="password" id="LogBox" name="B415" /><input type="hidden" name="loginurl" value="/general/information.html"/><input id="login" type="submit" value="Login" /></div></form></div><div class="links"><a href="https://update.brother.co.jp/device/redirect.aspx?redirecttype=6&country=w&lang=en&device=MFC-J1010DW&alias=aqfs" target="_blank">Trouble logging in?</a></div><hr><div id="menu_tree_root"><div class="menuLv1"><a href="#" onclick="expandMenu('home_sub');">Home</a><div id="home_sub" class="open"><div class="menuLv2"><a href="/home/status.html">Status</a></div><div class="menuLv2"><a href="/home/reflesh.html" class="subMenu">Auto&#32;Refresh&#32;Interval</a></div></div></div><hr></div></div></div></div><div id="Page" layout="pc"><div id="rightFrameContainer"><div id="rightFrame"><div id="mainContent"><div id="pageTitle"><h2>Please&#32;Login</h2></div><div id="pageContents"><div class="contentsGroup"><p class="noteMessage">To&#32;Access&#32;this&#32;page&#32;you&#32;are&#32;required&#32;to&#32;Login,&#32;please&#32;Login.</p></div></div></div></div></div></div></div><div id="footerFrame">Copyright(C) 2000-2021 Brother Industries, Ltd. All Rights Reserved.</div><script type="text/javascript" src="/common/js/mobilemenucontrl.js"></script><script>window.onpageshow = function(event) {if (event.persisted) { window.location.reload(); }};</script></body></html>
2023.11.19 13:39:24 4: Drucker: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2023.11.19 13:39:24 5: Drucker: GetCookies is looking for Cookies
2023.11.19 13:39:24 5: Drucker: ExtractSid called, context reading, num unknown
2023.11.19 13:39:24 4: Drucker: checking for redirects, code=200, ignore=0
2023.11.19 13:39:24 4: Drucker: no redirects to handle
2023.11.19 13:39:24 5: Drucker: Read callback sets LAST_REQUEST to update
2023.11.19 13:39:24 5: Drucker: CheckAuth decided no authentication required
2023.11.19 13:39:24 5: Drucker: Read starts parsing response to update with defined readings: 01,05
2023.11.19 13:39:24 5: Drucker: ExtractReading M with regex /(?^:/\(BK\)\*\*.{9}(\d\d)/)/...
2023.11.19 13:39:24 5: Drucker: ExtractReading M did not match
2023.11.19 13:39:24 5: Drucker: ExtractReading Model with regex /(?^:pc">(.*?)<)/...
2023.11.19 13:39:24 5: Drucker: FormatReading is encoding the reading value as utf-8 because no encoding was specified and the response body charset was unknown or decoded
2023.11.19 13:39:24 5: Drucker: ExtractReading for reading05-1 sets Model to MFC-J1010DW
2023.11.19 13:39:24 5: Drucker: ExtractReading value as hex is 4d46432d4a313031304457
2023.11.19 13:39:24 4: Drucker: Read response matched 1, unmatch 1 Reading(s)
2023.11.19 13:39:24 5: Drucker: Read response to update matched Model
2023.11.19 13:39:24 5: Drucker: Read response to update did not match M
2023.11.19 13:39:24 5: Drucker: HandleSendQueue called from ReadCallback, qlen = 0
2023.11.19 13:39:24 5: Drucker: HandleSendQueue found no usable entry in queue
Titel: Aw: Druckerpatronen-Zustand
Beitrag von: satprofi am 20 November 2023, 09:52:09
ursache gefunden, seite wird nicht aufgerufen, da passworteingabe fehlt. auf startseite findet er das regex vom Model, aber die Patronenzustände sind erst nach Passworteingabe sichtbar.

werte jetzt die icongrösse aus.