Edit signal in asset builder

I’m not able to edit a signal in the asset builder (e.g. to turn off storage or to set precision). The signal is coming directly from a device. When I try to edit it, the box just spins forever. To work around, I use a Linear Gain of 1, and then edit the resulting signal - but, this is 2x storage and seems unnecessary.

I wonder if this is a config_io problem?

My config_io is:
{
“last_edited”: “2019-11-25”,
“meta”: “Dragino LT-33222”,
“channels”: {
“001”: {
“display_name”: “ACI1”,
“description”: “Current Input 1”,
“properties”: {
“data_type”: “Current”,
“data_unit”: “A”
}
},
“002”: {
“display_name”: “ACI2”,
“description”: “Current Input 2”,
“properties”: {
“data_type”: “Current”,
“data_unit”: “A”
}
},
“003”: {
“display_name”: “AVI1”,
“description”: “Voltage Input 1”,
“properties”: {
“data_type”: “Volts”,
“data_unit”: “V”
}
},
“004”: {
“display_name”: “AVI2”,
“description”: “Voltage Input 2”,
“properties”: {
“data_type”: “Volts”,
“data_unit”: “V”
}
},
“005”: {
“display_name”: “ROI1”,
“description”: “Relay 1: 0=Open”,
“properties”: {
“data_type”: “State”,
“data_unit”: “O/C”
}
},
“006”: {
“display_name”: “ROI2”,
“description”: “Relay 2: 0=Open”,
“properties”: {
“data_type”: “State”,
“data_unit”: “O/C”
}
},
“007”: {
“display_name”: “DI3”,
“description”: “Digital Input 3”,
“properties”: {
“data_type”: “State”,
“data_unit”: “H/L”
}
},
“008”: {
“display_name”: “DI2”,
“description”: “Digital Input 2”,
“properties”: {
“data_type”: “State”,
“data_unit”: “H/L”
}
},
“009”: {
“display_name”: “DI1”,
“description”: “Digital Input 1”,
“properties”: {
“data_type”: “State”,
“data_unit”: “H/L”
}
},
“010”: {
“display_name”: “DO3”,
“description”: “Digital Output 3”,
“properties”: {
“data_type”: “State”,
“data_unit”: “H/L”
}
},
“011”: {
“display_name”: “DO2”,
“description”: “Digital Output 2”,
“properties”: {
“data_type”: “State”,
“data_unit”: “H/L”
}
},
“012”: {
“display_name”: “DO1”,
“description”: “Digital Output 1”,
“properties”: {
“data_type”: “State”,
“data_unit”: “H/L”
}
}
}
}

Looks like a few config_io issues.

Your data_type should be “ELEC_CURRENT” and your data_unit should be “AMPERE”. The UI shouldn’t have let you even create a signal with the config since these key pieces of information are using invalid parameters but we need to work to enforce this better.

Schema: https://github.com/exosite/industrial_iot_schema/blob/master/data-types.md#electric-current

There is no data_type of State. (You can not create your own data types) Need to use the supported data types as documented in the schema (which is linked in the device interface overview).

https://exosense.readme.io/docs/device-interface-overview#section-data-types-units

If you have a 0 / 1 situation, this most likely can use the BOOLEAN data_type: https://github.com/exosite/industrial_iot_schema/blob/master/data-types.md#boolean-unit-less

The BOOLEAN type is a generic data_type and is ‘unit less’. You can specify the data_unit property but it will show in the UI with an asterisk as a ‘custom’ unit.

Great - all that works now - thanks for the links!

Question - for the assets I’ve already created, it doesn’t look like the new config_io settings got applied to the signals. If I remove the signals and re-add, then they are configurable, but the existing signals still act as if the old config_io is in place. I am reticent to remove the existing signals because I’ll lose my data history. Any suggestions?

Signals use the channel configuration at the time of creation. After that, signal sources, type, and units can not be changed. The reason for this is that the signal is the source of truth and storage for the data for the UI, exporting, rules, etc. You can change some of the properties about a signal like the expected report rate, timeout, etc but again, there is no sync between channels and signals after creation.

I’m going to reference our new documentation site for ExoSense User Guide, which we are going to be switching over to fully soon. https://docs.exosite.io/exosense/user-guide/assets#properties

If you want to keep the historical data, you can keep the old signals. If not, then you can delete them.

OK, makes sense.

It would be nice to have an easy way to hookup a new channel to an existing signal (e.g. allow a transform to set a different input signal) - it really would emphasize the independence of the “Asset” entity from whatever piece of hardware is sending the source data. Sensors and devices will die from time to time, and their replacement will be measuring the same data from the same asset. Maybe this is already possible, but I just can’t figure it out?

This is not currently possible, there is a link from the original device channel to the signal that can’t be changed in the application at this time. It’s on our roadmap in 2020 to allow hardware swapping capabilities which would include the ability to change the source of a signal.

OK, that would be great - thanks for the good info!