kontron / python-ipmi

A pure python IPMI library
GNU Lesser General Public License v2.1
185 stars 74 forks source link

voltage sensor and raw_command #124

Open Aaron811020 opened 1 year ago

Aaron811020 commented 1 year ago

Under the RMCP interface, I run get_device_sdr_list to get sensor info. The threshold of voltage would be over 100. And another question, could you provide the example of raw_command on the RMCP interface? I just can get the response"\xd4" now.

Result: {'data': <pyipmi.utils.ByteBuffer object at 0x7fd6a7c37ac0>, 'id': 3823, 'version': 81, 'type': 1, 'length': 49, 'owner_id': 32, 'owner_lun': 0, 'number': 59, 'entity_id': 7, 'entity_instance': 43, 'initialization': ['scanning', 'events', 'thresholds', 'hysteresis', 'type', 'default_scanning'], 'capabilities': ['auto_rearm', 'hysteresis_read_and_setable', 'threshold_readable'], 'sensor_type_code': 2, 'event_reading_type_code': 1, 'assertion_mask': 31252, 'deassertion_mask': 31252, 'discrete_reading_mask': 16191, 'units_1': 0, 'units_2': 4, 'units_3': 0, 'analog_data_format': 0, 'rate_unit': 0, 'modifier_unit': 0, 'percentage': 0, 'linearization': 0, 'm': 16, 'tolerance': 0, 'b': 163, 'accuracy': 0, 'accuracy_exp': 0, 'k2': -3, 'k1': 0, 'analog_characteristic': ['nominal_reading', 'normal_max', 'normal_min'], 'nominal_reading': 196, 'normal_maximum': 221, 'normal_minimum': 176, 'sensor_maximum_reading': 255, 'sensor_minimum_reading': 0, 'threshold': {'unr': 230, 'ucr': 225, 'unc': 221, 'lnr': 161, 'lcr': 166, 'lnc': 176}, 'hysteresis': {'positive_going': 1, 'negative_going': 1}, 'reserved': 0, 'oem': 0, 'device_id_string_type_length': 198, 'device_id_string': b'3.3VSB', 'next_id': 3890}

hthiery commented 1 year ago

I do not get your question about the threshold. What do you expect?

About the other question: what command do you try to send? did you establish the session?

Aaron811020 commented 1 year ago

@hthiery thanks for your reply a lot.

For the first question, if I get the sensor reading of 3.3VSB with IPMITool, I will get the threshold values between 2.7 and 3.8. But I got the threshold values over 100 by rmcp interface. For the second question, The session is established, because I can get sensor reading. I want to use “ raw 0x06 0x52 0x07 0x78 0x02 0x79” to get the power status via the rmcp interface.

hthiery commented 1 year ago

the reading of the thresholds is returned as raw reading .. you have to convert to a human readable value.

https://github.com/kontron/python-ipmi/blob/master/pyipmi/ipmitool.py#L104

What command is that what you try to send? The return code 0xd4 says you do not have sufficient privilege level.

https://github.com/kontron/python-ipmi/blob/master/pyipmi/msgs/constants.py#L39