ateodorescu / home-assistant-ipmi

IPMI connector for Home Assistant
MIT License
39 stars 10 forks source link

Failed to connect #20

Closed zs3y closed 6 months ago

zs3y commented 11 months ago

Basically trying to configure the ipmi integration it flakes out with the error, never mind what I do... Then having played around with ipmitool it also fails to connect, except if I add in the "-I lan or -I lanplus" option, then all is well and working, but I have no idea whether this is an option that can be set for the integration...

HELP!

ateodorescu commented 11 months ago

Did you install the add-on?

zs3y commented 11 months ago

Yes, using HACS and also added manually ipmitool, on the HA machine, which runs on bare metal (ThinkCentre M710q) ipmitool must use -I lanplus for it to work, on another machine on the lan (Debian) -I lan also works, but not on the HA machine and I cannot configure the ipmi connector, it will not connect. It sits there for a few seconds 2 or so and then says Failed to connect. But from a shell on the same machine, if I run ipmitool -I lanplus -H idrac-FL2D25J.gariep.local -U user -P passw sdr I get plenty of data back...

ateodorescu commented 11 months ago

The add-on already checks the -I lanplus param. Did you check the log of the addon? What does it say?

zs3y commented 11 months ago

there is no log that I can see and looking in /root/config/custom_components/ipmi/server.py I see...

def connect(self) -> pyipmi.Ipmi:
   interface = pyipmi.interfaces.create_interface('rmcp',
                                       slave_address=0x81,
                                       host_target_address=0x20,
                                       keep_alive_interval=0)

which is not the lanplus option, but I'm not a python programmer and thus I could be wrong... either way, with the ipmitool from the HA machine I get data back, trying to configure the connector times out...

Where do I enable/check the logs?

zs3y commented 11 months ago

Ok, there is a singular line in home-assistant.log... here from a ssh session...

[core-ssh config]$ tail -n 0 -f home-assistant.log 2023-11-08 16:19:44.511 ERROR (SyncWorker_2) [custom_components.ipmi.server] Error connecting to IPMI server idrac-FL2D25J.gariep.local: timed out ^C [core-ssh config]$ ping -c 3 idrac-FL2D25J.gariep.local; ipmitool -I lanplus -H idrac-FL2D25J.gariep.local -U user -P passw chassis status PING idrac-FL2D25J.gariep.local (192.168.1.137): 56 data bytes 64 bytes from 192.168.1.137: seq=0 ttl=63 time=0.427 ms 64 bytes from 192.168.1.137: seq=1 ttl=63 time=0.725 ms 64 bytes from 192.168.1.137: seq=2 ttl=63 time=0.596 ms

--- idrac-FL2D25J.gariep.local ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.427/0.582/0.725 ms System Power : off Power Overload : false Power Interlock : inactive Main Power Fault : false Power Control Fault : false Power Restore Policy : always-on Last Power Event : command Chassis Intrusion : inactive Front-Panel Lockout : inactive Drive Fault : false Cooling/Fan Fault : false Sleep Button Disable : not allowed Diag Button Disable : allowed Reset Button Disable : not allowed Power Button Disable : allowed Sleep Button Disabled: false Diag Button Disabled : true Reset Button Disabled: false Power Button Disabled: false

Thus, the machine responds, even though it is powered down, but the ipmi connector does not work... HELP!

ateodorescu commented 11 months ago

Install the add-on: https://github.com/ateodorescu/home-assistant-addons/tree/main/ipmi-server The integration can use the add-on if it's installed otherwise will fallback to the python library which does not support lots of devices.

zs3y commented 11 months ago

Ok, would like to try, but now the question is how? if I grab your URL and go to the add-on store and Manage add-one repositories and put the URL in the Add field and select add, it sits there for a while an returns... 2023-11-08 17:28:12.912 ERROR (MainThread) [homeassistant.components.hassio] Failed to to call /store/repositories - Cmd('git') failed due to: exit code(128) cmdline: git clone -v --recursive --depth=1 --shallow-submodules -- https://github.com/ateodorescu/home-assistant-addons/tree/main/ipmi-server /data/addons/git/12ad300b stderr: 'Cloning into '/data/addons/git/12ad300b'... fatal: repository 'https://github.com/ateodorescu/home-assistant-addons/tree/main/ipmi-server/' not found

So either I am really incompetent or something else is wrong, doing a git clone on another machine on my network also fails...

[root@hppd400 ~]$ git clone https://github.com/ateodorescu/home-assistant-addons/tree/main/ipmi-server Cloning into 'ipmi-server'... fatal: repository 'https://github.com/ateodorescu/home-assistant-addons/tree/main/ipmi-server/' not found

but browsing to the URL with my web browser gets me there, but there are no options to copy or download or git clone the repository on the page...

again, HELP!

zs3y commented 11 months ago

Oh boy, if I panel beat ipmi-server into place and the restart home-assistant, then go to Add-ons and Add-on Store, there it now sits as a local repository, but then trying to Install it, the end result is...

The command '/bin/bash -o pipefail -c apk -U update && apk -U upgrade && apk -U add --no-cache ipmitool nginx=1.24.0-r6 php$PHPVERS php$PHPVERS-fpm php$PHPVERS-curl php$PHPVERS-dom php$PHPVERS-gettext php$PHPVERS-xml php$PHPVERS-simplexml php$PHPVERS-zip php$PHPVERS-zlib php$PHPVERS-gd php$PHPVERS-openssl php$PHPVERS-mysqli php$PHPVERS-pdo php$PHPVERS-pdo_mysql php$PHPVERS-pgsql php$PHPVERS-pdo_pgsql php$PHPVERS-sqlite3 php$PHPVERS-pdo_sqlite php$PHPVERS-json php$PHPVERS-mbstring php$PHPVERS-ctype php$PHPVERS-opcache php$PHPVERS-session php$PHPVERS-tokenizer && mkdir -p /app && mkdir /app/cache && mkdir /var/tmp/nginx' returned a non-zero code: 1

Again, HELP! this is beyond me...

ateodorescu commented 11 months ago

There was a problem with the addon but I have fixed it: https://github.com/ateodorescu/home-assistant-addons/issues/5 Please try again.

zs3y commented 11 months ago

Hi there, thanks, I got one machine working now, the Dell, as above, now an older IBM is not coming up, again ,via command line, it works, but cannot add it as a device, it claims "Failed to connect"... in the home-assistant.log, I get: 2023-11-10 10:14:56.752 ERROR (SyncWorker_3) [custom_components.ipmi.server] Error connecting to IPMI server X3650.gariep.local: CompletionCodeError cc=0xc7 desc=Request data length invalid

zs3y commented 10 months ago

Hi there any idea about the cc=0xc7 error as above, the IPMI integration is now installed working (mostly), at least the Dell, is connected and I have control via your server/device, but it will not register the IBM X3650, it comes up with the error as posted previously.

ateodorescu commented 10 months ago

Hi there any idea about the cc=0xc7 error as above, the IPMI integration is now installed working (mostly), at least the Dell, is connected and I have control via your server/device, but it will not register the IBM X3650, it comes up with the error as posted previously.

Sorry, I have no idea what that means and there's no way I can debug such a thing.

zs3y commented 10 months ago

Ok, one more question, does your device query or try and set the IPMI entity SMTP parameters? On https://pubs.lenovo.com/mgt_tools_smm/smm_ipmi_command under OEMCMD GET and SET SMTP_CONFIG_PARAMETERS the error 0xC7: Request data length invalid appears.

ateodorescu commented 10 months ago

Ok, one more question, does your device query or try and set the IPMI entity SMTP parameters? On https://pubs.lenovo.com/mgt_tools_smm/smm_ipmi_command under OEMCMD GET and SET SMTP_CONFIG_PARAMETERS the error 0xC7: Request data length invalid appears.

Please read this one: https://github.com/ateodorescu/home-assistant-ipmi/issues/16#issuecomment-1715018263

Basically the addon could run any ipmitool command that you want. So, if you want to set anything on your server via ipmitool then you can do that. The user Adumbird created his own rest commands to control the fans of his server. He most likely assigned those hass rest commands to some entities/buttons in hass. You could do the same with any commands that you like.