Modul Win SNMP

Huhu - irgendwie will das noch nicht so ganz.
Ohne Konvert:


Mit Konvert:

Hallo Swen,

wenn ich im Modul (toTimeSpan) aktiviere, bekomme ich in der Variable nur Tage. Ist ja auch eine „Integer“ Variable.
Lösche ich die Variable, legt das Modul ja eine neue an. Leider wird eine „Bool“ Variable angelegt.
Müsste aber eine „String“ sein. :slight_smile:

deaktiviere ich (toTimeSpan) und lösche die angelegte Bool Variable, wird eine Integer Variable angelegt. Was auch richtig ist.

Gruß

Hallo Swen,

habe heute versucht Daten von mein Samsung Drucker mit IPS abzufragen.
Der Drucker kann nur SNMPv3.
Im Drucker alles Eingestellt und die Daten auch im Modul eingetragen.

Sobald ich auf Test Klicke, bekomme ich eine Fehlermeldung:

drucker.PNG

03.03.2018 10:43:29 | TimerPool | Samsung C1860 (SyncData): <br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/var/lib/symcon/modules/SymconModule/SymconSmnp/module.php</b> on line <b>384</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/var/lib/symcon/modules/SymconModule/SymconSmnp/module.php</b> on line <b>460</b><br />

Kann man da was machen?

Gruß

1.du brauchst php mycrypt.
Ist eigentlich ein Standard von PHP. Scheinbar aber nicht bei Symcon.
Hat hier jemand schon mycrypt nachträglich installiert bei Symcon?
2. Das mit den Converter schaue ich mir noch einmal an.

Swen

mcrypt ist deprecated und sollte nicht mehr benutzt werden, ab PHP 7 wird das auch gar nicht mehr unterstützt also sollte man Alternativen verwenden z.B. OpenSSL

Mcrypt ist für PHP 7.1 schon abgekündigt gewesen und mit 7.2 nicht mehr verfügbar.
Das wird also spätestens mit dem Release von IPS 5 mit PHP 7.2 nicht funktionieren.
Alternative wäre dann eventuell libsodium, dies bringt IPS mit.
Michael

Ja muss ich prüfen ob ich das so abändern kann. Das wird aber frühsten ab April passieren.

Swen

So hab einen fix für das erstellen der Variablen mit Konverter „toTimeSpan“ erstellt.
Sollte jetzt eine String Variable angelegt werden.

Swen

Hallo Swen,

danke für die Mühe :smiley:
Funktioniert!

Gruß

Huhu - da ich grade auf Fehlersuche bei meinem instabilen IPS bin, wollte ich fragen ob man auch einen einfachen Ein/Aus Schalter für ein SNMP Gerät einbauen könnte. Ich müsste sonst wieder alles löschen um dieses Modul auszuschließen. :frowning:

Abschalten geht wenn du den Intervall auf 0 stellst.

Wenn du ein Modul löscht, bleiben Instanzen und Einstellungen erhalten!
Also nicht schlimm. Außer du löscht die Instanzen :wink:
Michael

Kann gerne am Wochenende noch eine Checkbox für Aktiv einbauen.

Swen

Huuhu, ich hab da mal ein kleines Problemchen, es ist nichts am Modul selber, sondern an einem Client, meinem Drucker. Hab es schon hier gepostet, aber vielleicht weiß ja einer hier warum das so ist? :slight_smile:
https://www.symcon.de/forum/threads/13374-Drucker-Status-auslesen?p=354894#post354894

Edit:
…siehe link… :stuck_out_tongue:

Nabend Jungens,

ich muss mich mal hier einklinken. Ich fange auch grade an mich mit dem Thema SNMP zu befassen und finde das Modul dafür klasse. Aber ein paar Fragen hab ich noch:

  • [li]Die Devices werden ja als Variable angelegt aber der Name ist die OID, das ist ja nicht sehr lautmalend wie habt Ihr das dann gemacht? Einen Link im Webfront und den entsprechend benannt? Oder kann man die Variable umbenennen?
    [/li][li]Es gibt bei Synology Übersetzungen für die Bedeutung von Werten Beispiel:
    [/li]Normal (1),
    Failed (2)
    Muss man sowas als eigenes Variablenprofil anlegen oder kann man sowas irgendwie mit in das Modul packen?

Hi,

die Variablen kannst du umbenennen :slight_smile:
ich habe für Variablen die ich brauche einfach ein Profil erstellt.


Gruß

Ah Ok danke für die Info. Dann werde ich mich mal an die Fleißarbeit machen

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Noch eine Frage, wie hast Du die Laufzeit so formatiert bekommen mit Tage Stunden Minuten?`
Ne Umwandlung in TimeSpan gibt immer eine Fehlermeldung.

Ach ja und wo bekommt man den Wert des gesamten, freien und belegten Plattenplatzes her. Den hab ich in den MIBs von Synology nicht gefunden.

Hi,

Noch eine Frage, wie hast Du die Laufzeit so formatiert bekommen mit Tage Stunden Minuten?`
Ne Umwandlung in TimeSpan gibt immer eine Fehlermeldung.

Das ist eigentlich im Modul integriert.

nas1.PNG

Ach ja und wo bekommt man den Wert des gesamten, freien und belegten Plattenplatzes her. Den hab ich in den MIBs von Synology nicht gefunden.

Bei mir läuft das über ein Script.

  • HDD Kapazität_ROH (1.3.6.1.2.1.25.2.3.1.5.51) gibt die Synology ein Integer wert aus.

Diesen Wert wird über ein Script in eine Float Variable geschrieben.

<?

$HDD_Total = GetValue(37358 /*[Modulreferenz\NAS\Synology\DS716+\HDD Kapazität_ROH]*/) * 4096 / 1024 / 1024 / 1024 / 1000 / 100 * 97.65 ;   

SetValue(18152 /*[Modulreferenz\NAS\Synology\DS716+\Speicher Gesamt]*/, $HDD_Total);

?>
  • Für Speicher Gesamt und Speicher Verfügbar ist es Ähnlich.

OID für Speicher Benutzt (1.3.6.1.2.1.25.2.3.1.6.51)

Script:

<?

$HDD_Benutzt1 = GetValue(23923 /*[Modulreferenz\NAS\Synology\DS716+\Speicher Benutzt_ROH]*/);
$HDD_Benutzt2 = ($HDD_Benutzt1 * 4096) / 1024 / 1024 / 1024 / 100 * 100 ; 

SetValue(38786 /*[Modulreferenz\NAS\Synology\DS716+\Speicher Benutzt]*/, $HDD_Benutzt2);

//Speicher Verfügbar

$speicher_gesamt = GetValue(37358 /*[Modulreferenz\NAS\Synology\DS716+\HDD Kapazität_ROH]*/);
$speicher_verf = $speicher_gesamt - $HDD_Benutzt1;
$frei = $speicher_verf * 4096 / 1024 / 1024 / 1024 / 100 / 1000 * 97.65; 


SetValue(25535 /*[Modulreferenz\NAS\Synology\DS716+\Speicher Verfügbar]*/, $frei);
?>

Ist nicht meine Beste Arbeit, aber Funktion ist da :smiley:

Hoffe konnte die weiter Helfen :slight_smile:

Gruß

Ah ja, dss hilft mir weiter.

Aber wie gesagt wenn ich die Wandlung im Modul mit ToTimeSpan mache wirft das Modul einen Fehler.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Hi,

wird ohne ToTimeSpan aktivierung im Modul auch ein Fehler Angezeigt?

Wenn du keine Fehler bekommst, kannst du deine Zeit auch über ein Script schleifen :slight_smile:

<?

$ticks = GetValue(30085)-20.35;


$secs = $ticks / 100;
$days = floor($ticks/8640000);

$hours = date("H:i:s",$secs+strtotime("1970/1/1"));  

SetValue(37229, $days. " Tage ". $hours);
?>

Gruß