FHEM > Codeschnipsel

Druckerpatronen-Zustand

<< < (12/14) > >>

Prof. Dr. Peter Henning:

--- Zitat ---Wink mit dem Zaunpfahl
--- Ende Zitat ---
Klar doch:

Ordentliche Fehlerbeschreibungen liefern - statt weinerliches "hilft mir nicht weiter".
Informationen darüber, was man eigentlich benutzt - keiner von uns weiß, was mit "INK-Programm" und "Terminal" gemeint ist. Oder hat Zeit, sich "Antwort 18" herauszusuchen.

LG

pah

amenomade:

--- Zitat von: Hauslaus am 22 Oktober 2020, 22:22:10 ---Hallo!

Meinem Canon entlocke ich durch die Antwort 18 die hilfreichen Daten:

Canon MX920 series

Black:                              40%
Photoblack:                      60%
Yellow:                             20%
Magenta:                          80%
Cyan:                                 0%

Um diese Angaben in mein FHEM zu bekommen ist HTTPMOD leider nicht hilfreich.

Die Antwort 3 (https://forum.fhem.de/index.php/topic,90601.msg831360.html#msg831360) hilft mir leider nicht weiter. Ich denke mir, dass ich den ersten Teil aus Antwort 3 auf jeden Fall nicht benötige, da ich ja die Werte aus dem INK-Programm bereits auf meinem Terminal stehen habe. Wie  bekomme ich nun aber diese Werte in mein FHEM?

Gibt es vielleicht doch schon eine Lösung für Canon Drucker oder gibt es vielleicht einen Wink mit dem Zaunpfahl?

Gruß
Hauslaus

--- Ende Zitat ---
Es gibt mehrere Möglichkeiten, Werte aus einem Terminalbefehl an Fhem zu übergeben.
Z.B.:
- wenn Du schon ein HTTPMOD hast, kannst Du einfach per userReadings (siehe CommandRef) den system Befehl aufrufen
- CustomReadings Modul (siehe CommandRef)
- die sauberste (non blocking) Methode ist aus einem Skript auf system Ebene - Scheduling per cron - , die Werte mit nc und setreading zu setzen (entweder über den Telnet Port oder über HTTP). Viele Beispiele im Forum.
...

Hauslaus:
Hallo amenomade,

danke für die Antwort.

Ich habe bereits was mit HTTPMOD am laufen. Ich habe mir das Modul nochmals im CommandRef angesehen. Entweder verstehe ich es falsch oder ....

Anfangsbeschreibung von HTTPMOD (Googleübersetzung):

--- Zitat ---Dieses Modul bietet eine allgemeine Möglichkeit, Informationen von Geräten mit einer HTTP-Schnittstelle abzurufen und in Messwerten zu speichern oder Informationen an solche Geräte zu senden. Es fragt eine bestimmte URL mit Headern und Daten ab, die durch Attribute definiert sind.
Aus der HTTP-Antwort werden in Attributen benannte Messwerte mithilfe von Regexes, JSON oder XPath extrahiert, die ebenfalls durch Attribute definiert sind.
--- Ende Zitat ---

ZU Xpath steht hier (Googleübersetzung):

--- Zitat ---Analysieren von http / XML mit xpath

Eine weitere Alternative zum Regex-Parsing ist die Verwendung von XPath zum Extrahieren von Werten aus HTTP-Antworten.
Das folgende Beispiel zeigt, wie XML-Daten mit XPath-Strict oder HTML-Daten mit XPath analysiert werden können.
Beide funktionieren ähnlich und das Beispiel verwendet XML-Daten, die mit der Option XPath-Strict analysiert wurden: Wenn die XML-Daten in der HTTP-Antwort folgendermaßen aussehen:
<root xmlns: foo = "http://www.foo.org/" xmlns: bar = "http://www.bar.org">
.....

--- Ende Zitat ---

Also verlangt HTTPMOD doch immer HTML-Daten?

Die Ausgabe dieses auf meinen RaspberryPi installierten INK-Tool läuft ausserhalb des FHEM-System. Ist das mein Problem?

In Antwort 18 schreibt deudi:

--- Zitat ---Ein Canon Farb-Tintenstrahldrucker (MG8150) kann leider kein SNMP und die Webseite schweigt sich über den Tintenstand leider aus. Hier bin ich mit dem Tool "ink" fündig geworden.

--- Ende Zitat ---

Und dieses Tool installiert ich mit:
apt-get install ink

Und mit der Eingabe erhalte ich:
root@raspi-Heim:/home/pi# ink -b bjnp://192.168.178.89
ink 0.5.2 (c) 2015 Markus Heinz

Canon MX920 series

Black:                                  40%
Photoblack:                          60%
Yellow:                                 20%
Magenta:                              80%
Cyan:                                    0%

Die Eingabe HTTPMOD erwartet doch eine Eingabe nach dem Muster:
 http://xxx.xxx.xxx.xx/general/information.

Und nicht:
 ink -b bjnp://192.168.178.89

Kann ich mit HTTPMOD Daten von einem Nicht-FHEM-Tool abrufen bzw. auslesen?

Gruß
Hauslaus

Hauslaus:
#pah  Prof. Dr. Peter Henning

Als "New Member" sind wir angehalten uns einzulesen. Das tat ich. Ich habe auf der Suche nach einer Lösung u.a. diesen Beitrag im Gesamten gelesen. Da ich einen Pixma-Drucker besitze sehe ich in der Antwort 18 auch eine Teillösung für mich. Und wenn ein "Sr. Member" ein INK-Tool aufzeigt bin ich als ein "New Member" davon ausgegangen, dass es sich hierbei um ein allgemein bekanntes Tool handelt. Insbesondere wenn nur 18 Minuten nach diesem INK-Toolantwort ihre Antwort als "Hero Member" erfolgt. Ich hätte dieses Tool sonst gar nicht installiert.

Im übrigen habe ich keine Fehlermeldung und somit kann ich keine ordentliche Fehlermeldung abgeben. Dieses ING-Tool liefert eine perfekte Textausgabe die leider, wie von mir auch beschrieben, keine HTML Ausgabe liefert.

In meiner Frage bat ich nicht um eine Programmierung und ich habe nicht um eine weitere tiefere Unterstützung gebeten. Es war einfach nur eine Frage.

Auch ohne Programmierkenntnisse und mit meinem Grundschulenglisch läuft mein FHEM seit Jahren super und auch stabil. Ich habe hierfür viel aus diesem Forum mitgenommen und gelernt. Ich selber konnte leider bisher keinen Beitrag leisten da ich kein Profi bin und auch bestimmt kein Profi mehr werde. Das soll doch für FHEM auch keine Voraussetzung sein?

Mit dem Wunsch nach einem Zaunpfahl will ich keinen reizen und sollte aber bitte in keiner Beleidigung enden.

Gruß
Hauslaus

amenomade:

--- Zitat von: Hauslaus am 25 Oktober 2020, 20:56:31 ---

Kann ich mit HTTPMOD Daten von einem Nicht-FHEM-Tool abrufen bzw. auslesen?

Gruß
Hauslaus

--- Ende Zitat ---
Ja, mit einem userReading. Siehe Abschnitt userReadings in https://fhem.de/commandref_DE.html#readingFnAttributes, und https://fhem.de/commandref_DE.html#command für system Befehle.

Wenn Du schon ein HTTPMOD hast, der einige Daten aus der Webseite des Druckers holt, kannst Du darauf triggern, und im userReading deinen system Befehl aufrufen.

Aber wie gesagt, das sauberste ist, auf System Ebene, einen script laufen zu lassen (z.B. per cron), der die Daten an Fhem übergibt

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln