FHEM Tutorial-Reihe - Part 52: Tonerstand vom Drucker abfragen

Mit ** gekennzeichne Links auf dieser Seite sind Affiliatelinks.

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

FHEM-Kurs

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

Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Rabattaktionen für Kurse
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbaren Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich ungern auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.