EcoStruxure IT forum
A support forum for Data Center Operation, Data Center Expert, and EcoStruxure IT product users to share knowledge on installation, configuration, and general product use.
Posted: 2020-07-05 10:09 PM
This question was originally posted on DCIM Support by Xavier Destombes on 2019-09-16
I'm trying to access the value of a device via SOAP, using the generated java classes from WSDL.
I can get a list of the devices (ISXCDevice) using the GetAllDevicesRequest. I do see the device I'm looking for. So far so good.
But I know this device has a value (for example something like 40mA), but I can't get it using any of the ISXCDevice properties.
I though maybe I should use GetDeviceControlsForDeviceRequest, but I don't even know how to get the isxcElementIDForDevice (the closest thing to an ID I could find is the getParentID() method from ISXCDevice).
Do you have some sample code on how to access properties from a device?
Thanks
(CID:148769889)
Posted: 2020-07-05 10:09 PM
This comment was originally posted on DCIM Support by Greg Sterling on 2019-09-16
Hello Xavier.
There is a separate wsdl for sensor retrieval which exposes the following get sensor calls.
ISXCentralDeviceService_v2_0
More info can be found here:
(CID:148770067)
Posted: 2020-07-05 10:09 PM
This comment was originally posted on DCIM Support by Xavier Destombes on 2019-09-16
Hello Greg,
Thanks for the reply. As I was able to get the sensor through the "Device" list, I though I could access a detailed object. Anyway, I added the SensorService, but there is no GetAllSensorsRequest, everything that is there requires a parameter like an ISXCElementID, but I have no idea where/how to get it.
How should I proceed?
Thanks
(CID:148770128)
Posted: 2020-07-05 10:09 PM
This comment was originally posted on DCIM Support by Greg Sterling on 2019-09-16
Did you try the getSensorsForDevice request?
Regards
Greg Sterling
(CID:148770161)
Posted: 2020-07-05 10:10 PM
This comment was originally posted on DCIM Support by Xavier Destombes on 2019-09-16
Ouch, didn't see the "s" at the end of sensor(s) in this one:)
Ok I still get a com.apc.stdws.wsdl.isxcentralsensors_v2.SensorServiceFault: Invalid ID though...
Here's what I'm doing so far, nothing fancy, just trying to get to the sensors:
ISXCentralSensorServiceV20_Service sensorService = new ISXCentralSensorServiceV20_Service();
ISXCentralSensorServiceV20 sensorServiceProxy = sensorService.getISXCentralSensorServiceV20HttpPort();
GetSensorsForDeviceRequest getSensorsForDeviceRequest= new GetSensorsForDeviceRequest();
GetSensorsForDeviceResponse response;
try {
response = sensorServiceProxy.getSensorsForDevice(getSensorsForDeviceRequest);
// => the Invalid ID fault is coming from the line above
List<ISXCSensor> list = response.getArrayOfISXCSensor().getISXCSensor();
...
}
(CID:148770164)
Posted: 2020-07-05 10:10 PM
This comment was originally posted on DCIM Support by Greg Sterling on 2019-09-17
When you make the call to the getsensorsfordevice your request packet should look something like this where you substitute the element id from your previous get devices call. So an example might be B981f08_nbSNMPEnc94632825
Is this the format you are using?
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:isx="http://www.apc.com/stdws/xsd/ISXCentralSensors-v2">
<soapenv:Header/>
<soapenv:Body>
<isx:getSensorsForDeviceRequest>
<isx:ISXCElementID>ELEMENTID</isx:ISXCElementID>
</isx:getSensorsForDeviceRequest>
</soapenv:Body>
</soapenv:Envelope>
So, using my above sample element id, the content of your request packet would look like this if you're querying my above device.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:isx="http://www.apc.com/stdws/xsd/ISXCentralSensors-v2">
<soapenv:Header/>
<soapenv:Body>
<isx:getSensorsForDeviceRequest>
<isx:ISXCElementID>B981f08_nbSNMPEnc94632825</isx:ISXCElementID>
</isx:getSensorsForDeviceRequest>
</soapenv:Body>
</soapenv:Envelope>
Regards
Greg Sterling
(CID:148770549)
Posted: 2020-07-05 10:10 PM
This comment was originally posted on DCIM Support by Xavier Destombes on 2019-09-17
Hello Greg,
I didn't have any Id, but digging a little more into the device tree, I was able to found it, but that is way too deep for my taste:)
ISXCDevice > ISXCNamedElement > ISXCElement > getId(), I would have expected a getId() right at the ISXCDevice object.
Anyway, I passed the ID and now I get to the sensor, but there is not much here, I can't seem to access its value. If I try to access the sensorData, I get com.apc.varlib.model.devices.impl.CustomSensorPodImpl cannot be cast to com.apc.varlib.model.sensors.Sensor
Could it be because it is a virtual sensor? (based on the package name, it seems like I should access it like a Device and not a Sensor anyway)
(CID:148770605)
Posted: 2020-07-05 10:10 PM
This question is closed for comments. You're welcome to start a new topic if you have further comments on this issue.
Create your free account or log in to subscribe to the forum - and gain access to more than 10,000+ support articles along with insights from experts and peers.