Welcome to the new Schneider Electric Community

It's your place to connect with experts and peers, get continuous support, and share knowledge.

  • Explore the new navigation for even easier access to your community.
  • Bookmark and use our new, easy-to-remember address (community.se.com).
  • Get ready for more content and an improved experience.

Contact SchneiderCommunity.Support@se.com if you have any questions.

Close
Invite a Co-worker
Send a co-worker an invite to the Exchange portal.Just enter their email address and we’ll connect them to register. After joining, they will belong to the same company.
Send Invite Cancel
84255members
353353posts

Getting value from a device

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.

DCIM_Support
Picard
Picard
0 Likes
7
553

Getting value from a device

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)

7 Replies 7
DCIM_Support
Picard
Picard
0 Likes
0
553

Re: Getting value from a device

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:

https://sxwhelpcenter.ecostruxureit.com/display/UADCE725/StruxureWare+Data+Center+Expert+Web+Service...

(CID:148770067)

DCIM_Support
Picard
Picard
0 Likes
0
553

Re: Getting value from a device

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)

DCIM_Support
Picard
Picard
0 Likes
0
553

Re: Getting value from a device

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)

DCIM_Support
Picard
Picard
0 Likes
0
553

Re: Getting value from a device

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)

DCIM_Support
Picard
Picard
0 Likes
0
553

Re: Getting value from a device

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)

DCIM_Support
Picard
Picard
0 Likes
0
553

Re: Getting value from a device

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)

DCIM_Support
Picard
Picard
0 Likes
0
553

🔒 Closed

This question is closed for comments. You're welcome to start a new topic if you have further comments on this issue.