HTTPMOD mit reading01Regex

Begonnen von Muckiknack, 04 Oktober 2018, 17:16:45

Vorheriges Thema - Nächstes Thema

Muckiknack

Hallo,

ich versuche schon seit einiger Zeit auf https://regex101.com, mir die passende Regex zu erstellen, um Werte von meinem Drucker auslesen zu können.

Leider ohne Erfolg.

Ich weiß nicht ob, das * bei Trommeleinheit mir Schwierigkeiten erstellt.

Anbei ein Auszug aus dem Drucker HMTL:


</div><div class="contentsGroup"><h3>Knoteninformation</h3><dl class="items"><dt>Modellname</dt><dd>Brother MFC-L2700DW series</dd><dt>Seriennr.</dt><dd>E73941B7N690313</dd><dt>Main-Firmware Version</dt><dd>N</dd><dt>Speichergr&ouml;&szlig;e</dt><dd>32<span class="unit">MB</span></dd></dl></div><div class="contentsGroup"><h3>Ger&auml;testatus</h3><dl class="items"><dt>Seitenz&auml;hler</dt><dd>177</dd><dt>Trommelz&auml;hler</dt><dd>177</dd><dt>Durchschnittliche Deckung****</dt><dd>4.16%</dd></dl></div><div class="contentsGroup"><h3>Verbleibende Lebensdauer</h3><dl class="items"><dt>Trommeleinheit*</dt><dd>11823<span class="unit">Seiten</span></dd><dt>(Verbleibende Lebensdauer in %)</dt><dd>(99.00%)</dd></dl></div><div class="contentsGroup"><h3>Gesamtanzahl gedruckter Seiten</h3><dl class="items"><dt>A4/Letter</dt><dd>160<span class="unit">Seiten</span></dd><dt>Legal/Folio</dt><dd>0<span class="unit">Seiten</span></dd><dt>B5/Executive</dt><dd>0<span class="unit">Seiten</span></dd><dt>Umschl&auml;ge</dt><dd>0<span class="unit">Seiten</span></dd><dt>A5</dt><dd>0<span class="unit">Seiten</span></dd><dt>Sonstige</dt>


Ich möchte nun gerne den Wert bei der Trommeleinheit auslesen:

<dl class="items"><dt>Trommeleinheit*</dt><dd>11823


könnt ihr mir helfen die passende Regex zu erstellen? Wie muss ich das*</dt><dd> eliminieren damit ich einen Match bekomme?

Danke

Mucki

Muckiknack

#1
Nachtrag


<dt>Trommeleinheit\*<\/dt><dd>([0-9]+)


dieser Code gibt bei https://regex101.com/#p einen Treffer, jedoch nicht in FHEM

Zudem habe ich das Problem, dass ich bei meinem angelegten Drucker in FHEM, nicht die Antwort von HTTPMOD sehen, hätte gedacht das ich im Device, die HTTP Antwort sehe. Jedoch wird aktuell nichts angezeigt bis auf den HTTPHeader, kann ich dies erweitern?

Anbei ein Bild meines devices

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Muckiknack

Hallo,

vielen Dank für die Information. Das hat genau mein Problem gelöst.

Kann mir das einer erklären.

Wenn ich mit Google Chrome die Internetseite von meinem Drucker aufgerufen habe und dann mit der rechten Maustaste auf "Untersuchen" oder Seitenquelltext anzeigen" auswähle erscheint der HTML Code.

Dieser beinhaltet z.B. den Namen Trommeleinheit.

In Fhem gibt es diesen Namen nicht. Dort lautet er "Unit"

Wie kann es sein, dass sich beide Inhalte so sehr unterscheiden?

Habe ich die Browser Seite falsch geöffnet im Chrome?

frank

der browser sendet mit dem request auch einen header.
vermutlich veranlasst dies den drucker mit einer bestimmten sprache zu antworten.
du kannst httpmod die headerzeilen über attribute mitgeben.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html