Druckerpatronen-Zustand

Begonnen von akw, 27 August 2018, 08:37:10

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#15
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

wendeling

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

MarvinLu

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

Deudi

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


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

Prof. Dr. Peter Henning


Mumpitz

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

Deudi

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
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino, JeeLink DAVIS-Sketch

MarvinLu

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

Deudi

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
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino, JeeLink DAVIS-Sketch

somansch

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

Prof. Dr. Peter Henning

Ah, Schwarz auf Schwarz.
Muss ein Experte im User Interface Design sein...

pah


mark79

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
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, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Mumpitz

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?

somansch

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

Dort werde ich dann den FTUI Code posten.

MarvinLu

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