I've used this solution in past and it works very well.
Actually I've added an ExternalList, so the available sensors can be discovered by instance discovery.
[image: 3WIBnam.png]
Line in Agent config file:
ExternalList = OpenHardwareMonitor.Sensors:powershell -NonInteractive -Command "& { get-wmiobject -namespace root\OpenHardwareMonitor -query 'select * from Sensor' | foreach { $$_.InstanceId } }"
[image: 9TrEwmt.png]
WMI.Query(root\OpenHardwareMonitor,"select * from Sensor where InstanceId='{instance}'",Value)
[image: 2fwUwdV.png]
SensorType = AgentReadParameter($node, "WMI.Query(root\OpenHardwareMonitor,\"select * from Sensor where InstanceId='" . $1 . "'\",SensorType)");
Name = AgentReadParameter($node, "WMI.Query(root\OpenHardwareMonitor,\"select * from Sensor where InstanceId='" . $1 . "'\",Name)");
Identifier = AgentReadParameter($node, "WMI.Query(root\OpenHardwareMonitor,\"select * from Sensor where InstanceId='" . $1 . "'\",Identifier)");
return %(SensorType == "Temperature", $1, Name . " [" . Identifier . "]");