Hallo,
ich bin neu hier und bei FHEM dankt der diversen Beiträge habe ich die Patronenstatusanzeige bei meinem Epson WF-2630 hinbekommen.
Ich leider ein kleines Problem der Wert 50 der ausgelesen wird bedeutet eigentlich 100% nur bei komme ich es nicht hin, per stateFormat aus 50 den doppelten Wert zu erstellen.
Es müssen meines Erachtens die Readingwerte * 2 genommen werden, aber ich weiss nicht wie.
siehe Bilder
Danke im Voraus
rockbaer2007 / Uwe
Ich würde es mit readingNNOExpr $val * 2
lösen
Siehe CommandRef (EN)
Hallo amenomade,
kannst du mir das bitte erklären, da ich zwar Ahnung von csharp und dotnet Programmierung habe, aber leider mich erst seit etwas 2 Woche in dieser Thema einarbeite war es sehr freundlich.
Danke für dein Verständnis im voraus.
rockbaer/Uwe
Naja... einfach die Attribute reading...OExpr setzen, wie im CommandRef erklärt. Einfach lesen:
Zitat von: CommandRef(get|reading)[0-9]*OExpr
defines an optional expression that is used in an eval to compute / format a readings value after parsing an HTTP response
The raw value from the parsing will be in the variable $val.
If specified as readingOExpr then the attribute value is a default for all other readings that don't specify an explicit reading[0-9]*Expr.
Danke habe es hinbekommen.
attr Epson userattr reading01Name reading01Expr reading01Regex reading02Name reading02Expr reading02Regex reading03Name reading03Expr reading03Regex reading04Name reading04Expr reading04Regex
attr Epson model model B_01b_epson_printer_cartridge_status
attr Epson reading01Name Yellow
attr Epson reading01Expr $val * 2
attr Epson reading01Regex Ink_Y.*?='([\d]+)'
attr Epson reading02Name Cyan
attr Epson reading02Expr $val * 2
attr Epson reading02Regex Ink_C.*?='([\d]+)'
attr Epson reading03Name Magenta
attr Epson reading03Expr $val * 2
attr Epson reading03Regex Ink_M.*?='([\d]+)'
attr Epson reading04Name Black
attr Epson reading04Expr $val * 2
attr Epson reading04Regex Ink_K.*?='([\d]+)'
attr Epson room Netzwerk
attr Epson stateFormat C: Cyan% M: Magenta% Y: Yellow% BK: Black%
mfg rockbaer/Uwe
Der Thread ist ja schon etwas älter, aber ich benutze den hier auch noch mal, da es um das gleiche Thema geht.
Mein Drucker ist der WF-4830. Leider kriege ich bei der HTTPMOD Abfrage diese Antwort:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Author" content="SEIKO EPSON">
<meta name="format-detection" content="telephone=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>WF-4830 Series</title>
<link rel="stylesheet" href="FRAMESTYLE.CSS">
<script type="text/javascript" src="SCRIPT1.JQ"></script>
<script type="text/javascript" src="SCRIPT.JS"></script>
</head>
<body>
<div class="container">
<header>
<div id="logo"><img src="../../IMAGE/EPSONLOGO_NEW.PNG" width="68" height="16"></div>
<h1 id="model_name">WF-4830 Series</h1><noscript><b style="margin: 1em; color:red;"><img class="warning"
src="../../IMAGE/Icn_low.PNG">Aktivieren Sie die JavaScript-Einstellung des
Browsers.</b></noscript>
<div id="logon" style="text-decoration: underline;"><a href="../PASSWORD/TOP">Administratoranmeldung</a>
</div>
</header>
<div class="tab">
<ul>
<li id="tab_INFO">Status</li>
<li id="tab_NETWORK">Netzwerk</li>
</ul>
</div>
<!--tab-->
<div class="textArea">
<div id="text_INFO">
<div class="contents">
<div class="main">
<div class="main-inner"><iframe width="100%" height="100%" name="target_INFO"></iframe></div>
<!--main-inner-->
</div>
<!--main-->
<div class="sidebar"><a href="../INFO_PRTINFO/TOP" target="target_INFO"
id="menu_INFO_PRTINFO">Produktstatus</a><a href="../INFO_NWINFO/TOP" target="target_INFO"
id="menu_INFO_NWINFO">Netzwerkstatus</a><a href="../INFO_MENTINFO/TOP" target="target_INFO"
id="menu_INFO_MENTINFO">Nutzungsstatus</a><a href="../INFO_BEHAVIORINFO/TOP"
target="target_INFO" id="menu_INFO_BEHAVIORINFO">Hardwarestatus</a></div>
<!--sidebar-->
</div>
<!--contents-->
</div>
<!--text_XXX-->
<div id="text_NETWORK">
<div class="contents">
<div class="main">
<div class="main-inner"><iframe width="100%" height="100%" name="target_NETWORK"></iframe></div>
<!--main-inner-->
</div>
<!--main-->
<div class="sidebar"><a href="../../ADV_BONJOUR" target="target_NETWORK"
id="menu_ADV_BONJOUR">AirPrint-Einrichtung</a></div>
<!--sidebar-->
</div>
<!--contents-->
</div>
<!--text_XXX-->
</div>
<!--textArea-->
</div>
<!--container-->
</body>
</html>
Er erwartet also javascript auf der Browserseite eingeschaltet.
Wenn ich die gleiche URL im Browser aufrufe, kriege ich die Verbrauchsstände angezeigt. Da würden dann auch die regex funktionieren. Hat jemand eine Idee, wie man das lösen kann?
Ich habs es rausgefunden. Mittels Burpsuite fand sich dann die richtige URL, die ich aufrufen muss. Dann kamen auch die Werte.