NEWS
SNMP Adapter / Lexmark CS720
-
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Aber mit dem a) Verhaten kann ich im Prinzip auch leben - der Datenpunkt ist dann halt mehr oder weniger sinnfrei da er immer "true" liefert.
welcher DP ist das denn genau?
ist das vielleicht der Hinweis, dass der Adapter ordnungsgemäß mit dem Controller verbunden ist?@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Bezüglich der Fehlermeldungen bei abgeschaltetem Drucker
die habe ich nicht.
da bliebe natürlich die Frage nach den Versionen der üblichen Verdächtigen.
-
@homoran said in SNMP Adapter / Lexmark CS720:
welcher DP ist das denn genau?
ist das vielleicht der Hinweis, dass der Adapter ordnungsgemäß mit dem Controller verbunden ist?Der DP nennt sich info -> connection. Ich häng hier mal die Objektdaten an. Ev. hast steh ich ja wirklich auf der Leitung und der Datenpunkt bedeutet ganz was anders.
{
"_id": "snmp.0.info.connection",
"type": "state",
"common": {
"role": "indicator.connected",
"name": "If connected to device",
"type": "boolean",
"read": true,
"write": false,
"def": false
},
"native": {},
"from": "system.adapter.snmp.0",
"ts": 1644779429049,
"user": "system.user.admin",
"acl": {
"object": 1636,
"state": 1636,
"file": 1632,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}@homoran said in SNMP Adapter / Lexmark CS720:
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Bezüglich der Fehlermeldungen bei abgeschaltetem Drucker
die habe ich nicht.
da bliebe natürlich die Frage nach den Versionen der üblichen Verdächtigen.
Wenn du die Version des snmp Adapters meinst, die hab ich schon im ersten Post angegeben:
snmp V0.5.0admin fehlt dort, der ist V5.2.3
Wenn noch Versionsinfos benötigt werden, bitte um Rückmeldung bzw. gibts eine Möglichkeit da eine Gesamtliste der installierten Versionen zu erstellen damit ich nicht unnötig Arbeit mache durch mangelnde Infos.
Danke für die Hilfe.
McMP.S: Sorry, wenn ich heute nicht mehr antworte - muss in sleep mode wechseln
-
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
role": "indicator.connected",
jepp, das ist die Ampel in den Instanzen.
js- controllee, node und npm wären noch interessant
-
@mcm57 Da ich mit dem SNMP Adapter leider auch nur Probleme hatte - überwache ich meinen Drucker mit den SNMP Nodes in Node-RED.
Ich habe zwar einen HP - aber bin mit den generischen OID bislang gut gefahren - und scheint auch für andere Modelle zum Teil zu funktionieren.
https://forum.iobroker.net/topic/44337/hp-tintenfüllstände-mit-nodered-und-snmp
-
@homoran said in SNMP Adapter / Lexmark CS720:
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
role": "indicator.connected",
jepp, das ist die Ampel in den Instanzen.
666666Ok, dann ist Punkt a) ein NoBug vs. Anfängerfehler. Sorry und Danke
@homoran said in SNMP Adapter / Lexmark CS720:
js- controllee, node und npm wären noch interessant
pi@pi4:~ $ npm -v
6.14.16pi@6666pi4:~ $ node -v
v14.19.0
pi@pi4:~ $ nodejs -v
-bash: nodejs: command not foundBezüglich js-controller bin ich nicht sicher wie ich den finde. Sorry.
In der Anzeige von Hosts steht die Version 3.3.22. Bin aber nicht sicher welche Version das ist und ob das den Modul js-controller betrifft.Schöne Grüße
McM
Nachtrag / Ergänzung
Ich hab jetzt mal versucht den Source des SNMP Adapters zu lesen.
Ich hab zwar einige Jahre (besser Jahrzehnte) Programmiererfahrung - allerdings in Pascal, C, C++ und Perl. JS kenn ich nicht wirklich und kann es nur erahnen was der Code bedeutet.Aber wenn ich mir den Source hier
https://github.com/iobroker-community-adapters/ioBroker.snmp/blob/master/main.js
ansehe, dann sieht diese Stelle
function readOids(session, ip, oids, ids) { session.get(oids, function (error, varbinds) { if (error) { adapter.log.error('[' + ip + '] Error session.get: ' + error); } else { for (var i = 0; i < varbinds.length; i++) { if (snmp.isVarbindError(varbinds[i])) { adapter.log.warn(snmp.varbindError(varbinds[i])); adapter.setState(ip.replace(/\./gi, "_") + '.' +ids[i], null, true, 0x84); } else { adapter.log.debug(ip.replace(/\./gi, "_") + '.' +ids[i]); adapter.setState(ip.replace(/\./gi, "_") + '.' +ids[i], varbinds[i].value.toString(), true); adapter.setState('info.connection', true, true); } } } }); }
für mich so aus als würde JEDER Fehler der bei der Ausführung von "session.get" als Fehler gelogged werden. Ich kann hier keine Behandlung eines Timeouts erkennen - obwohl bei einem abgeschakteten Gerät ein Timeout Error doch eher wahrscheinlich ist. (Ich geb zu, ich hab den JS Modul SNMP noch nicht gesucht und dessen Doku nicht gelesen).
Gibts eigentlich jemand der den SNMP Adapter wartet? Die letzen (menschlichen) Änderungen sind ja schon einige Zeit her? Theoretisch könnte ich versuchen da was anzupassen - aber ich kenn mich mit git nicht aus (bin beruflich cvs user) udn außerdem müßte das wohl jemand mit Erfahrung reviewen bevor ich was zurückstelle was mehr schadet als nutzt.
McM
-
Ich hab jetzt mal ein wenig mit dem Code experimentiert.
a) Ja, wenn ich den Timeout Fehler abfange und in diesem Fall keine Meldung ausgebe, dann tut der Adapter was ich erwarte
b) Natürlich sollte in diesem Fall einmalig (!) eine Info od. Warning ausgegeben werden.
c) Was mir noch aufgefallen ist, ist die Tatsache dass manche OIDs scheinbar "flüchtig" sind. Ich habe bei meinem Lexmark 4 OIDs für Alert Meldungen. Diese funktionierten einwandfrei - bis ich die leer Kartusche ersetzt habe. Seither liefert mir die 4te OID "nicht existent" (oder so ähnlich) zurück. Na ja - den Alarm gibts auch nicht mehr. Nur Grund für eine Fehlermeldung ist das eigentlich auch nicht. Muss mal schaun, ob ich das dem Adapter auch beibringen kann.
d) Das setzen / löschen von info.connection würde auch funktionieren und die Instanz bei nicht erreichbarkeit des Druckers auf Warnung schalten. Nur das ist definitiv nicht sinnvoll, da ja eine SNMP Instanz mehrere IP Addressen verwalten kann von denen auch nur ein Teil unerreichbar sein kann. Was ist da die übliche Vorgangsweise in iobroker Adaptern? Kann / soll man da einen Datenpunkt <ip>.ready anlegen und verwenden? Wie würde der üblicherweise heißen (ready, active, ok, ... ???)
McM
-
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Ich hab jetzt mal ein wenig mit dem Code experimentiert.
a) Ja, wenn ich den Timeout Fehler abfange und in diesem Fall keine Meldung ausgebe, dann tut der Adapter was ich erwarteDas ist doch toll.
dann mach doch direkt einen Pull-Request.@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Das setzen / löschen von info.connection würde auch funktionieren und die Instanz bei nicht erreichbarkeit des Druckers auf Warnung schalten
wie gesagt ist das der DP zur Überprüfung der Instanz - nicht eines Gerätes!
-
@homoran said in SNMP Adapter / Lexmark CS720:
Das ist doch toll.
dann mach doch direkt einen Pull-Request.Hat hier jemand eine Anleitung GIT for Dummies? Ich bräuchte eine Schritt für Schritt Anleitung. Ich hab zwar schon versucht GIT zu verstehen - aber ich steh noch völlig auf der Leitung was die Begriffe bedeuten. Optimal wäre ein Vergleich CVS / GIT - auch wenn mir klar ist, dass es da grundlegende Unterschiede gibt. (Link genügt natürlich auch).
Ich nehme an dass jede Änderung jedenfalls von jemand reviewed würde bevor die Änderung in ein offizielles Repo wandert. Ich fühl mich technisch noch nicht reif um hier ggF. jede Menge ioBroker Installationen zu gefährden und hätt auch kein Problem, wenn wer meine Änderung mit einem (höflichen) "Blödsinn, so bitte nicht" ablehnt.
Und gibts wo eine Liste was vor einem Pull Request noch zu erledigen ist, z.B. Releasenotes, Versionnummern erhöhen, ... Oder reichts mal den Code (main.js) einzuchecken - der Rest erfolgt ggF durch eine Maintainer-Team ?
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Das setzen / löschen von info.connection würde auch funktionieren und die Instanz bei nicht erreichbarkeit des Druckers auf Warnung schalten
wie gesagt ist das der DP zur Überprüfung der Instanz - nicht eines Gerätes!
OK, ergo lass ich den Punkt eh in Ruhe
Im zweiten Teil meines letzten Postings hab ich aber auch noch gefragt:
Kann / soll /darf man einen Datenpunkt <ip>.ready (oder so) anlegen um den Status der Bindung anzuzeigen? Wie würde der üblicherweise heißen (.ready, .active, .ok, ... ???)McM
-
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Kann / soll /darf man einen Datenpunkt <ip>.ready (oder so) anlegen um den Status der Bindung anzuzeigen?
was meinst du denn damit?
du kannst so viele eigene Datenpunkte unter 0_userdata.0 oder javascript.0/1... anlegen wie du willst.
Aber ich denke du meinst einen datenpunkt, der vom SNMP Adapter angelegt wird, wenn ein client nicht erreichbar ist?
Und das für jeden erdenklich möglichen Client? -
@homoran said in SNMP Adapter / Lexmark CS720:
Und das für jeden erdenklich möglichen Client?
Ja das meine ich.
Derzeit legt der SNMP Adapter Datenpunkte der Form an:
snmp.<instanz>.<ip>.<Beschreibung der OID>
d.h. je OID einen Datenpunkt.Ich überlege nun einen Datenpunkt JE IP anzulegen in der Form
snmp.<instanz>.<ip>.active (oder eben ok, ready, ...)Die Frage war nun, ob dies in die Philosophie von ioBroker passt und wenn ja, welcher Name hier üblich wäre. Derzeit kann ich ja nicht wirklich sehen ob die IOD Datenpunkte überhaupt aktuell sind. Wenn ich den Drucker abschalte sehe ich noch immer die alten Werte (was bei einem Drucker gut ist). Wenn ich aber einen Network switch abfrage würde ich gerne wissen ob der Durchsatz passt - und das tut er nicht, wenn der Switch offline geht
McM
-
@mcm57 sagte in SNMP Adapter / Lexmark CS720:
Die Frage war nun, ob dies in die Philosophie von ioBroker passt und wenn ja,
das wäre zumindest aus meiner Sicht (teilweise) sinnvoll.
Allerdings fängst du ja die Feler bei Nichterreichbarkeit schon ab.Mit so einem Datenpunkt könnte man dann aber "erklären" warum der last timestamp so lange her ist.
Wenn du das nicht selber machen willst/kannst, mach doch einen Feature Request per Issue
-
Ok,
Ich werd das mal angehen. Dauert aber sicher ein wenig. Ich will mich noch vorher in die ioBroker Richtlinien einlesen und vor allem den js Code wirklich verstehen bevor ich was committe.
Ich meld mich wenn ich Fragen habe bzw. wenn m.E. was fertig ist.
DANKE für die Hilfe / Rückmeldungen
McM -
Nur falls wer zukünftig über diesen Thread fällt:
ioBroker.snmp v0.6.1 hat nun das geänderte Timeouthandling drinnen. Version steht zZ als PR an. Wers schon vorab haben will: github mcm1957\ioBroker.snmp. Use at own risk.