Hallo,
ich habe in fhem ein Device angelegt, welches mit Hilfe der Cups-IPP-Tools regelmäßig den Tintenstand meines Mufu's abfragt und dann grafisch aufbereitet ausgibt. DIeses Device ist wie folgt definiert:Internals:
FUUID 61759765-f33f-378b-a345-a82c9c612eac82de
FVERSION 98_dummy.pm:0.256060/2022-02-01
NAME ipp_EPSON_XP7100
NR 1599
STATE ipp://192.168.1.121:631/
TYPE dummy
READINGS:
2022-06-06 13:00:06 Black 23
2022-06-06 13:00:06 Cyan 26
2022-06-06 13:00:06 Magenta 32
2022-06-06 13:00:06 Photo_Black 92
2022-06-06 13:00:06 Yellow 3
2022-06-03 16:00:04 attributes-charset utf-8
2022-06-03 16:00:04 attributes-natural-language en
2022-06-03 16:00:04 marker-levels 92,26,32,3,23
2022-06-03 16:00:04 marker-names Photo Black ink,Cyan ink,Magenta ink,Yellow ink,Black ink
2022-06-03 16:00:04 printer-uri ipp://192.168.1.121:631/
2022-06-03 16:00:04 requested-attributes marker-names,marker-levels
2022-06-03 16:00:04 status-code successful-ok (successful-ok)
Attributes:
DbLogExclude .*
alias Epson XP-7100 im Büro
devStateIcon {package ui_Table;
ring(::ReadingsVal("ipp_EPSON_XP7100","Magenta",0),0,100,330,330,'magenta',"100,1",undef,0,1).
ring(::ReadingsVal("ipp_EPSON_XP7100","Cyan",0),0,100,200,200,'cyan',"100,1",undef,0,1).
ring(::ReadingsVal("ipp_EPSON_XP7100","Yellow",0),0,100,60,60,'yellow',"100,1",undef,0,1).
ring(::ReadingsVal("ipp_EPSON_XP7100","Black",0),0,100,0,0,'black',"100,1",undef,0,1,"100,100,100,100,100").
ring(::ReadingsVal("ipp_EPSON_XP7100","Photo_Black",0),0,100,10,10,'ph-black',"100,1",undef,0,1,"100,100,100,100,100")
}
event-on-change-reading Black,Cyan,Magenta,Photo_Black,Yellow
group Drucker
icon it_printer
room Arbeitszimmer
sortby 01
stateFormat printer-uri
verbose 0
Das Ergebnis habe ich angehängt. Ich würde jetzt gerne eine Zelle mit einer entsprechenden View anlegen, um auf meinem Tablet den Stand zu sehen, auch wenn ich gerade mal nicht fhem geöffnet habe - ist das Möglich, und wenn, wie stelle ich das an?
Gruß, Christoph
Hi,
das ist gerade ein bisschen schwer zu sagen. Im Prinzip müsste man so etwas schon mit der HMTL-View hinbekommen, aber wie genau weiß ich noch nicht. Was macht denn das "ring" genau bzw. wo bekommt man das denn her?
Gruß,
Thorsten
Moin Thorsten,
das ring ist - glaube ich - dieser Halbkreis mit dem Tintenstand.
Ich habe hier in diesem Thread (https://forum.fhem.de/index.php/topic,123760.msg1183329.html) mal alles zusammen getragen, was ich seinerzeit gemacht habe, um zu dem im Screenshot sichtbaren Ergebnis zu kommen, bisher aber nur auf der normalen fhemweb-Oberfläche...
Gruß, Christoph
Hi,
ah, das ist wohl aus der DOIF-Welt. Es ist wahrscheinlich nicht ganz so einfach, das in die FTUI/FUIP-Welt zu übernehmen. Aber ich schau mir's mal genauer an.
Gruß,
Thorsten
Hallo,
ich habe mir mal angesehen, was die ring-Funktion produziert. Das könnte man in einer FUIP-View schon irgendwie nachbauen, war mir jetzt aber zu viel Arbeit. Folgendermaßen kann man das ganze tatsächlich direkt übernehmen:
Zuerst machst Du Dir ein userReading, das das Ergebnis der ring-Funktion enthält, also in etwa:
attr ipp_EPSON_XP7100 userReadings magentaWidget {package ui_Table;
ring(::ReadingsVal("ipp_EPSON_XP7100","Magenta",0),0,100,330,330,'magenta',"100,1",undef,0,1)}
(Vielleicht müssen irgendwo noch ";" durch ";;" ersetzt werden, aber prinzipiell funktioniert das.)
Dann in FUIP eine HTML view mit folgendem Inhalt anlegen:
<div data-type="label"
data-device="ipp_EPSON_XP7100"
data-get="magentaWidget"></div>
...und schon erscheint das ganze in FUIP.
Ich hab's ausprobiert und sogar der Update funktioniert automatisch.
Wenn man's eleganter haben will, dann vielleicht für die userReadings einen eigenen Dummy anlegen und in der HTML View verwenden.
Außerdem kann man in der HTML View mit fuip-field für das Reading (data-get) arbeiten und das ganze als View Template anlegen. Dann hat man es nicht mehrfach.
Gruß,
Thorsten
Hallo Thorsten,
danke, damit hat es super funktioniert, jetzthabe ich beide Drucker im Blick...
Gruß, Christoph