Reported values got stuck sometimes
Posted: 31 Jul 2018 11:29
Hi guys,
I've experienced a strange problem with reporting values. This Z-Uno is reading the 7 electric values via a serial interface and once a minute it sends unsolicited reports to the Fibaro HC2. At the same time, Fibaro is polling every 13 seconds. Works great, but from time to time some of the values got stuck (or freeze) and a steady numeric value is being shown in HC2 for hours.
Here's the example: monitoring a battery voltage, the two values should be a very close to each other. But the RED value got stuck for hours, till 7:40, where it magically started to behave normally. I found that more channels I have, the higher is the probability of the described behavior. With 3 channels, it works flawlessly. With 7 it starts to behave like described. Also, found that if I send unsolicited reports in a different order, it might help a bit.
Can you help me, please?
I've experienced a strange problem with reporting values. This Z-Uno is reading the 7 electric values via a serial interface and once a minute it sends unsolicited reports to the Fibaro HC2. At the same time, Fibaro is polling every 13 seconds. Works great, but from time to time some of the values got stuck (or freeze) and a steady numeric value is being shown in HC2 for hours.
Here's the example: monitoring a battery voltage, the two values should be a very close to each other. But the RED value got stuck for hours, till 7:40, where it magically started to behave normally. I found that more channels I have, the higher is the probability of the described behavior. With 3 channels, it works flawlessly. With 7 it starts to behave like described. Also, found that if I send unsolicited reports in a different order, it might help a bit.
Can you help me, please?
Code: Select all
.
.
.
ZUNO_SETUP_CHANNELS(
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_VOLTAGE, SENSOR_MULTILEVEL_SCALE_VOLT, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_ONE_DECIMAL, getter1),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_CURRENT, SENSOR_MULTILEVEL_SCALE_AMPERE, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_TWO_DECIMALS, getter2),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_VOLTAGE, SENSOR_MULTILEVEL_SCALE_VOLT, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_ONE_DECIMAL, getter3),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_CURRENT, SENSOR_MULTILEVEL_SCALE_AMPERE, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_TWO_DECIMALS, getter4),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_TEMPERATURE, SENSOR_MULTILEVEL_SCALE_CELSIUS, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_ZERO_DECIMALS, getter5),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_CURRENT, SENSOR_MULTILEVEL_SCALE_AMPERE, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_ONE_DECIMAL, getter6),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_VOLTAGE, SENSOR_MULTILEVEL_SCALE_VOLT, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_ONE_DECIMAL, getter7)
);
.
.
.
zunoSendReport(7); // Send report without polling
zunoSendReport(1); // Send report without polling
zunoSendReport(2); // Send report without polling
zunoSendReport(3); // Send report without polling
zunoSendReport(4); // Send report without polling
zunoSendReport(5); // Send report without polling
zunoSendReport(6); // Send report without polling
.
.
.