HP Printer Binding - monatliche Seiten berechnen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HP Printer Binding - monatliche Seiten berechnen

Beitrag von udo1toni »

mcdandrew hat geschrieben: 26. Nov 2019 00:30 Die Log Ausgabe erscheint allerdings nicht...eventuell bricht es die Rule vorher schon ab?
Das wäre allerdings sehr seltsam, da die Rule ja vorher an dieser Stelle hängen blieb.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mcdandrew
Beiträge: 175
Registriert: 13. Dez 2018 17:42
Answers: 0

Re: HP Printer Binding - monatliche Seiten berechnen

Beitrag von mcdandrew »

Mal ne ganz blöde Frage...

Die Fehlermeldung

Code: Alles auswählen

2019-11-25 00:26:14.028 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Druckseite_add': cannot invoke method public abstract org.eclipse.smarthome.core.types.State org.eclipse.smarthome.core.persistence.HistoricItem.getState() on null
sagt doch aus, dass im Persistence File kein Eintrag für das entsprechende Datum gefunden wurde.

Kann es daran liegen, dass für dieses, in der Vergangenheit liegende Datum noch keine Einträge vorhanden sind? Die Persistence läuft schließlich erst seit dem 20.11!
Eventuell muss ich einfach bloß warten bis entsprechende Datensätze vorhanden sind.

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HP Printer Binding - monatliche Seiten berechnen

Beitrag von udo1toni »

Nein, die Fehlermeldung sagt aus, dass es nicht möglich war, den Wert, der von der Persistence geliefert wurde, als Number zu casten. Das ist ein feiner Unterschied ;) Deswegen wäre ich ja auch so scharf darauf, zu sehen, was dort eigentlich gecastet wird. (also was der Persistence Service zurück liefert.)

Es gibt natürlich noch eine pragmatische Methode, um das Problem zu lösen. Definiere ein Number Item, welches Du immer am 18. mit dem Wert von TotalCount füllst. Das Item muss mit restoreOnStartup persistiert werden, am besten mit mapDB. zB. so:

items:

Code: Alles auswählen

Number totalcount_18 "Anzahl Seiten am 18. [%d]"
rule:

Code: Alles auswählen

rule "set totalcount_18"
when
    Time cron "0 0 0 18 * ?" // am 18. des Monats um 00:00:00 Uhr
then
    totalcount_18.postUpdate(officejet_totalcount.state)
end
Künftig berechnest Du die Differenz immer zu diesem Item.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mcdandrew
Beiträge: 175
Registriert: 13. Dez 2018 17:42
Answers: 0

Re: HP Printer Binding - monatliche Seiten berechnen

Beitrag von mcdandrew »

Es läuft :D

Ich habe zunächst dem ITEM totalcount_18 händisch einen Wert zugewiesen.
Aber hier noch mal alles komplett, vielleicht benötigt es jemand mal...
printer.things

Code: Alles auswählen

Thing hpprinter:printer:djprinter "HP Officejet 6960" @ "Büro" [ ipAddress="192.168.10.7", usageInterval="30", statusInterval="4" ]

Code: Alles auswählen

printer.items
String officejet_status 		"Status"   						{channel="hpprinter:printer:djprinter:status#status"}

Number officejet_blacklevel		"Füllstand schwarz [%s%%]"		{channel="hpprinter:printer:djprinter:ink#blackLevel"}
Number officejet_yellowlevel	"Füllstand Yellow [%s%%]"		{channel="hpprinter:printer:djprinter:ink#yellowLevel"}
Number officejet_cyanlevel		"Füllstand Cyan [%s%%]"			{channel="hpprinter:printer:djprinter:ink#cyanLevel"}
Number officejet_magentalevel	"Füllstand Magenta [%s%%]"		{channel="hpprinter:printer:djprinter:ink#magentaLevel"}

Number officejet_totalcount				"Anzahl gedruckter Seiten"		{channel="hpprinter:printer:djprinter:usage#totalCount"}
Number officejet_totalColorCount		"davon in Farbe"				{channel="hpprinter:printer:djprinter:usage#totalColorCount"}
Number officejet_totalMonochromeCount	"davon in schwarz"				{channel="hpprinter:printer:djprinter:usage#totalMonochromeCount"}
Number officejet_monthcount 			"Seiten aktueller Zeitraum [%d]"
Number totalcount_18 					"Anzahl Seiten am 18. [%d]"
printer.rules

Code: Alles auswählen

//Zähler am 18 zurücksetzen
rule "set totalcount_18"
when
    Time cron "0 0 0 18 * ?" // am 18. des Monats um 00:00:00 Uhr
then
    totalcount_18.postUpdate(officejet_totalcount.state)
end

//Differenz berechnen
rule "Druckseite_add"
when 
    System started or                  // Systemstart, Anzeige mit aktuellem Wert initialisieren
    Item officejet_totalcount changed
then
    officejet_monthcount.postUpdate((officejet_totalcount.state as Number) - (totalcount_18.state as Number))
end

//Warnung bei Überschreitung

rule "Druckvolumen"
when 
    Item officejet_monthcount changed
then
    if(officejet_monthcount.state == 45)
	{
		sendTelegram("user", "Druckvolumen zu 90% verbraucht...noch 5 Seiten übrig")
	}
	else if(officejet_monthcount.state >= 50)
	{
		sendTelegram("user", "Druckvolumen aufgebraucht!")
	}
end

Ein riesen Dank nochmal an Dich Udo für deine klasse Untestützung, super Erläuterungen und vorallem unendliche Geduld!!!

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HP Printer Binding - monatliche Seiten berechnen

Beitrag von udo1toni »

Gerne. :) Schade nur, dass es hartnäckig nicht mit der Persistence funktioniert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: HP Printer Binding - monatliche Seiten berechnen

Beitrag von OliverCJ »

Hallo zusammen,
der Post ist zwar schon etwas älter, ich nutze ihn aber einfach mal um eine Frage zu stellen...
Auf der offiziellen oh-Seite habe ich dieses Binding in der Dokumentation zu den Bindings gefunden (allerdings funktioniert dort der Link auf die Github-Seite nicht).
In der PaperUI finde ich das Binding aber leider nicht zur Installation.
Wo genau bekomme ich es also her? Jemand ne Ahnung? Oder ist das schon wieder eingestellt worden?
Danke und viele Grüße
Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: HP Printer Binding - monatliche Seiten berechnen

Beitrag von OliverCJ »

Hat sich erledigt... Habe gestern auf 2.5.0 upgedatet und anschließend war es bei den Bindings installierbar.

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Antworten