NEWS
Script: HP-ILO 4 Abfrage Temperaturen und FanSpeed
-
Hallo zusammen,
ich nutzte lange den HP-ILO Adapter um meine beiden Server auszulesen.
Der Adapter wird leider nicht weiter geplegt (letze Änderung vor 5 Jahren).Ich habe nun dazu ein Javascript erstellt, welches das gleiche tut.
Für diejenigen die den Adapter ebenfalls vermissen vielleicht eine Alternative.
Einfach in Javascript reinkopieren und im iobroker Axiox istallieren. Ohne Axios wird das Script nicht funktionieren.Script:
Axios installieren:
auf iobroker per ssh einloggenper
cd /opt/iobroker/node_modules/iobroker.javascript
ins richtige Verzeichnis welchseln und dann per:
sudo npm install axios
Axios installieren, danach javascript neu starten:
iobroker restart javascript
Danach das Script starten.
fertigGruß
LuciforKünftige Änderungen hier:
Update: 29.06.2025 12:30
Das Script ruft nun alle verfügbaren Daten aus dem Server ab.
Voraussetzung ist ILO 4 Version 2.81 (also die letzte die mit der Service DVD kam)
Das Script speichert BEnutzername und Kennwort im Klartext, das muss dir bewusst sein!Erfolgreich abgerufen wird:
BIOS
Physische DISKS
FANS
FIRMWARE
NETWORK
POWER (Consumption only)
RAID Konfiguration
SMART
SYSTEM
TEMPERATURENUpdate: Bei überschreiten von 70 Grad der CPU´s oder bei Ausfall eines PSU wird ein Telegram abgesetzt und eine Alexa Ansage getätigt. (Abschaltbar)
-
Sehr cool.
Habe ich neulich mal über snmp probiert,allerdings nicht alles hinbekommen wie ich wollte.Bin gespannt, was alles noch mit uns Script kommt. Ilo kann ja einiges ausgeben. Werte zu den HDDs bzw SSDs fände ich noch sehr interessant.
Werde das Script die Tage mal testen.
P. S.
Reicht es nicht axios in der Javascript Instanz als Modul hinzuzufügen? -
Axios in der Java Instanz ist ausreichend, ich habs nicht im iobkroker gefunden, durch die Pfadangabe ist es aber das gleiche und wurde bei mir als Modul zu Javascript installiert.
ich schau mal was ich noch alles aus dem Prolianten herauskitzeln kann..
-
Cool^^.
Wir was gibt man das pollinterval an wenn man unten den Trigger auf alle 2min stehen hat?
Finde im Script garnicht, dass das Intervall verwendet wird. -
hier:
// === Erstaufruf + Intervall readILO(); schedule('*/2 * * * *', readILO); // alle 2 Minuten
Klappt (zumindest bei mir)
-
-
Denkfehler während des Scriptens. Oder im Laufe des Scripts die Strategie geändert.
Ich bin kein Programmierer und mach das nicht so oft, und brauche ewig dafür, aber nur so lernt man. -
Ich würde es garnicht hinbekommen.
Zum Glück gibt's Blockly
Oder das Forum und ChatGPT wenn es JS sein muss. -
Eingangspost aktuallisiert.
Script angepasst und getestet. -
Meine (unfertige) VIS zum Server sieht so aus:
-
Teste es morgen.
Hab ein älteres 4er Ilo und ein neueres von vor ca 2 Jahren. Ka welche Version das ist.Das ist meine bisherige Übersicht. Mobil optimiert.
-
Du scollst zu schnell, das ist nix für meine alten Augen..
-
Neu hochgeladen mit optimierung für die alten Augen^^.
-
Script läuft auf dem ersten Server gut und ruft ordentlich Daten ab.
iLO 4 v2.61Etwas viel logging ist noch drinnen, liegt aber vermutlich noch an der Testversion.
Bekomme aber bei jedem Durchlauf folgende Fehler ausgeworfen:
javascript.0 2025-06-30 09:16:02.143 warn at processImmediate (node:internal/timers:454:9) javascript.0 2025-06-30 09:16:02.143 warn at runNextTicks (node:internal/process/task_queues:60:5) javascript.0 2025-06-30 09:16:02.143 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-06-30 09:16:02.143 warn at Object.<anonymous> (script.js.Eigene_Scripte.ilo4:255:25) javascript.0 2025-06-30 09:16:02.143 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20) javascript.0 2025-06-30 09:16:02.137 warn You are assigning a object to the state "javascript.0.ilo4-testing.bios.links" which expects a string. Please fix your code to use a string or change the state type to object. This warning might become an error in future versions.
EDIT:
Den anderen Server habe ich nun auch getestet.
Auf ilo5 2.72 klappt es teilweise.
Mache Werte werden befüllt, manch andere werden falsch befüllt.javascript.0 11:35:32.719 info registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions javascript.0 11:35:34.489 info Thermal-Daten erfolgreich abgerufen. javascript.0 11:35:34.489 error Fehler beim Abrufen der Thermal-Daten: Cannot read properties of undefined (reading 'trim') javascript.0 11:35:35.710 info System Data erfolgreich abgerufen. javascript.0 11:35:36.878 info PSU Data erfolgreich abgerufen. javascript.0 11:35:37.533 info Firmware Data erfolgreich abgerufen. javascript.0 11:35:37.951 info Network Data erfolgreich abgerufen. javascript.0 11:35:38.762 info 🧬 BIOS-Felder: • @odata.context: /redfish/v1/$metadata#Bios.Bios • @odata.etag: W/"B2467190023E121212858C6490CB8F5B" • @odata.id: /redfish/v1/systems/1/bios/settings/ • @odata.type: #Bios.v1_0_0.Bios • AttributeRegistry: BiosAttributeRegistryU41.v1_2_68 • Attributes: [object Object] • Id: settings • Name: BIOS Pending Settings javascript.0 11:35:38.763 info BIOS-Settings erfolgreich abgerufen. javascript.0 11:35:38.770 warn at Object.<anonymous> (script.js.Eigene_Scripte.ilo5:255:25) javascript.0 11:35:39.228 info Disks Data erfolgreich abgerufen. javascript.0 11:35:39.228 warn Keine PhysicalDrives-Verlinkung gefunden. javascript.0 11:35:39.575 info Raid Data erfolgreich abgerufen. javascript.0 11:35:39.575 warn Keine LogicalDrives-Verlinkung gefunden.
-
Hey,
ich habe anhand der Refence zu ILO 4 das ganze für die V2.81 getestet, eine andere ILO Version habe ich nicht.
Die ILO 5 sollte garnicht laufen, da dort die API nach den Refenzen ganz anders funktioniert.
Wie du siehst sind schon zwischen 2.6x und 2.8x gravirende Unterschiede.
Meine beiden Server (je mit V2.81) geben einwandfrei alle Daten Preis.
Hast du ILO Adv. Lizenzen?
Vielleicht mal up auf 2.81?ILO 4 Refences:
https://hewlettpackard.github.io/ilo-rest-api-docs/ilo4/P.S. Ich habe noch einen DL360G6 8HE hier rumfliegen, ich habe gerade Lust das zu einem Proxmox Backup Server zu machen, aber das würde witzig werden, ILO -1 läuft nur mit einem gammeligen Windows XP. Auf neuen Browsern gibts nichtmal mehr eine Verbindung.
-
@lucifor1976 sagte in Script: HP-ILO 4 Abfrage Temperaturen und FanSpeed:
Hast du ILO Adv. Lizenzen?
Was ist das?
Vielleicht mal up auf 2.81?
Das ist ein alter Server auf der Arbeit wo ich Proxmox drauf gepackt habe. Die 2.61 ist die aktuellste Version die ich online ohne irgend welche Zugänge finden konnte.Kenne mich da nicht so aus.
Hab das alte Teil (10 Jahre alt, einfach neu aufgesetzt und spiele mit rum.).
Der andere mit ilo5 ist ein Produktiver Server. Der wird auch von extern überwacht.EDIT
Habs wohl
-
Ohh das ist ein ML, ich habe nur DL, somit kann ich mit der letzen ILO wohl auch nicht aushelfen.
Ich sehe gerade für einen ist 2.82 verfügbar.. Ne das tu ich mir jetzt aber nicht an.Sieht so aus als wäre das Script dann für dich nicht geeignet..
-
Auf dem 4er klappt ja alles.
Bekomme gefühlt hunderte Datenpunkte korrekt ausgefüllt.Hab nur die Fehler im log.
-
Jetzt bin ich verwirrt, hast du die Fehler im Log bei der Maschine wo es aber geht?
Weil: Die Reference zu ILO 4 2.61 sagt das Raid und Disk nicht über die API ausgelesen werden können.
(Das steht auch so im Log (erfolgreich gelesen, aber keine links gefunden bei Raid und Disks)
Die Fehler im Log rühren nicht vom Script her, die sehen anders aus, ich vermute axios?Noch eine Frage, läuft das Script in einer iobroker Umgebung? Diese wird erwartet, das ist kein Shell Script.
Das Script erwartet die Javascript Engine von iobroker.Etwas weiter unten im Log steht was von ILO5?
Ich kann ein Script für ILO 5 bauen, aber nur im Blindflug, da ich keine Maschine mit ILO 5 habe.
Geht sicherlich, dauert aber lang .. ständig logs und Scripte hin und her... -
Hallo,
Das erste log kommt vom ilo 4.
Also dieses:javascript.0 2025-06-30 09:16:02.143 warn at processImmediate (node:internal/timers:454:9) javascript.0 2025-06-30 09:16:02.143 warn at runNextTicks (node:internal/process/task_queues:60:5) javascript.0 2025-06-30 09:16:02.143 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-06-30 09:16:02.143 warn at Object.<anonymous> (script.js.Eigene_Scripte.ilo4:255:25) javascript.0 2025-06-30 09:16:02.143 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20) javascript.0 2025-06-30 09:16:02.137 warn You are assigning a object to the state "javascript.0.ilo4-testing.bios.links" which expects a string. Please fix your code to use a string or change the state type to object. This warning might become an error in future versions.
Der DP bios.links ist so befüllt
{"self":{"href":"/rest/v1/systems/1/bios/Settings"}}
Vom lesen her können die Fehlerlos durchaus komplett wegen dem DP sein...?
Sonst ist das Log super und alle DPs da.Das folgende Log ist vom Abruf des ilo 5
javascript.0 11:35:32.719 info registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions javascript.0 11:35:34.489 info Thermal-Daten erfolgreich abgerufen. javascript.0 11:35:34.489 error Fehler beim Abrufen der Thermal-Daten: Cannot read properties of undefined (reading 'trim') javascript.0 11:35:35.710 info System Data erfolgreich abgerufen. javascript.0 11:35:36.878 info PSU Data erfolgreich abgerufen. javascript.0 11:35:37.533 info Firmware Data erfolgreich abgerufen. javascript.0 11:35:37.951 info Network Data erfolgreich abgerufen. javascript.0 11:35:38.762 info 🧬 BIOS-Felder: • @odata.context: /redfish/v1/$metadata#Bios.Bios • @odata.etag: W/"B2467190023E121212858C6490CB8F5B" • @odata.id: /redfish/v1/systems/1/bios/settings/ • @odata.type: #Bios.v1_0_0.Bios • AttributeRegistry: BiosAttributeRegistryU41.v1_2_68 • Attributes: [object Object] • Id: settings • Name: BIOS Pending Settings javascript.0 11:35:38.763 info BIOS-Settings erfolgreich abgerufen. javascript.0 11:35:38.770 warn at Object.<anonymous> (script.js.Eigene_Scripte.ilo5:255:25) javascript.0 11:35:39.228 info Disks Data erfolgreich abgerufen. javascript.0 11:35:39.228 warn Keine PhysicalDrives-Verlinkung gefunden. javascript.0 11:35:39.575 info Raid Data erfolgreich abgerufen. javascript.0 11:35:39.575 warn Keine LogicalDrives-Verlinkung gefunden.
Teilweise bekomme ich korrekte DPs angelegt, teils mit falschen Inhalt.
Beide Script laufen im iobroker.
Ich habe die beiden Scripte im iobroker ilo4 und ilo5 genannt. Deshalb findest du die Begriffe im Log.