Not all devices of Z-Uno appear in HC3
Posted: 29 Jul 2020 20:20
Hello, I use z-uno with Home Center 3 controller. I add 1 general purpose sensor, 1 motion sensor 2 door-window sensors and 1 dht11 sensor. The device added to my z-wave network but only the general purpose sensor of binary sensors and the dht11 apears in HC3.
This happens with every binary sensor I add. The home center 3 will show only the first binary sensor. Could you please help me to resolve this issue?
Attached: HC3 screenshot
Z-uno code:
#include "ZUNO_DHT.h"
// Global variables
byte pin3SensorBinaryState;
byte pin4SensorBinaryState;
byte pin5SensorBinaryState;
byte pin6SensorBinaryState;
DHT pin12DHT(12, DHT11);
signed int pin12DHTTemperatureState;
byte pin12DHTHumidityState;
// Z-Wave channels
ZUNO_SETUP_CHANNELS(
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_GENERAL_PURPOSE, pin3SensorBinaryGetter),
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_MOTION, pin4SensorBinaryGetter),
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_DOOR_WINDOW, pin5SensorBinaryGetter),
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_DOOR_WINDOW, pin6SensorBinaryGetter),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_TEMPERATURE, SENSOR_MULTILEVEL_SCALE_CELSIUS, SENSOR_MULTILEVEL_SIZE_TWO_BYTES, SENSOR_MULTILEVEL_PRECISION_ONE_DECIMAL, pin12DHTTemperatureGetter),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_RELATIVE_HUMIDITY, SENSOR_MULTILEVEL_SCALE_PERCENTAGE_VALUE, SENSOR_MULTILEVEL_SIZE_ONE_BYTE, SENSOR_MULTILEVEL_PRECISION_ZERO_DECIMALS, pin12DHTHumidityGetter)
);
void setup() {
pinMode(3, INPUT_PULLUP);
pin3SensorBinaryState = !digitalRead(3);
pinMode(4, INPUT_PULLUP);
pin4SensorBinaryState = !digitalRead(4);
pinMode(5, INPUT_PULLUP);
pin5SensorBinaryState = !digitalRead(5);
pinMode(6, INPUT_PULLUP);
pin6SensorBinaryState = !digitalRead(6);
pin12DHT.begin();
}
void loop() {
byte _pin3SensorBinaryState = digitalRead(3);
if (pin3SensorBinaryState != _pin3SensorBinaryState) {
pin3SensorBinaryState = _pin3SensorBinaryState;
zunoSendReport(1);
}
byte _pin4SensorBinaryState = digitalRead(4);
if (pin4SensorBinaryState != _pin4SensorBinaryState) {
pin4SensorBinaryState = _pin4SensorBinaryState;
zunoSendReport(2);
}
byte _pin5SensorBinaryState = digitalRead(5);
if (pin5SensorBinaryState != _pin5SensorBinaryState) {
pin5SensorBinaryState = _pin5SensorBinaryState;
zunoSendReport(3);
}
byte _pin6SensorBinaryState = digitalRead(6);
if (pin6SensorBinaryState != _pin6SensorBinaryState) {
pin6SensorBinaryState = _pin6SensorBinaryState;
zunoSendReport(4);
}
pin12DHTTemperatureState = pin12DHT.readTemperatureC10();
pin12DHTHumidityState = pin12DHT.readHumidity();
zunoSendReport(5); // report every 30 seconds
zunoSendReport(5 + 1);
delay(20);
}
// Getters and setters
byte pin3SensorBinaryGetter() {
return pin3SensorBinaryState;
}
byte pin4SensorBinaryGetter() {
return pin4SensorBinaryState;
}
byte pin5SensorBinaryGetter() {
return pin5SensorBinaryState;
}
byte pin6SensorBinaryGetter() {
return pin6SensorBinaryState;
}
word pin12DHTTemperatureGetter() {
return pin12DHTTemperatureState;
}
byte pin12DHTHumidityGetter() {
return pin12DHTHumidityState;
}
This happens with every binary sensor I add. The home center 3 will show only the first binary sensor. Could you please help me to resolve this issue?
Attached: HC3 screenshot
Z-uno code:
#include "ZUNO_DHT.h"
// Global variables
byte pin3SensorBinaryState;
byte pin4SensorBinaryState;
byte pin5SensorBinaryState;
byte pin6SensorBinaryState;
DHT pin12DHT(12, DHT11);
signed int pin12DHTTemperatureState;
byte pin12DHTHumidityState;
// Z-Wave channels
ZUNO_SETUP_CHANNELS(
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_GENERAL_PURPOSE, pin3SensorBinaryGetter),
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_MOTION, pin4SensorBinaryGetter),
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_DOOR_WINDOW, pin5SensorBinaryGetter),
ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_DOOR_WINDOW, pin6SensorBinaryGetter),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_TEMPERATURE, SENSOR_MULTILEVEL_SCALE_CELSIUS, SENSOR_MULTILEVEL_SIZE_TWO_BYTES, SENSOR_MULTILEVEL_PRECISION_ONE_DECIMAL, pin12DHTTemperatureGetter),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_RELATIVE_HUMIDITY, SENSOR_MULTILEVEL_SCALE_PERCENTAGE_VALUE, SENSOR_MULTILEVEL_SIZE_ONE_BYTE, SENSOR_MULTILEVEL_PRECISION_ZERO_DECIMALS, pin12DHTHumidityGetter)
);
void setup() {
pinMode(3, INPUT_PULLUP);
pin3SensorBinaryState = !digitalRead(3);
pinMode(4, INPUT_PULLUP);
pin4SensorBinaryState = !digitalRead(4);
pinMode(5, INPUT_PULLUP);
pin5SensorBinaryState = !digitalRead(5);
pinMode(6, INPUT_PULLUP);
pin6SensorBinaryState = !digitalRead(6);
pin12DHT.begin();
}
void loop() {
byte _pin3SensorBinaryState = digitalRead(3);
if (pin3SensorBinaryState != _pin3SensorBinaryState) {
pin3SensorBinaryState = _pin3SensorBinaryState;
zunoSendReport(1);
}
byte _pin4SensorBinaryState = digitalRead(4);
if (pin4SensorBinaryState != _pin4SensorBinaryState) {
pin4SensorBinaryState = _pin4SensorBinaryState;
zunoSendReport(2);
}
byte _pin5SensorBinaryState = digitalRead(5);
if (pin5SensorBinaryState != _pin5SensorBinaryState) {
pin5SensorBinaryState = _pin5SensorBinaryState;
zunoSendReport(3);
}
byte _pin6SensorBinaryState = digitalRead(6);
if (pin6SensorBinaryState != _pin6SensorBinaryState) {
pin6SensorBinaryState = _pin6SensorBinaryState;
zunoSendReport(4);
}
pin12DHTTemperatureState = pin12DHT.readTemperatureC10();
pin12DHTHumidityState = pin12DHT.readHumidity();
zunoSendReport(5); // report every 30 seconds
zunoSendReport(5 + 1);
delay(20);
}
// Getters and setters
byte pin3SensorBinaryGetter() {
return pin3SensorBinaryState;
}
byte pin4SensorBinaryGetter() {
return pin4SensorBinaryState;
}
byte pin5SensorBinaryGetter() {
return pin5SensorBinaryState;
}
byte pin6SensorBinaryGetter() {
return pin6SensorBinaryState;
}
word pin12DHTTemperatureGetter() {
return pin12DHTTemperatureState;
}
byte pin12DHTHumidityGetter() {
return pin12DHTHumidityState;
}