Autor Thema: Druckerpatronen-Zustand  (Gelesen 5840 mal)

Offline akw

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

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

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

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


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



FHEM-SVN auf MacMini OSX 10.7.5

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

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

Offline Helmi55

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

https://www.flickr.com/photos/canonhelmi/album
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Tedious

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

Offline Prof. Dr. Peter Henning

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

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

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

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

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

#mblack
#myellow
#mcyan
#mmagenta

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

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

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

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

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

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

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


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

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

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

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

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

LG

pah

Offline wendeling

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

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

aber das läßt er nicht zu ?

Was tun ?

Gruß
Wendelin


Offline Prof. Dr. Peter Henning

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

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

LG

pah

Offline Tedious

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

Offline CoolTux

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

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

aber das läßt er nicht zu ?

Was tun ?

Gruß
Wendelin

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

Offline wendeling

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

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

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

Aber ok. dann ohne Druck.. 

Gruß
Wendelin


Offline Prof. Dr. Peter Henning

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

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

darf sich über fehlenden Support nicht wundern.

Also ohne Druck.

LG

pah

Offline Laserhelge

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

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

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

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

Hat jemand einen Tipp für mich?

Danke und viele Grüße

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

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

Offline Prof. Dr. Peter Henning

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

LG

pah

Offline Mumpitz

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

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

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

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


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

Hallo akw

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

Besten Dank bereits jetzt dafür!

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

Offline Laserhelge

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

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

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

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

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

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

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

Offline Prof. Dr. Peter Henning

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

LG

pah

Online MadMax-FHEM

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

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

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

Aber ok. dann ohne Druck.. 

Gruß
Wendelin

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

Hast du "nur":

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

Schon mal mit 'sudo' vorneweg probiert?

EDIT: wurde ja schon mal angeregt...

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

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

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

Offline wendeling

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

Gruß
Wendelin

Offline MarvinLu

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

ich hoffe jemand kann mir helfen.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kann da jemand helfen?

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

Offline Deudi

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

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

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

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

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

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

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

Canon MG8100 series

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

Grüße
Deudi


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

Offline Prof. Dr. Peter Henning

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

Offline Mumpitz

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

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

Mumpitz

Offline Deudi

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

Hallo Mumpitz,

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

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

Offline MarvinLu

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

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

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

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

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

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

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

Offline Deudi

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

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

Stimmt  ;)

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

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

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

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

Offline somansch

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

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

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

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

Das Ergebnis kann sich sehen lassen, oder?  :D

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

Offline Prof. Dr. Peter Henning

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

pah


Offline mark79

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

pah

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

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

Offline Mumpitz

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

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

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

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

Das Ergebnis kann sich sehen lassen, oder?  :D

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

Offline somansch

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

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

Dort werde ich dann den FTUI Code posten.

Offline MarvinLu

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

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

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

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

Gruß
Deudi

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

Liebe Grüße,
Marvin

Offline slor

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

hier meine Config für einen Epson Stylus Photo PX820FWD

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

Offline chr2k

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

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

Gruß
Christian

Offline masterpete23

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

Offline THZ_Haus

  • Jr. Member
  • **
  • Beiträge: 63
Antw:Druckerpatronen-Zustand
« Antwort #33 am: 07 Juni 2019, 20:31:50 »
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
Solarview mit SAM BT, FHEM mit THZ 403 SOL, EDIMAX

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #34 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

Offline rcmcronny

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Druckerpatronen-Zustand
« Antwort #35 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


Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 632
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:Druckerpatronen-Zustand
« Antwort #36 am: 23 Juni 2019, 13:11: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
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo

Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 632
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:Druckerpatronen-Zustand
« Antwort #37 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&#32;;Pages&#32;;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
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #38 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://192.168.178.61/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

Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 632
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:Druckerpatronen-Zustand
« Antwort #39 am: 23 Juni 2019, 13:23:30 »
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
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #40 am: 23 Juni 2019, 14:00:45 »
nee, dat is zu einfach

Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 632
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:Druckerpatronen-Zustand
« Antwort #41 am: 23 Juni 2019, 14:23:30 »
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
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #42 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

Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 632
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:Druckerpatronen-Zustand
« Antwort #43 am: 23 Juni 2019, 16:55:21 »
gugg mal

Am Beispiel reading02Regex 

Das ist eine Kopie des HTML Textes:
Serial&#32;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&#32;no.
Zumindest bei mir ist das so.

Beispiel 2: Speicher - da ist der Suchbegriff Memory

cheers
mi.ke
« Letzte Änderung: 23 Juni 2019, 16:57:29 von mi.ke »
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #44 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

Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 632
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:Druckerpatronen-Zustand
« Antwort #45 am: 23 Juni 2019, 17:11:04 »
Würde Dir einen ausgeben wenn ich könnte. Ich trink einen auf dich.

Guter Mann !
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #46 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

Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 632
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:Druckerpatronen-Zustand
« Antwort #47 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
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #48 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

Offline elektrikpe2

  • Jr. Member
  • **
  • Beiträge: 60
Antw:Druckerpatronen-Zustand
« Antwort #49 am: Gestern um 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&#32;;Counter*?<dd>(.*?)<
attr Druckerstatistik reading02Name Pages_black
attr Druckerstatistik reading02Regex Page&#32;;Counter<.*?B&amp;;W.*?<dd>(.*?)<
attr Druckerstatistik reading03Name Pages_Color
attr Druckerstatistik reading03Regex Page&#32;;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
Gefällt mir Gefällt mir x 2 Liste anzeigen

 

decade-submarginal