It seems that zunoIsChannelUpdated() function is not working (with HC2): it returns false whatever happen.
Here is my config:
- Z-Uno bootloader version:3.0.9
Security:none
Frequency:EU
Device included:yes
Device included securely by controller:no
Controller:Fibaro HC2
Code: Select all
#include "Arduino.h"
#include "ArduinoTypes.h"
#if (ZUNO_CORE_VERSION_MAJOR < 3)
#error "------- This code should be complied for ZUNO 2 target"
#endif
#define SPDBGSTART(X) Serial.begin(X)
#define SPDBG(...) Serial.print(__VA_ARGS__)
#define SPDBGLN(...) Serial.println(__VA_ARGS__)
#define BUILTIN_LED_PIN 13
ZUNO_DISABLE(NO_MULTIBINARY_SWITCH0);
ZUNO_ENABLE(WITH_CC_SENSOR_MULTILEVEL WITH_CC_SENSOR_BINARY WITH_CC_BASIC WITH_CC_SWITCH_MULTILEVEL WITH_CC_SWITCH_BINARY);
uint32_t au32myZwaveValues[10];
#define MULTILEVELCHAN_TYPE_1 ZUNO_SENSOR_MULTILEVEL_TYPE_TANK_CAPACITY
#define MULTILEVELCHAN_PROP_1 SENSOR_MULTILEVEL_PROPERTIES_COMBINER(SENSOR_MULTILEVEL_SCALE_LITER, 4, 0)
ZUNO_SETUP_CHANNELS(
ZUNO_SWITCH_BINARY(&au32myZwaveValues[0], NULL),
ZUNO_SWITCH_BINARY(&au32myZwaveValues[1], NULL),
ZUNO_SWITCH_MULTILEVEL(&au32myZwaveValues[2], NULL),
ZUNO_SWITCH_MULTILEVEL(&au32myZwaveValues[3], NULL),
{ZUNO_SENSOR_MULTILEVEL_CHANNEL_NUMBER, MULTILEVELCHAN_TYPE_1, MULTILEVELCHAN_PROP_1, (void*)&au32myZwaveValues[4], MACRO_CAST_POINTER_TO_VOID(0), (void*)0, (void*)0},
{ZUNO_SENSOR_MULTILEVEL_CHANNEL_NUMBER, MULTILEVELCHAN_TYPE_1, MULTILEVELCHAN_PROP_1, (void*)&au32myZwaveValues[5], MACRO_CAST_POINTER_TO_VOID(0), (void*)0, (void*)0});
// SETUP SETUP SETUP SETUP SETUP SETUP SETUP
//_________________________________________________________________________________
void setup() {
SPDBGSTART(115200); SPDBGLN(" SetupStart ");
pinMode(BUILTIN_LED_PIN, OUTPUT);
/* if(zunoStartDeviceConfiguration()) {
SPDBGLN("NewConf");
zunoAddChannel(1,0,0);
zunoSetZWChannel( 0, 0x01 | ZWAVE_CHANNEL_MAPPED_BIT);
zunoAddChannel(1,0,0);
zunoSetZWChannel( 1, 0x02);
zunoAddChannel(2,0,0);
zunoSetZWChannel( 2, 0x03);
zunoAddChannel(2,0,0);
zunoSetZWChannel( 3, 0x04);
zunoAddChannel(ZUNO_SENSOR_MULTILEVEL_CHANNEL_NUMBER,MULTILEVELCHAN_TYPE_1,MULTILEVELCHAN_PROP_1);
zunoSetZWChannel( 4, 0x05);
zunoAddChannel(ZUNO_SENSOR_MULTILEVEL_CHANNEL_NUMBER,MULTILEVELCHAN_TYPE_1,MULTILEVELCHAN_PROP_1);
zunoSetZWChannel( 5, 0x06);
// zunoAddAssociation(1, 0);
zunoCommitCfg();
}
zunoAppendChannelHandler( 0, 1, CHANNEL_HANDLER_SINGLE_VALUEMAPPER, (void*)&au32myZwaveValues[0]);
zunoAppendChannelHandler( 1, 1, CHANNEL_HANDLER_SINGLE_VALUEMAPPER, (void*)&au32myZwaveValues[1]);
zunoAppendChannelHandler( 2, 1, CHANNEL_HANDLER_SINGLE_VALUEMAPPER, (void*)&au32myZwaveValues[2]);
zunoAppendChannelHandler( 3, 1, CHANNEL_HANDLER_SINGLE_VALUEMAPPER, (void*)&au32myZwaveValues[3]);
zunoAppendChannelHandler( 4, 4, CHANNEL_HANDLER_SINGLE_VALUEMAPPER, (void*)&au32myZwaveValues[4]);
zunoAppendChannelHandler( 5, 4, CHANNEL_HANDLER_SINGLE_VALUEMAPPER, (void*)&au32myZwaveValues[5]);*/
SPDBGLN("INIT Done");
}
// LOOP LOOP LOOP LOOP LOOP
//_________________________________________________________________________________
void loop() {
static uint32_t u32Count=0;
uint8_t u8i;
uint8_t u8New = 0;
uint8_t bChgt=false;
digitalWrite(BUILTIN_LED_PIN, HIGH);delay(2000);
digitalWrite(BUILTIN_LED_PIN, LOW);delay(500);
SPDBG("Map:");SPDBGLN(g_channels_data.update_map);
for(u8i=0;u8i<6;u8i++)
{
if (zunoIsChannelUpdated(u8i+1))
{
SPDBG(u8i);SPDBG(" is new");SPDBGLN(au32myZwaveValues[u8i]);
u8New++;
}
}
if (u8New == 0)
{
SPDBGLN("No news");
for(u8i=0;u8i<6;u8i++)
{
SPDBGLN(au32myZwaveValues[u8i]);
}
}
au32myZwaveValues[4]=au32myZwaveValues[2]*100;
au32myZwaveValues[5]=au32myZwaveValues[3]*200;
zunoSendReport(5);
zunoSendReport(6);
u32Count++;
}
Have a nice day,
Yves