NEWS
[Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates
-
Herzlichen Dank für eure ausführlichen Antworten.
Ich dachte bisher forken ist nur was wenn man "abzweigen" will, sprich für die Zukunft 2 getrennte Wege gehen will. Wieder was gelernt.
Ich werd das dann mal so machen wie du beschrieben hast. Vor der commandline hab ich keine Angst wenn ich es halbwegs verstehe. Aber das Verstehen hilft bei GUI noch mehr.
Bei Visual Studio Code bin ich bisher immer gescheitert was zum Laufen zu bringen. Werd mich aber nochmal intensiver damit beschäftigen.
Ich plane sowieso den snmp Adapter echt zu forken (z.B. als snmp-plus) da ich hier zB. die Konfiguration ob ich snmp V1 / V2 / V3 verwenden will einbauen will. Außerdem passt die Konfig m.E. nicht 100 %. Eigenlicht sollte man x Geräte (=IPs) anlegen können und dann je IP y OIDs. Ich seh das als Übrungs / Scchulungsprojekt. Ob dass dann public wird wird sich zeigen.
Ich scheiter nur bei den ersten Experimenten mit Admin5/jsonConfig dran dass es nested Tabellen scheinbar nicht gibt (Admin crashed wenn ich sowas versuche) und dynamisch erscheinende Tabs auch nicht verfügbar sind. Und eine Dropdownliste die ihre Auswahl von eienr anderen Tabelle bekommt geht scheinbar auch nicht. (Und nein, manuelles Ausprogrammieren im GUI Bereich übersteigt meine Kenntnisse derzeit sicher). Auber dies Gui Fragen sind ein anderes Thema. Da such ich halt noch mal und frag wenn ich ein wenig mehr verstehe (oder glaube zu verstehen). Leider ist die Doku für Anfänger recht schwach. Aber ich schreib auch nicht gern Doku :-).
McM
-
@mcm57 sagte in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
dran dass es nested Tabellen scheinbar nicht gibt (Admin crashed wenn ich sowas versuche) und dynamisch erscheinende Tabs auch nicht verfügbar sind
Das klingt für mich nicht nach einer "einfachen Config", für die jsonConfig gedacht ist. Das kannste entweder mit HTML/MaterializeCSS/JS "händisch" machen, oder per React.
Bei Visual Studio Code bin ich bisher immer gescheitert was zum Laufen zu bringen. Werd mich aber nochmal intensiver damit beschäftigen.
Was meinst du mit "zum Laufen bringen"? Inzwischen gibts den https://github.com/ioBroker/dev-server, der dir das Debuggen im ioBroker-Kontext deutlich vereinfacht.
-
@mcm57 said in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
Ich plane sowieso den snmp Adapter echt zu forken (z.B. als snmp-plus) da ich hier zB. die Konfiguration ob ich snmp V1 / V2 / V3 verwenden will einbauen will. Außerdem passt die Konfig m.E. nicht 100 %. Eigenlicht sollte man x Geräte (=IPs) anlegen können und dann je IP y OIDs. Ich seh das als Übrungs / Scchulungsprojekt. Ob dass dann public wird wird sich zeigen.
McM
Wenn du den Adapter ohnehin grundlegend überarbeiten willst, kann ich dir nur empfehlen statt alten Code zu forken gleich einen "sauberen" neuen & "leeren" Adapter mit https://github.com/ioBroker/create-adapter zu erstellen, und dort dann mittles SNMP Lib deine Lösung zu implementieren. Durch den Adapter-Creator kriegst du extrem viele Sachen Out-of-the-Box, z.B. Github Build & Release Workflows inkl. Standard Testcases, AlCalzone's Release Script, Dependabot, die du sonst früher oder später vermissen wirst und nachträglich ans Laufen kriegen musst. Zudem hast du da Code-seitig ein einheitliches Grundgerüst, das viele ioBroker Adapter verwenden und du so ggf. auch mal in den Quellcode von anderen Adaptern "zur Inspiration" reinschauen kannst.
Der aktuelle Adapter scheint ja code-seitig nicht besonders viel zu machen und 90% würdest du wahrscheinlich sowieso umschrieben, also könnte der "frische Start" schon sinnvoll sein.
-
ich für meine Teil würde mich freuen wenn es endlich die Funktion für Geräte gibt die nicht 24h eingeschaltet sind.
-
Ok - ich versuch zwar grad eine ganz neue Version zu machen. Ist aber mehr ein Lernprojekt zur Zeit. Vor allem die jsonConfig.json tut im Bereich der Tabellen nicht wirklich immer das was ich erwarte. Ein Teil dürften Fehler sein (zumindest wurden die Meldungen als Bug mal angenommen) - ein Teil aber sicher Fehlbedienungen.
Ich werd aber mal den jetzigen snmp mit der Funktion für non-24h Geräte im Laufe der Woche uploaden. Ev. kannst du ihn dann ja mal in der Beta testen.
McM
-
Ja ich versuch jedenfalls einen neuen Adapter umzusetzen. Ich seh das zur Zeit als Lernprojekt.
@dev-server
Ja den versuch ich zu verwenden. So ganz tut er aber nicht was ich will :-).@neu
Ja ich hab mal einen neuen Adapter mittels
npx @iobroker/create-adapter
angelegt.Das geht an sich ganz gut. Dvp versuch / mach ich unter Windows. Sollte ja an sich kein Problem sein. Config versuch ich mit jsonConfig.json zu machen. Meine html Kenntnisse enden bei einfachem html. Und mangels echter Doku kann ich in css sicher nichts brauchbares erzeugen - dazu reicht einfach nicht, dass man die drei Buchstaben kennt. Und react sagt mir nichts.
Mit jsonConfig.json kann ich mir vorstellen das Ganze mit 2 Tabs zu lösen
- Tab - Liste der Geräte (d.h ip, snmp v1/2/3, timeouts etc
- Tab - Liste der OIDs mit Querverweis zum Gerät (wahrscheinlich über eine "id" Nummer).
Nur leider gibts bei den Tabellen noch Probleme.
a) width attribute funktioniert nicht mit % (bzw. nur wenn nach dem % ein Leerzeichen eingefügt wird)
b) Default function funktioniert nicht
c) Mit der validate funtkion komm ich auch nicht auf gleich.Zu a) und b) gibts Issues in iobroker.admin.
Die Validate wird zwar aufgerufen und wenn man true retourniert meldet sie auch OK. Aber jeder Versuch auch Daten zuzugreifen liefer immer false retour. Wenn da wer ein Beispiel hat wie das aussehen könnte wär ich dankbar.Aber wie gesagt - das Ganze ist mal Lernphase. Immerhin kann ich zwar c programmieren und weiß auch was tasks od. tcp io funktionen, mutices od semaphoren sind - aber javascript ist mir neu und VS Code kenn ich nur dem Namen nach. Ergo jede Menge zu lernen.
Und gleich noch ne konkrete Frage:
Wo sehe ich console.log output? In welche Datei schreibt das das ioBroker system ??? Ok, debugger sind gut - aber manchmal helfen "juhu" Debugegr schneller zum Zeil - nur müßte man den Output halt finden :-). (Konkret: wenn ich z.B. als validate function console..log("juhu") angebe dann find ich nirgends ein juhu :-(.McM
-
@mcm57 sagte in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
Wo sehe ich console.log output?
In welche Datei schreibt das das ioBroker system ???Wenn du dev-server nutzt, in folgendem Unterverzeichnis deines Projekts:
.dev-server/default/log
.
Bin mir aber gerade nicht sicher, ob da nicht nur die "richtigen" iobroker logs landen, also die perthis.log.info(...)
erstellt wurden. -
@alcalzone said in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
@mcm57 sagte in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
Wo sehe ich console.log output?
In welche Datei schreibt das das ioBroker system ???Wenn du dev-server nutzt, in folgendem Unterverzeichnis deines Projekts:
.dev-server/default/log
.
Bin mir aber gerade nicht sicher, ob da nicht nur die "richtigen" iobroker logs landen, also die perthis.log.info(...)
erstellt wurden.Ok - die log.info / log.warn etc. stehen da definitiv drinnen.
ob conloge.log rein geht muss ich mal testen. Ev. liegt es ja auch darin, dass die validator Funktion lt. jsonConfig.json nicht im Kontext meines Adapters sondern im Prozesskontext des Admin Adpaters ausgeführt wird. Nur wo loggt der hin? Auch ins .dev-server/default/log ? -
@mcm57 sagte in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
Nur wo loggt der hin?
Ich würde mal ganz doof vermuten in das Browser-Log, welches du in den Developer tools (F12) sehen kannst.
-
@cash said in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
ich für meine Teil würde mich freuen wenn es endlich die Funktion für Geräte gibt die nicht 24h eingeschaltet sind.
Ich habe´die Modifikationen mal auf github gestellt.
Du solltest den modifizierten Adapter von https://github.com/mcm1957/ioBroker.snmp installieren können. Er sollte sich als 0.6.0-beta identifizieren.Die Releasenotes hab ich zwar eingetragen - aber im Admin sieht man sie nicht. Ich vermute, dass der Admin immer auf der "offizielle" url nachsieht. Die hab ich in io-package.json nicht umgestellt.
Falls du dich traust den Adapter zu testen gib bitte ein kurze Feedback. In jedem Fall sicher deine alte Config vorher. Es wurde zwar nichts (bewußt) an der Config geändert sodass ein downgrade auf die offizielle Version funktionieren sollte - aber sicher ist sicher.
Getestet hab ich mit einem CS510 Lexmark Laser und einem Netgear GS308T Switch (wobei dieser 24h läuft
McM
P.S. Wie ich dann einen Pull Request mach frag ich wenn klar ist, dass die Änderung passt.
Es gibt lt. Git Repo noch jede Menge branches von dependabot - da weiß ich auch nicht ob da was rein sollte (und wenn ja wie ...) -
@mcm57 Das testen war leider schnell vorbei. Keine Verbindung… Installation lief ohne Fehler durch aber der Adapter wird nicht grün. Derzeit habe ich nur die 24/7 Geräte in der Liste aktiv.
-
@mcm57 Seltsam er scheint die Werte von dem NAS zu aktualisieren. Ich gucke gleich nochmal wenn ich Zeit habe muss jetzt erstmal in die Küche…
-
@mcm57 Also nach der Pause war der Adapter jetzt grün. In der Zwischenzeit habe ich dann mal den Drucker angeschaltet und im Adapter den Drucker aktiviert. Nach dem Start ist der Adapter wieder gelb aber die Datenfelder wurden sofort von den Geräten abgerufen. Ich vermute wenn ich jetzt etwas warte wird der Adapter auch wieder grün. Könnte mit der großen Pause bei mir zwischen den Abrufen zusammen hängen. Vielleicht war das vorher auch schon so aber ich habe da nie drauf geachtet zumal ich ioBroker tagsüber eigentlich nie neu starte. Ich habe im Adapter 10 Minuten eingestellt.
Ich warte jetzt nochmal 30 Minuten und schalte dann den Drucker aus dann sollte ich ja hooffentlich kein zugemültes Log mehr sehen…
-
@mcm57 so also der Adapter wurde dann irgendwann wieder grün. Also Drucker aus und es kam im Log genau ein warn das die IP nicht erreichbar. Der Info Datenpunkt „connection“ von der IP bleibt aber auf true? Ich hätte vermutet der wird false? Ansonsten sieht alles gut aus. Wenn ich mir direkt was wünschen dürfte?
Bitte kein warn wenn Gerät nicht erreichbar. Ist eine ganz normale Info. Wer überprüfen will ob ein Gerät erreichbar ist kann den PING Adapter nutzen und sich dann z.B. bei den Geräten, die nie nicht erreichbar sein sollen eine Push oder was auch immer schicken lassen.
Der zweite Wunsch wäre, dass man das Abrufintervall pro IP festlegen kann.Auf jeden Fall danke das Du Dich den Adapter mal annimmst.
-
@cash said in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
@mcm57 Das testen war leider schnell vorbei. Keine Verbindung… Installation lief ohne Fehler durch aber der Adapter wird nicht grün. Derzeit habe ich nur die 24/7 Geräte in der Liste aktiv.
Der Adapter wird grün sobald zumindest ein Gerät eine Verbindung hat, gelb wenn keines mehr eine Verbindung hat. Allerdings wird diese Umschaltung über einen eigenen Intervallthread (Intervalltimer) gesteuert der über "Poll Intervall" geschalten wird. Wenn du ein längeres Poll intervall hat, kann das schon mal dauern. Ich werd das mal hardcoded auf ein geringeres Intervall stellen.
@cash said in [Anfänger] SNMP Adapter - Fragen Veröffentlichung v Updates:
@mcm57 so also der Adapter wurde dann irgendwann wieder grün. Also Drucker aus und es kam im Log genau ein warn das die IP nicht erreichbar. Der Info Datenpunkt „connection“ von der IP bleibt aber auf true? Ich hätte vermutet der wird false? Ansonsten sieht alles gut aus. Wenn ich mir direkt was wünschen dürfte?
Bitte kein warn wenn Gerät nicht erreichbar. Ist eine ganz normale Info. Wer überprüfen will ob ein Gerät erreichbar ist kann den PING Adapter nutzen und sich dann z.B. bei den Geräten, die nie nicht erreichbar sein sollen eine Push oder was auch immer schicken lassen.
Der zweite Wunsch wäre, dass man das Abrufintervall pro IP festlegen kann.Auf jeden Fall danke das Du Dich den Adapter mal annimmst.
ad warning: Ok, das kann ich auf info umstellen wenn das sinnvoller erscheint.
ad Abruf Intervall pro IP: Das hab ich auf der Liste für eine Reimplementierung (Arbeitstitel snmp-plus). Sorry, aber für den derzeitigen snmp Adapter bau ich das wahrscheinlich nicht mehr ein.
ad per IP Info: Ja die sollte false werden, wenn der Drucker abgeschaltet ist. Schau mir das nochmal an.
-
@mcm57 Wenn ich mal irgendwann den snmp-plus testen soll kannst Du dich gerne melden
Die Beta läuft weiterhin sehr unauffällig für mich. Also alles so wie es sein soll. -
Hi
Ich hab deine letzten Anmerkungen einfließen lassen.- Timeout ist nur mehr eine Info
- Update des info.connected sollte nun rasch(er) erfolgen. Ich triggere dies nun mittels setImmidiate und hab den Timer nurmehr als Sicherheitsschleife laufen
- Beim Setzen des info.connected je IP hab war die initialisierung unsauber. Je nachdem ob beim Start des Adapters das Gerät erreichbar war oder nicht konnte da ein falscher Wert sichtbar sein. Das sollte nun auch behoben sein.
- Ich hab die Korrekturen der Abhängigkeiten die dependabot gemeldet hat rein gemerged.
Falls du oder sonst wer Lust auf einen weiteren Test hat:
https://github.com/mcm1957/ioBroker.snmp/tree/V0.6.1
McM
-
@mcm57 von meiner Seite läuft der Adapter unauffällig. Die Stati passen. Sieht alles sehr gut. Vielen Dank.
-
@cash Ein wenig OT:
Ich habe den bisherigen SNMP Adapter wieder deaktiviert, weil durch ihn die Platten der Syno nicht mehr in den Sleep gingen.
Hast du da etwas vergleichbares mit dem neuen Adapter? -
@homoran Naja ist ja eigentlich logisch. Ich habe einen Intervall von 10 Minuten eingestellt und somit erfolgt logischerweise auch alle 10 Minuten der Zugriff und kann halt nicht schlafen. Da mein NAS schon zig Jahre nicht mehr schlafen kann ist es mir egal.
Angefangen hat alles mit ccu-historian und damit war es mit sleep der vorher immer funktionierte vorbei. Mittlerweile läuft ioBroker auf der Syno und auch damit gibt es kein schlaf. Kann Dir also nicht wirklich helfen.