Hi all,
I’m trying to use ipmitool to query the sensor data of my Supermicro server. The command itself works when typed into the CLI of the Home Assistant server, but does not function as a sensor. The command:
[core-ssh ~]$ ipmitool -H host01-oob -U hass -P redacted sensor | awk -F' *[|] *' '$1=="CPU Temp"{print $2}' | cut -d. -f1
33
As you can see, it returns the temperature in degrees Celsius without a problem. I’ve copied this command into a sensor block as follows:
command_line:
- sensor:
name: host01 CPU Temperature
unique_id: host01_cpu_temp
command: ipmitool -H host01-oob -U hass -P redacted sensor | awk -F' *[|] *' '$1=="CPU Temp"{print $2}' | cut -d. -f1
device_class: temperature
unit_of_measurement: "°C"
There are no issues with the syntax (at least not that the linter complains about), but the following error is generated in the logs and the sensor is unavailable.
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 581, in state
numerical_value = int(value)
^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ''
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 471, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 749, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 849, in add_to_platform_finish
await self.async_added_to_hass()
File "/usr/src/homeassistant/homeassistant/components/command_line/sensor.py", line 140, in async_added_to_hass
await self._update_entity_state(None)
File "/usr/src/homeassistant/homeassistant/components/command_line/sensor.py", line 164, in _update_entity_state
await self._async_update()
File "/usr/src/homeassistant/homeassistant/components/command_line/sensor.py", line 202, in _async_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 590, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 654, in _async_write_ha_state
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 596, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 585, in state
raise ValueError(
ValueError: Sensor sensor.host01_cpu_temperature has device class 'None', state class 'None' unit '°C' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: '' (<class 'str'>)
Any ideas? I’ve searched around for any similar issues have come up dry. Thanks in advance!