The chat responses are generated using Generative AI technology for intuitive search and may not be entirely accurate. They are not intended as professional advice. For full details, including our use rights, privacy practices and potential export control restrictions, please refer to our Generative AI Service Terms of Use and Generative AI Service Privacy Information. As this is a test version, please let us know if something irritating comes up. Like you get recommended a chocolate fudge ice cream instead of an energy managing application. If that occurs, please use the feedback button in our contact form!
Skip to content

Vibration

Senseye has support for ingesting raw vibration waveforms and spectra. Currently, we can handle either CSV or JSON in our own formats, or we additionally have built in support for exports from third-party software. If your export format is not supported, please contact support for more information.

Processing

When Senseye receives a velocity waveform, we compute the acceleration waveform from it, and similarly if we receive an acceleration waveform we compute the velocity waveform. This allows us to compute a number of condition indicators for both acceleration and velocity signals:

  • Root Mean Square (RMS)
  • Peak to Peak (P2P)
  • Zero to Peak (Z2P)
  • Standard Deviation
  • Kurtosis
  • Skew
  • Crest Factor
  • Shape Factor

If a spectrum is sent rather than a raw waveform, then we simply use this (note that acceleration spectra are converted to velocity spectra), but note that the above condition indicators are not derived from it. From the velocity waveform (either processed by us, or received directly) we then compute directly the spectrum using a Hanning window. We attempt to extract the amplitude at key frequencies as measures, which are then trackable over time as condition indicators of your machinery. Currently, we will extract the amplitude matching the rotational speed of your machine and its harmonics, which we label as v_1x - v_5x. At present, the rotational speed at the time the measurement was taken (or the average speed for a variable drive machine) needs to be sent in Hz along with each sample so that we can perform this calculation, even if the machine is set to work at a fixed rotational speed. This speed is created as an additional measure and is automatically set up as a control parameter for the asset, with the name rotational-speed. We retain the velocity spectrum for visualization in the Senseye app; by clicking a point on a measure chart set to 'raw' mode, the spectra from which the measure was extracted can be viewed. Please note that you should not attempt to send multiple corresponding data for the same timestamp - please send only one of velocity/acceleration waveform or spectra. If you have the waveform data, this should be preferred.

When sending data either a Mapping ID or a Senseye sensor ID (in the form of a UUID) can be used to address a sensor. If a Mapping ID is used, and a sensor does not already exist connected with this mapping ID, a new sensor is automatically provisioned. A sensor can alternatively be created manually as detailed here.

Info

For user tokens, the associated user needs to be a system administrator to send data.

Machine tokens require permissions to write data and create sensors. If using Mapping IDs with a machine token, your token will also require permissions to read and write mapping IDs.

JSON REST

Waveforms

The JSON formatted data should conform to the structure detailed here. It should be sent within the body of a POST request as shown below:

POST /v1/hub/mappings/{mappingId}/waveform_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: application/json

[
    {
        "timestamp":       "2024-03-04T18:13:00Z",
        "amplitudeUnit":   "m/s" | "m/s^2" | "mm/s" | "mm/s^2 | "in/s" | "in/s^2",
        "spacing":         1.0,
        "end":             4.0,
        "number":          5,
        "data":            [0, 1, 2, 3, 4],
        "speed":           1.0,
        "measurementType": "velocity" | "acceleration"
    },
]
POST /v1/hub/sensors/{senseyeId}/waveform_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: application/json

[
    {
        "timestamp":       "2024-03-04T18:13:00Z",
        "amplitudeUnit":   "m/s" | "m/s^2" | "mm/s" | "mm/s^2 | "in/s" | "in/s^2",
        "spacing":         1.0,
        "end":             4.0,
        "number":          5,
        "data":            [0, 1, 2, 3, 4],
        "speed":           1.0,
        "measurementType": "velocity" | "acceleration"
    },
]

Please note that waveform time unit (and thus spacing and end) must be in units of seconds.

Spectra

The JSON formatted data should conform to the structure detailed here. It should be sent within the body of a POST request as shown below:

POST /v1/hub/mappings/{mappingId}/freq_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: application/json

[
    {
        "timestamp":       "2024-03-04T18:13:00Z",
        "amplitudeUnit":   "m/s" | "m/s^2" | "mm/s" | "mm/s^2 | "in/s" | "in/s^2",",
        "spacing":         1.0,
        "end":             4.0,
        "number":          5,
        "data":            [0, 1, 2, 3, 4],
        "speed":           1.0,
        "measurementType": "velocity" | "acceleration"
    },
]
POST /v1/hub/sensors/{senseyeId}/freq_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: application/json

[
    {
        "timestamp":       "2024-03-04T18:13:00Z",
        "amplitudeUnit":   "m/s" | "m/s^2" | "mm/s" | "mm/s^2 | "in/s" | "in/s^2",,
        "spacing":         1.0,
        "end":             4.0,
        "number":          5,
        "data":            [0, 1, 2, 3, 4],
        "speed":           1.0,
        "measurementType": "velocity" | "acceleration"
    },
]

Please note that spectra frequency units (and thus spacing and end) must be in Hz.

CSV REST

Waveforms

The CSV formatted data format is detailed here. It can be sent to Senseye as a POST request:

POST /v1/hub/mappings/{mappingId}/waveform_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: text/csv

timestamp,amplitudeUnit,measurementType,spacing,end,number,speed,data
2024-03-04T18:13:00Z,mm/s,velocity,1,4,5,2,"0,1,2,3,4"
POST /v1/hub/sensors/{sensorId}/waveform_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: text/csv

timestamp,amplitudeUnit,measurementType,spacing,end,number,speed,data
2024-03-04T18:13:00Z,mm/s,velocity,1,4,5,2,"0,1,2,3,4"

Spectra

The CSV formatted data should conform to the structure detailed here. It should be sent within the body of a POST request as shown below:

POST /v1/hub/mappings/{mappingId}/freq_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: text/csv

timestamp,amplitudeUnit,measurementType,spacing,end,number,speed,data
2024-03-04T18:13:00Z,mm/s,velocity,1,4,5,2,"0,1,2,3,4"
POST /v1/hub/sensors/{senseyeId}/freq_data HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: text/csv

timestamp,amplitudeUnit,measurementType,spacing,end,number,speed,data
2024-03-04T18:13:00Z,mm/s,velocity,1,4,5,2,"0,1,2,3,4"

SKF @ptitude Analyst CSV

The CSV formatted data should conform to the structure detailed here. It should be sent within the body of a POST request as shown below:

POST /v1/hub/mappings/{mappingId}/freq_data/skf HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: text/csv

"Point Path","DTS","Unit","Detection","Channel","Lines","End Frequency","Speed (Hz)","Process Value","Unit","BOV / GAP","DIGITAL","Data"
"NodeID","2023-02-21 9:42:39 AM","mm/sec","Peak","1","5","4","2","N/A","N/A","N/A","N/A","1","2","3","4","5"
POST /v1/hub/sensors/{senseyeId}/freq_data/skf HTTP/1.1
Host: api.senseye.io
Authorization: Bearer your_access_token
Content-Type: text/csv

"Point Path","DTS","Unit","Detection","Channel","Lines","End Frequency","Speed (Hz)","Process Value","Unit","BOV / GAP","DIGITAL","Data"
"NodeID","2023-02-21 9:42:39 AM","mm/sec","Peak","1","5","4","2","N/A","N/A","N/A","N/A","1","2","3","4","5"

Note that we accept only velocity spectra exported from SKF. We do not currently process exported files with a mixture of acceleration and velocity measurements.