Druckerpatronen-Zustand

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

Vorheriges Thema - Nächstes Thema

slor

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 Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

chr2k

Zitat von: akw am 27 August 2018, 08:37:10
Vielleicht ist es ja für den ein oder anderen hilfreich!

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

Gruß
Christian

masterpete23

Danke hat mir auch geholfen mit meinem HP.
Hat noch jemand DOIFs für "fast" alle?
Würde mich über einen Codeschnipsel freuen.

THZ_Haus

Zitat von: Helmi55 am 28 August 2018, 18:24:11
Ja ja die Lehrerinnen Kenne ich.
Wäre schön wenn das auch mit EPSON 3620 arbeiten würde
Gruß
Helmut

Hallo,
für den WF 3620:     

https://ip-adresse/PRESENTATION/ADVANCED/INFO_PRTINFO/TOP 60
Solarview mit SAM BT, FHEM mit THZ 403 SOL, EDIMAX

elektrikpe2

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

rcmcronny

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


mi.ke

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

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

Cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

mi.ke

Ich hab seit ca. zwei Jahren einen Brother DCP-9022CDW

Diesen frage ich wie folgt ab.

Vielleicht kann es ja jemand brauchen

Cheers
mi.ke


defmod BrotherDrucker HTTPMOD http://xxx.xxx.xxx.xxx/general/information.html?kind=item 0
attr BrotherDrucker userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex
attr BrotherDrucker enableControlSet 1
attr BrotherDrucker event-on-change-reading .*
attr BrotherDrucker group Büro
attr BrotherDrucker reading01Name cyan
attr BrotherDrucker reading01Regex Toner&nbsp;;Cyan.*?<dd>\((.*?).00
attr BrotherDrucker reading02Name magenta
attr BrotherDrucker reading02Regex Toner&nbsp;;Magenta.*?<dd>\((.*?).00
attr BrotherDrucker reading03Name yellow
attr BrotherDrucker reading03Regex Toner&nbsp;;Yellow.*?<dd>\((.*?).00
attr BrotherDrucker reading04Name black
attr BrotherDrucker reading04Regex Toner&nbsp;;Black.*?<dd>\((.*?).00
attr BrotherDrucker reading05Name pagesPrinted
attr BrotherDrucker reading05Regex Total ;Pages ;Printed.*?A4.*?<dd>(.*?)<span
attr BrotherDrucker room 0bergeschoss
attr BrotherDrucker sortby pc21
attr BrotherDrucker stateFormat Gedruckte Seiten: <b>pagesPrinted</b><br>C:cyan% | M:magenta% | Y:yellow% | Black:black%
attr BrotherDrucker verbose 2
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

elektrikpe2

#38
Hallo,

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

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


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

LG Peter

mi.ke

Zitat von: elektrikpe2 am 23 Juni 2019, 13:17:15
ich will/muss mehrere Drucker abfragen und nacher in FTUI darstellen.

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

Cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

elektrikpe2


mi.ke

Zitat von: elektrikpe2 am 23 Juni 2019, 14:00:45
nee, dat is zu einfach

verstehe !!

Bei mir funktionieren diese beiden Abfrage (gerade getestet)

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

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

Cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

elektrikpe2

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

mi.ke

#43
gugg mal

Am Beispiel reading02Regex 

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

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

Beispiel 2: Speicher - da ist der Suchbegriff Memory

cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

elektrikpe2

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