Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Script: HP-ILO 4 Abfrage Temperaturen und FanSpeed

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script: HP-ILO 4 Abfrage Temperaturen und FanSpeed

    This topic has been deleted. Only users with topic management privileges can see it.
    • Lucifor1976
      Lucifor1976 @David G. last edited by Lucifor1976

      @david-g

      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?

      Bildschirmfoto 2025-06-30 um 19.35.48.png

      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.

      David G. 1 Reply Last reply Reply Quote 0
      • David G.
        David G. @Lucifor1976 last edited by David G.

        @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
        Screenshot_20250630_204046_Chrome.jpg

        Lucifor1976 1 Reply Last reply Reply Quote 0
        • Lucifor1976
          Lucifor1976 @David G. last edited by

          @david-g

          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..

          David G. 1 Reply Last reply Reply Quote 0
          • David G.
            David G. @Lucifor1976 last edited by

            @lucifor1976

            Auf dem 4er klappt ja alles.
            Bekomme gefühlt hunderte Datenpunkte korrekt ausgefüllt.

            Hab nur die Fehler im log.

            Lucifor1976 1 Reply Last reply Reply Quote 0
            • Lucifor1976
              Lucifor1976 @David G. last edited by Lucifor1976

              @david-g

              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...

              David G. 1 Reply Last reply Reply Quote 0
              • David G.
                David G. @Lucifor1976 last edited by David G.

                @lucifor1976

                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.

                Lucifor1976 1 Reply Last reply Reply Quote 0
                • Lucifor1976
                  Lucifor1976 @David G. last edited by

                  @david-g

                  Schau mal auf hithup, ich habe ein Script für ILO5 hinzugefügt, teste das mal.
                  Wie gesagt im Blindflug.

                  David G. 1 Reply Last reply Reply Quote 0
                  • David G.
                    David G. @Lucifor1976 last edited by David G.

                    @lucifor1976

                    Cool,

                    danke.

                    Lauft jetzt deutlich stabiler.
                    Scheint allgemein etwas weniger Infos zu geben, aber zumindest mich jucken die tiefsten BIOS Datenpunkte nicht.

                    Nur zu den Drives werden keine Infos gefunden, das ist schade.

                    Und es scheint den gleichen oder ähnlichen Fehler zu geben, der mir auch bei der Version für den ILO4 ausgegeben wird.

                    javascript.0
                    2025-07-03 08:05:04.144	warn	script.js.Eigene_Scripte.ilo5: Keine LogicalDrives-Verlinkung gefunden.
                    
                    javascript.0
                    2025-07-03 08:05:03.994	warn	script.js.Eigene_Scripte.ilo5: Keine PhysicalDrives-Verlinkung gefunden.
                    
                    javascript.0
                    2025-07-03 08:05:03.854	warn	at processImmediate (node:internal/timers:454:9)
                    
                    javascript.0
                    2025-07-03 08:05:03.854	warn	at runNextTicks (node:internal/process/task_queues:60:5)
                    
                    javascript.0
                    2025-07-03 08:05:03.854	warn	at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34)
                    
                    javascript.0
                    2025-07-03 08:05:03.854	warn	at Object.<anonymous> (script.js.Eigene_Scripte.ilo5:232:22)
                    
                    javascript.0
                    2025-07-03 08:05:03.854	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20)
                    
                    javascript.0
                    2025-07-03 08:05:03.853	warn	You are assigning a object to the state "javascript.0.ilo5-testing.bios.Attributes" 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.
                    
                    javascript.0
                    2025-07-03 08:05:03.848	info	script.js.Eigene_Scripte.ilo5: BIOS-Settings erfolgreich abgerufen.
                    
                    javascript.0
                    2025-07-03 08:05:03.467	info	script.js.Eigene_Scripte.ilo5: Netzwerkdaten erfolgreich abgerufen.
                    
                    javascript.0
                    2025-07-03 08:05:03.309	info	script.js.Eigene_Scripte.ilo5: Firmware-Version erfolgreich abgerufen.
                    
                    javascript.0
                    2025-07-03 08:05:03.092	info	script.js.Eigene_Scripte.ilo5: Power erfolgreich abgerufen.
                    
                    javascript.0
                    2025-07-03 08:05:02.945	info	script.js.Eigene_Scripte.ilo5: Systeminfo erfolgreich abgerufen.
                    
                    javascript.0
                    2025-07-03 08:05:02.705	info	script.js.Eigene_Scripte.ilo5: Thermal-Daten erfolgreich abgerufen.
                    
                    javascript.0
                    2025-07-03 08:05:01.737	info	script.js.Eigene_Scripte.ilo5: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                    
                    javascript.0
                    2025-07-03 08:05:01.732	info	Start JavaScript script.js.Eigene_Scripte.ilo5 (Javascript/js)
                    
                    javascript.0
                    2025-07-03 08:05:01.636	info	Stopping script script.js.Eigene_Scripte.ilo5
                    

                    Da habe ich jetzt die beiden DPs, über die beide Scriptversionen meckern, (bei beiden ein Verschiedener unter Bios) von String auf Object geändert.
                    Bei der v4 Version "links" und bei der v5 Version "Attributes". Jetzt gibts keine Fehler mir und es kommt nur das reguläre logging.

                    Lucifor1976 1 Reply Last reply Reply Quote 0
                    • Lucifor1976
                      Lucifor1976 @David G. last edited by Lucifor1976

                      @david-g
                      Sehr gut.. 🙂
                      Mach die Änderung bitte auch auf Githup 🙂
                      Wenn Deine Version nicht ILO5 V2.95 ist bitte ein neues js File. Dito für ILO 4, langsam herantasten.. 🙂
                      Am Wochenende schau ich mal ob ich etwas aus Disk und Raid herausgekitzelt bekomme..
                      Hab heute und morgen keine Zeit..

                      David G. 1 Reply Last reply Reply Quote 0
                      • David G.
                        David G. @Lucifor1976 last edited by David G.

                        @lucifor1976

                        Hab es nicht im Script angepasst.
                        Hab die beiden vom Script angelegten DPs im Admin angepasst.

                        Ka ob es im Skript Sinn macht. Bei dir scheint der Typ ja zu stimmen der eingetragen wird bei der ilo4 Variante und bei mir nicht.

                        Hab gtad nochmal geschaut.
                        Das Script schreibt in die DPs bei mir wirklich ein array.

                        Beim 4er unter bios.links

                        {"self":{"href":"/rest/v1/systems/1/bios/Settings"}}
                        

                        Beim 5er unter bios.attributes

                        {"AcpiHpet":"Enabled","AcpiRootBridgePxm":"Enabled","AcpiSlit":"Enabled","AdjSecPrefetch":"Enabled","AdminEmail":"","AdminName":"","AdminOtherInfo":"","AdminPhone":"","AdvCrashDumpMode":"Disabled","AdvancedMemProtection":"FastFaultTolerantADDDC","AsrStatus":"Enabled","AsrTimeoutMinutes":"Timeout10","AssetTagProtection":"Unlocked","AutoPowerOn":"RestoreLastState","BootMode":"Uefi","BootOrderPolicy":"RetryIndefinitely","ChannelInterleaving":"Enabled","CollabPowerControl":"Disabled","ConsistentDevNaming":"LomsAndSlots","CustomPostMessage":"","DaylightSavingsTime":"Disabled","DcuIpPrefetcher":"Enabled","DcuStreamPrefetcher":"Enabled","Dhcpv4":"Enabled","DynamicPowerCapping":"Disabled","EmbNicAspm":"Disabled","EmbNicEnable":"Auto","EmbNicLinkSpeed":"Auto","EmbNicPCIeOptionROM":"Enabled","EmbSas1Aspm":"Disabled","EmbSas1Boot":"TwentyFourTargets","EmbSas1Enable":"Auto","EmbSas1LinkSpeed":"Auto","EmbSas1PcieOptionROM":"Enabled","EmbSata1Aspm":"Disabled","EmbSata2Aspm":"Disabled","EmbVideoConnection":"Auto","EmbeddedDiagnostics":"Enabled","EmbeddedSata":"Ahci","EmbeddedSerialPort":"Com2Irq3","EmbeddedUefiShell":"Enabled","EmsConsole":"Disabled","EnabledCoresPerProc":0,"EnergyEfficientTurbo":"Disabled","EnergyPerfBias":"MaxPerf","EnhancedProcPerf":"Disabled","EraseUserDefaults":"No","ExtendedAmbientTemp":"Disabled","ExtendedMemTest":"Disabled","F11BootMenu":"Enabled","FCScanPolicy":"CardConfig","FanFailPolicy":"Shutdown","FanInstallReq":"EnableMessaging","FlexLom1Aspm":"Disabled","HttpSupport":"Auto","HwPrefetcher":"Enabled","IODCConfiguration":"Auto","IntelDmiLinkFreq":"Auto","IntelNicDmaChannels":"Enabled","IntelPerfMonitoring":"Disabled","IntelProcVtd":"Enabled","IntelligentProvisioning":"Enabled","InternalSDCardSlot":"Enabled","IpmiWatchdogTimerAction":"PowerCycle","IpmiWatchdogTimerStatus":"IpmiWatchdogTimerOff","IpmiWatchdogTimerTimeout":"Timeout30Min","Ipv4Address":"0.0.0.0","Ipv4Gateway":"0.0.0.0","Ipv4PrimaryDNS":"0.0.0.0","Ipv4SecondaryDNS":"0.0.0.0","Ipv4SubnetMask":"0.0.0.0","Ipv6Address":"::","Ipv6ConfigPolicy":"Automatic","Ipv6Duid":"Auto","Ipv6Gateway":"::","Ipv6PrimaryDNS":"::","Ipv6SecondaryDNS":"::","LLCDeadLineAllocation":"Enabled","LlcPrefetch":"Disabled","LocalRemoteThreshold":"Auto","MaxMemBusFreqMHz":"Auto","MaxPcieSpeed":"PerPortCtrl","MemClearWarmReset":"Disabled","MemFastTraining":"Enabled","MemMirrorMode":"Full","MemPatrolScrubbing":"Enabled","MemRefreshRate":"Refreshx1","MemoryControllerInterleaving":"Auto","MemoryRemap":"NoAction","MinProcIdlePkgState":"NoState","MinProcIdlePower":"NoCStates","MixedPowerSupplyReporting":"Enabled","NetworkBootRetry":"Enabled","NetworkBootRetryCount":20,"NicBoot1":"NetworkBoot","NicBoot2":"Disabled","NicBoot3":"Disabled","NicBoot4":"Disabled","NodeInterleaving":"Disabled","NumaGroupSizeOpt":"Clustered","NvmeOptionRom":"Enabled","OpportunisticSelfRefresh":"Disabled","PciPeerToPeerSerialization":"Disabled","PciResourcePadding":"Normal","PciSlot1Bifurcation":"Auto","PciSlot2Bifurcation":"Auto","PciSlot3Bifurcation":"Auto","PciSlot5Bifurcation":"Auto","PciSlot6Bifurcation":"Auto","PciSlot7Bifurcation":"Auto","PciSlot8Bifurcation":"Auto","PersistentMemBackupPowerPolicy":"WaitForBackupPower","PostBootProgress":"Disabled","PostDiscoveryMode":"Auto","PostF1Prompt":"Delayed20Sec","PostVideoSupport":"DisplayAll","PostedInterruptThrottle":"Enabled","PowerButton":"Enabled","PowerOnDelay":"NoDelay","PowerRegulator":"StaticHighPerf","PreBootNetwork":"Auto","PrebootNetworkEnvPolicy":"Auto","PrebootNetworkProxy":"","ProcAes":"Enabled","ProcHyperthreading":"Enabled","ProcTurbo":"Enabled","ProcVirtualization":"Enabled","ProcX2Apic":"Enabled","ProcessorConfigTDPLevel":"Normal","ProcessorJitterControl":"Disabled","ProcessorJitterControlFrequency":0,"ProcessorJitterControlOptimization":"ZeroLatency","ProductId":"P21788-421","RedundantPowerSupply":"BalancedMode","RefreshWatermarks":"Auto","RemovableFlashBootSeq":"ExternalKeysFirst","RestoreDefaults":"No","RestoreManufacturingDefaults":"No","RomSelection":"CurrentRom","SataSecureErase":"Disabled","SaveUserDefaults":"No","SecStartBackupImage":"Disabled","SecureBootStatus":"Enabled","SerialConsoleBaudRate":"BaudRate115200","SerialConsoleEmulation":"Vt100Plus","SerialConsolePort":"Auto","SerialNumber":"CZJ2401PP3","ServerAssetTag":"","ServerConfigLockStatus":"Disabled","ServerName":"WILESXI-01.ad.wilke.de","ServerOtherInfo":"","ServerPrimaryOs":"","ServiceEmail":"","ServiceName":"","ServiceOtherInfo":"","ServicePhone":"","SetupBrowserSelection":"Auto","Slot1MctpBroadcastSupport":"Enabled","Slot2MctpBroadcastSupport":"Enabled","Slot3MctpBroadcastSupport":"Enabled","Slot5MctpBroadcastSupport":"Enabled","Slot6MctpBroadcastSupport":"Enabled","Slot7MctpBroadcastSupport":"Enabled","Slot8MctpBroadcastSupport":"Enabled","Sriov":"Enabled","StaleAtoS":"Disabled","SubNumaClustering":"Enabled","ThermalConfig":"OptimalCooling","ThermalShutdown":"Enabled","TimeFormat":"Utc","TimeZone":"UtcP1","TpmChipId":"None","TpmFips":"NotSpecified","TpmState":"NotPresent","TpmType":"NoTpm","UefiOptimizedBoot":"Enabled","UefiSerialDebugLevel":"Disabled","UefiShellBootOrder":"Disabled","UefiShellScriptVerification":"Disabled","UefiShellStartup":"Disabled","UefiShellStartupLocation":"Auto","UefiShellStartupUrl":"","UefiShellStartupUrlFromDhcp":"Disabled","UefiVariableAccessFwControl":"Disabled","UncoreFreqScaling":"Maximum","UrlBootFile":"","UrlBootFile2":"","UrlBootFile3":"","UrlBootFile4":"","UsbBoot":"Enabled","UsbControl":"UsbEnabled","UserDefaultsState":"Disabled","UtilityLang":"English","VirtualInstallDisk":"Disabled","VirtualSerialPort":"Com1Irq4","VlanControl":"Disabled","VlanId":0,"VlanPriority":0,"WakeOnLan":"Enabled","WorkloadProfile":"Virtualization-MaxPerformance","XptPrefetcher":"Auto","iSCSIPolicy":"SoftwareInitiator"}
                        

                        BIOS sieht dafür so aus:
                        Screenshot_20250703_231615_Chrome.jpg

                        Als ob die Werte bei beiden Werten erst eine Ebene tiefer extrahiert werden dürften.

                        Ich teste morgen mal (chatgpt)

                        const valueType =
                            typeof val === 'boolean' ? 'boolean' :
                            typeof val === 'number'  ? 'number'  :
                            typeof val === 'object' && val !== null && !Array.isArray(val) ? 'object' :
                            Array.isArray(val)       ? 'array' :
                            'string';
                        

                        ob das die Fehler aus dem Log wirft. Wobei das ja die DPs vermutlich dadurch nicht entsprechend befüllt.

                        EDIT:
                        Habe jetzt unter BIOS die Erkennung in der ilo4 Variante vom Type zu

                                for (const [key, val] of Object.entries(bios)) {
                                    try {
                                        const dp = dpPrefix + 'bios.' + sanitizeId(key);
                                        const valueType =
                                            typeof val === 'boolean' ? 'boolean' :
                                            typeof val === 'number'  ? 'number'  :
                                            typeof val === 'object' && val !== null && !Array.isArray(val) ? 'object' :
                                            Array.isArray(val)       ? 'array' :
                                            'string';
                        

                        erweitert.

                        Bei der ilo5 Variante (Eigentlich das gleiche, nur hast du es da in einer Zeile stehen)

                        const valueType = typeof val === 'boolean' ? 'boolean' : typeof val === 'number' ? 'number' : typeof val === 'object' && val !== null && !Array.isArray(val) ? 'object' : Array.isArray(val) ? 'array' : 'string';
                        

                        Jetzt ist das Log still.
                        (DPs aber nicht korrekt befüllt, siehe Screenshot)

                        EDIT2
                        Habe auf git erst aus versehen einen pull request für v4 gemacht. Sollte v5 werden. Kannst du den ablehnen? sehe nicht wo ich das wiederrufen kann.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        625
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        2
                        24
                        173
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo