FHEM Tutorial-Reihe - Part 52: Tonerstand vom Drucker abfragen
Auf Grund einer Frage in meiner Facebook-Gruppe bin ich auf ein weiteres interessantes Thema für ein neues Video gestoßen: Ich wollte gerne den Tonerstand (und wie lange er noch hält) in fhem integrieren. So kann ich mir eine Notification zusenden lassen, wenn der Toner unter ein bestimmtes Level fällt. Eigentlich dachte ich, dass ich nur die Prozentzahl heraus bekomme - aber jetzt sind es doch die ungefähr verbleibenden Seiten geworden - was natürlich noch viel cooler ist, weil der Drucker ja weiß wie er die Prozentzahl ungefähr in Seiten umrechnen muss.
Was wird benötigt?
- Eine FHEM-Installation
- Ein Netzwerk-Drucker mit Web-Interface
Video
Befehle
define Drucker HTTPMOD http://192.168.178.29/SSI/supply_status.htm 300
attr Drucker userattr reading01Name reading01Regex reading02Name reading02Regex
attr Drucker enableControlSet 1
attr Drucker event-on-change-reading .*
attr Drucker icon it_printer
attr Drucker reading01Name VerbleibendeSeiten
attr Drucker reading01Regex <td class="labelSpsFont">Geschätzte Anzahl verbleibender Seiten\*:</td>\s*<td class="itemSpsFont">([0-9]+)
attr Drucker reading02Name GedruckteSeiten
attr Drucker reading02Regex <td class="labelSpsFont">Mit diesem Verbrauchsmat. gedruckte Seiten\*:</td>\s*<td class="itemSpsFont">([0-9]+)
attr Drucker stateFormat Gedruckte Seiten: GedruckteSeiten<br/>Verbleibende Seiten: VerbleibendeSeiten
Das zugehörige doif ist auch nicht komplizierter. Hier wird einfach das Reading für die verbleibenden Seiten kontrolliert und entsprechend mit einer Pushover-Notification und einem Eintrag in die Wunderlist reagiert. Einfacher geht es kaum, oder?
define doif_Drucker_SeitenKnapp DOIF ([Drucker:VerbleibendeSeiten] < 100)
(set WEB_Pushover msg 'Drucker' 'Der Toner hält nur noch für [Drucker:VerbleibendeSeiten] Seiten', set Wunderlist addTask Drucker-Toner kaufen)
DOELSEIF ([Drucker:VerbleibendeSeiten] >= 100)
(set WEB_Pushover msg 'Drucker' 'Der Toner hält wieder für [Drucker:VerbleibendeSeiten] Seiten')
attr doif_Drucker_SeitenKnapp DbLogExclude .*
attr doif_Drucker_SeitenKnapp alias Drucker: Benachrichtigung wenn Toner fast leer
attr doif_Drucker_SeitenKnapp checkReadingEvent 1
attr doif_Drucker_SeitenKnapp group DeviceLogik
attr doif_Drucker_SeitenKnapp room Logik