Druckertoner-Status auslesen mit HTTPMOD - Seite wird falsch dargestellt.

Begonnen von Dulaman, 12 April 2023, 22:52:11

Vorheriges Thema - Nächstes Thema

Dulaman

N'Abend,

ich möchte mittels httpmod meine Druckertoner auslesen. Ich hatte meine Frage versehentlich bereits unter Codeschnipsel gestellt. Daher lieber an dieser Stelle, die besser hierfür geeignet ist.

Ich hatte erst auf eine falsche RegEx getippt.
Siehe ursprüngliche Frage hier: Druckerstatus


Ich habe nun weiter gesucht und mir den htmlbody im Device anzeigen lassen.
httputils zeigt mir allerdings dort eine völlig andere Seite an.
Erstmals ist die Sprache auf "en" englisch eingestellt und zweitens, werden die Werte die er mir im Browser anzeigt, dort gar nicht dargestellt.

Ich finde dann so etwas wie: visibility:hidden

Status
</span>
: <span class="statusline"></span>
</div>
<div class="warnings" style="visibility:hidden">
<span class="translated" data-textid="72888"
tabindex="-1">

Nach dem Status sollte dort eigentlich der Wert: Ruhemodus stehen, wie er auf der Seite im Browser dargestellt wird:   hier bei  statuswarning">Ruhemodus

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

<ul>


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

</li>

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

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

</li>


</ul>

</ul>



Beim Umstellen der Sprache auf Englisch im Browser lief die Anfrage in einen Timeout. Ich wollte mir die Seite auf Englisch anschauen, ob die Namen anders lauten und daher das RegEx nichts findet.

Hier nochmal das lange Listing des Devices:
Internals:
   BUSY       0
   CFGFN     
   DEF        http://192.168.7.138/ 300
   FUUID      6431365b-f33f-3b18-e323-3a35533efa6b21dc
   Interval   300
   MainURL    http://192.168.7.138/
   ModuleVersion 4.1.15 - 17.12.2022
   NAME       Lexmark
   NOTIFYDEV  global
   NR         333931
   NTFY_ORDER 50-Lexmark
   STATE      ???
   TYPE       HTTPMOD
   eventCount 33
   httpbody   



<!DOCTYPE html >
<html lang="en">
<head>
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Lexmark MC3224dwe</title>
<link rel="stylesheet" type="text/css" href="/css/main.css" />
</head>
<body>

<div class="popup-modal-container"></div>

<div class="maincontainer" role="grid">


<div class="headerarea" role="row">
<div class="float_left" role="gridcell">
<div class="headerlogo" role="banner">
<a target="_blank" href="/images/printer_link.html" tabindex="99"><img src="/images/printer_logo.png" alt="Printer Logo"/></a>
</div>
<div class="headerTitle" role="heading">Embedded Web Server</div>
</div>
<div id="dropdownArea" class="float_right" role="group">
<div class="dropdownanchor">
<div class="dropdownclickarea" id="languageclickarea" tabindex="100" role="button" aria-labelledby="langlabel languagecue">

<label id="langlabel" aria-hidden="true">


<span class="translated" data-textid="67029"
tabindex="-1">
Language
</span>



</label>
<label id="languagecue" aria-hidden="true">

<span class="translated" data-textid="75369"
tabindex="-1">
Press Enter to change the language.
</span>

</label>
<div class="languageicon" role="presentation"></div>

<span class="translated" data-textid="67029"
tabindex="-1">
Language
</span>


<div class="carat" role="presentation"></div>
</div>
<div class="dropdown" id="languagedropdown">
<div class="dropdowncontents" id="languagedropdowncontents" role="listbox">


<ul class="languagelist" role="presentation">


<li><a class="nonjslink" onclick="changeLanguage('zh-CN');" href="" role="option" tabindex="101">


<span class="translated" data-textid="67417"
tabindex="-1">
简体中文
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('zh-TW');" href="" role="option" tabindex="102">

<span class="translated" data-textid="67418"
tabindex="-1">
繁體中文
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('cs');" href="" role="option" tabindex="103">


<span class="translated" data-textid="67413"
tabindex="-1">
Česky
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('da');" href="" role="option" tabindex="104">





<span class="translated" data-textid="67406"
tabindex="-1">
Dansk
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('nl');" href="" role="option" tabindex="105">





<span class="translated" data-textid="67408"
tabindex="-1">
Nederlands
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('en');" href="" role="option" tabindex="106">





<span class="translated" data-textid="67403"
tabindex="-1">
English
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('fi');" href="" role="option" tabindex="107">





<span class="translated" data-textid="69334"
tabindex="-1">
Suomi
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('fr');" href="" role="option" tabindex="108">





<span class="translated" data-textid="69332"
tabindex="-1">
Français
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('de');" href="" role="option" tabindex="109">





<span class="translated" data-textid="67404"
tabindex="-1">
Deutsch
</span>


</a></li>

</ul>



<ul class="languagelist" role="presentation">


<li><a class="nonjslink" onclick="changeLanguage('el');" href="" role="option" tabindex="110">





<span class="translated" data-textid="67809"
tabindex="-1">
ελληνικά
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('hu');" href="" role="option" tabindex="111">





<span class="translated" data-textid="67415"
tabindex="-1">
Magyar
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('it');" href="" role="option" tabindex="112">





<span class="translated" data-textid="67405"
tabindex="-1">
Italiano
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('ja');" href="" role="option" tabindex="113">





<span class="translated" data-textid="67411"
tabindex="-1">
日本語
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('ko');" href="" role="option" tabindex="114">





<span class="translated" data-textid="67419"
tabindex="-1">
한국어
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('no');" href="" role="option" tabindex="115">





<span class="translated" data-textid="67407"
tabindex="-1">
Norsk
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('pl');" href="" role="option" tabindex="116">





<span class="translated" data-textid="67414"
tabindex="-1">
Polski
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('pt');" href="" role="option" tabindex="117">





<span class="translated" data-textid="67410"
tabindex="-1">
Português
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('ru');" href="" role="option" tabindex="118">





<span class="translated" data-textid="67412"
tabindex="-1">
Русский
</span>


</a></li>

</ul>



<ul class="languagelist" role="presentation">


<li><a class="nonjslink" onclick="changeLanguage('es');" href="" role="option" tabindex="119">





<span class="translated" data-textid="69333"
tabindex="-1">
Español
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('sv');" href="" role="option" tabindex="120">





<span class="translated" data-textid="67409"
tabindex="-1">
Svenska
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('tr');" href="" role="option" tabindex="121">





<span class="translated" data-textid="67416"
tabindex="-1">
Türkçe
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('ro');" href="" role="option" tabindex="122">





<span class="translated" data-textid="68234"
tabindex="-1">
Română
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('sk');" href="" role="option" tabindex="123">





<span class="translated" data-textid="74553"
tabindex="-1">
Slovenčina
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('sr');" href="" role="option" tabindex="124">





<span class="translated" data-textid="74554"
tabindex="-1">
Srpski
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('sl');" href="" role="option" tabindex="125">





<span class="translated" data-textid="74555"
tabindex="-1">
Slovenščina
</span>


</a></li>


<li><a class="nonjslink" onclick="changeLanguage('hr');" href="" role="option" tabindex="126">





<span class="translated" data-textid="74556"
tabindex="-1">
Hrvatski
</span>


</a></li>




</ul>


</div>
<div class="dropdowntab" id="languagedropdowntab" role="presentation">
</div>
</div>
</div>
<div class="loginuserinfo noSelect" tabindex="150" role="banner"><span>&nbsp;</span></div>
<div class="dropdownanchor" role="presentation">
<div class="dropdownclickarea loginout noSelect" id="loginclickarea" role="button" tabindex="151" aria-labelledby="loginlabel logincue">

<label id="loginlabel" aria-hidden="true">


<span class="translated" data-textid="72660"
tabindex="-1">
Log In
</span>



</label>
<label id="logincue" aria-hidden="true">






<span class="translated" data-textid="75370"
tabindex="-1">
Press Enter to login.
</span>



</label>



<span class="translated" data-textid="72660"
tabindex="-1">
Log In
</span>



<div class="carat"></div>
</div>
<div class="dropdownclickarea loginout noSelect" id="logoutclickarea" style="display:none" role="button" tabindex="151" aria-labelledby="logoutclickarea">



<span class="translated" data-textid="66564"
tabindex="-1">
Log out
</span>


</div>
<div class="dropdown" id="logindropdown">
<div class="dropdowncontents" id="loginContents" role="form">
</div>
<div class="dropdowntab" id="logindropdowntab" role="presentation">
</div>
</div>
</div>
</div>
</div>

<div class="infoarea" role="row">
<div class="printerlogo" role="presentation"><img src="/images/printer_image.png" alt="Printer Logo"/></div>
<div class="printername" role="heading">Lexmark MC3224dwe</div>
<div class="printerip" role="status"><span class="printerinfoheader">



<span class="translated" data-textid="66239"
tabindex="-1">
IP Address
</span>


:</span> 192.168.7.138</div>
<div class="contactName" role="status"><span class="printerinfoheader">


<span class="translated" data-textid="66155"
tabindex="-1">
Contact Name
</span>


:</span> </div>
<div class="printerlocation" role="status"><span class="printerinfoheader">





<span class="translated" data-textid="66154"
tabindex="-1">
Location
</span>


:</span> </div>
</div>
<div class="bottomarea" role="row">
<ul id="StatusHeader" class="itemContainer" role="status">

<ul>


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

</li>

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

<div class="content statusarea" role="status">
<div class="status">
<span class="translated" data-textid="67964"
tabindex="-1">
Status
</span>
: <span class="statusline"></span>
</div>
<div class="warnings" style="visibility:hidden">
<span class="translated" data-textid="72888"
tabindex="-1">
Messages
</span>
: <span class="warningline"></span> <span class="warningline-more">
<span class="translated" data-textid="72893"
tabindex="-1">
(More...)
</span>
</span>
</div>
</div>

</li>


</ul>

</ul>
<div class="siteSearch" id="siteSearch" role="search">
<input tabindex="198" type="text" maxlength="80" class="textline search-input" id="searchtext" title="Search Box" alt="Search Site for Text"></input>
<button tabindex="199" class="search" id="searchbutton" value="search">


<span class="translated" data-textid="65751"
tabindex="-1">
Search
</span>


</button>
<div class="float_right">
<span id="VccImport" data-node="VccImport" ></span>
<span id="VccExport" data-node="VccExport" ></span>
</div>
<div id="VccExport" data-node="VccExport" class="configurationBtn export"></div>
</div>
<br />
<div class="navarea" role="row">


<div class="navHeader" role="columnheader">


<span class="translated" data-textid="73501"
tabindex="-1">
Select Option
</span>



</div>
<div class="navContent" role="gridcell">
<ul class="linksList linkMajor">



<li id="Status-link">

<a class="navSection link navLink" href="#/Status"
tabindex = "201"
>


<span class="translated" data-textid="67964"
tabindex="-1">
Status
</span>



</a>


<ul class="linksList linkMinor">


</ul>

</li>


<li id="Settings-link">

<a class="navSection link navLink" href="#/Settings"
tabindex = "202"
>


<span class="translated" data-textid="67984"
tabindex="-1">
Settings
</span>

</a>


<ul class="linksList linkMinor">



<li id="Settings-Device-link">
<a class="navSection link navLink" href="#/Settings/Device"
tabindex = "202"
>


<span class="translated" data-textid="72728"
tabindex="-1">
Device
</span>


</a>
</li>


<li id="Settings-Paper-link">
<a class="navSection link navLink" href="#/Settings/Paper"
tabindex = "202"
>






<span class="translated" data-textid="70599"
tabindex="-1">
Paper
</span>



</a>
</li>


<li id="Settings-NCloudConnector-link">
<a class="navSection link navLink" href="#/Settings/NCloudConnector"
tabindex = "202"
>


<span class="translated" data-textid="75752"
tabindex="-1">
Cloud Connector
</span>



</a>
</li>





<li id="Settings-Reports-link">
<a class="navSection link navLink" href="#/Settings/Reports"
tabindex = "202"
>


<span class="translated" data-textid="67926"
tabindex="-1">
Reports
</span>



</a>
</li>



</ul>

</li>




<li id="AddressBook-link">

</li>




<li id="ShortcutsManagement-link">

<a class="navSection link navLink" href="#/ShortcutsManagement"
tabindex = "204"
>


<span class="translated" data-textid="67977"
tabindex="-1">
Shortcuts
</span>



</a>


<ul class="linksList linkMinor">



</ul>

</li>




<li id="BookmarkSetup-link">


</li>




<li id="Applications-link">


</li>


</ul>
</div>
<div class="navfooter" role="gridcell">
<div class="sitemap">
<a class="navSection link navLink" href="#/SiteMap"
tabindex = "206"
>
<b>


<span class="translated" data-textid="73576"
tabindex="-1">
Site Map
</span>


</b>
</a>
</div>
</div>

</div>
<div class="main" id="maincontent" lang="en" role="main">
</div>
<br style="clear:both;" />
</div>
</div>
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/jquery-ui-timepicker-addon.min.js"></script>
<script type="text/javascript" src="/js/jquery-address.min.js"></script>
<script type="text/javascript" src="/js/jquery-tablesorter.min.js"></script>
<script type="text/javascript" src="/js/jquery-cookies.min.js"></script>
<script type="text/javascript" src="/js/jquery-form.min.js"></script>
<script type="text/javascript" src="/js/jquery-watermark.min.js"></script>
<script type="text/javascript" src="/js/source.js"></script>
<script type="text/javascript" src="/webglue/js/strings.js"></script>
</body>
</html>

   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       http://192.168.7.138:80
     auth       0
     code       200
     compress   1
     conn       
     data       
     displayurl http://192.168.7.138/
     header     
     host       192.168.7.138
     httpheader HTTP/1.1 200 OK
Date: Wed, 12 Apr 2023 20:24:13 GMT
Server: Lexmark_Web_Server
Cache-Control: no-cache
Content-Language: de
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Content-Security-Policy:     default-src 'none';    script-src 'self' 'unsafe-eval' 'unsafe-inline';    style-src 'self' 'unsafe-inline';    img-src 'self' data: https:;    connect-src *;    frame-src 'self' 'unsafe-inline' 'unsafe-eval';    font-src 'self'
X-Content-Type-Options: nosniff
Connection: close
Content-Type: text/html; charset=UTF-8
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    80
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /
     protocol   http
     redirects  0
     timeout    2
     url        http://192.168.7.138/
     sslargs:
   QUEUE:
   READINGS:
     2023-04-12 22:22:33   LAST_ERROR      read from http://192.168.7.138:80 timed out
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        http://192.168.7.138/
   hmccu:
Attributes:
   enableControlSet 1
   enableCookies 1
   errLogLevel 5
   reading01Name status
   reading01Regex statuswarning.*?">(.*)<
   room       1.1_Buero
   showBody   1
   showError  1
   verbose    5


Wie bekomme ich es hin, dass die Seite ausgelesen wird, die ich auch im Browser angezeigt bekomme?

Drucker ist ein Lexmark MC3224dwe.


Gruß Andreas

betateilchen

#1
Falsches Unterforum zu Fragen und Problemen mit HTTPMOD...

https://forum.fhem.de/index.php?topic=13092.0

Sei's drum...

Erstens solltest Du nie davon ausgehen, dass der HTML Inhalt, den Du in einem Browser findest, identisch zu dem Inhalt ist, der in HTTPMOD ankommt. Du solltest also beim Experimentieren mit Regex immer den Inhalt voraussetzen, der in HTTPMOD im htmlbody steht.

Zweitens habe ich noch nicht verstanden, welche Werte Du eigentlich mittels HTTPMOD herausfinden möchtest.

Die von Dir gesuchten Statusmeldungen sind in dem htmlbody nicht enthalten.


<div class="status">
<span class="translated" data-textid="67964"
tabindex="-1">
Status
</span>
: <span class="statusline"></span>
</div>


Diese werden zur Laufzeit per JavaScript in die Webseite eingetragen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JudgeDredd

Zitat von: Dulaman am 12 April 2023, 22:52:11ich möchte mittels httpmod meine Druckertoner auslesen.
Ich möchte mich zum Thema regEx gar nicht groß einmischen, aber warum liest Du den Tonerstand nicht einfach mit SNMP aus.
Der Drucker unterstützt das Protokoll doch ?
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Dulaman

Zitat von: betateilchen am 13 April 2023, 10:48:33Falsches Unterforum zu Fragen und Problemen mit HTTPMOD...

https://forum.fhem.de/index.php?topic=13092.0

Sei's drum...
Danke, das hab ich bisher noch nicht gemacht. Danke fürs hinweisen.
Unter sonstiges ist es also richtig:
Module: 98_HTTPMOD.pm Maintainer: StefanStrobel Forum: Sonstiges
HTTPMOD

Richtig, darum hatte ich gefragt, wie die Werte dort dargestellt werden, weil ich es nicht wusste.
Folglich, wie du sagtest, erst zur Laufzeit über Javascript. Daher auch meine beiden Codebeispiele von httpmod und von der Seite selbst.

ZitatDer Drucker unterstützt das Protokoll doch ?
Richtig, das habe ich auch in den Einstellungen beim Drucker gefunden.
Allerdings finde ich nicht die Werte für die Tonerstände. Ich habe einen snmpwalk mit 1.3.6 gemacht.
Kannst du mir hierbei weiterhelfen, wo ich die Toner Füllstände finden kann?

Gruß Andreas

JudgeDredd

Zitat von: Dulaman am 13 April 2023, 22:14:26Allerdings finde ich nicht die Werte für die Tonerstände. Ich habe einen snmpwalk mit 1.3.6 gemacht.
Kannst du mir hierbei weiterhelfen, wo ich die Toner Füllstände finden kann?
Ich kann Dir nicht sagen in wieweit, die OID bei Lexmark identisch sind, aber hier hast Du mal meine:
   
1.3.6.1.2.1.1.1.0:hostname,
1.3.6.1.2.1.43.11.1.1.6.1.1:cyan_name,
1.3.6.1.2.1.43.11.1.1.8.1.1:cyan_max,
1.3.6.1.2.1.43.11.1.1.9.1.1:cyan_cur,
1.3.6.1.2.1.43.11.1.1.6.1.2:magenta_name,
1.3.6.1.2.1.43.11.1.1.8.1.2:magenta_max,
1.3.6.1.2.1.43.11.1.1.9.1.2:magenta_cur,
1.3.6.1.2.1.43.11.1.1.6.1.3:yellow_name,
1.3.6.1.2.1.43.11.1.1.8.1.3:yellow_max,
1.3.6.1.2.1.43.11.1.1.9.1.3:yellow_cur,
1.3.6.1.2.1.43.11.1.1.6.1.4:black_name,
1.3.6.1.2.1.43.11.1.1.8.1.4:black_max,
1.3.6.1.2.1.43.11.1.1.9.1.4:black_cur,
1.3.6.1.2.1.43.11.1.1.6.1.5:waste_name,
1.3.6.1.2.1.43.11.1.1.8.1.5:waste_max,
1.3.6.1.2.1.43.11.1.1.9.1.5:waste_cur,
1.3.6.1.2.1.43.11.1.1.6.1.6:fix_name,
1.3.6.1.2.1.43.11.1.1.8.1.6:fix_max,
1.3.6.1.2.1.43.11.1.1.9.1.6:fix_cur,
1.3.6.1.2.1.43.11.1.1.6.1.8:imaging_name,
1.3.6.1.2.1.43.11.1.1.8.1.8:imaging_max,
1.3.6.1.2.1.43.11.1.1.9.1.8:imaging_cur,
1.3.6.1.2.1.43.11.1.1.6.1.9:maintenance_name,
1.3.6.1.2.1.43.11.1.1.8.1.9:maintenance_max,
1.3.6.1.2.1.43.11.1.1.9.1.9:maintenance_cur
Der Wert hinter dem Doppelpunkt, ist der Readingname und gehört natürlich nicht zur OID.
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Dulaman