Page 1 of 1
Switch combined with physical switch
Posted: 08 Nov 2017 15:09
by duese
Hi everyone,
i´m looking for a working example of a simple switch sketch with a physical button/switch.
I managed it to get it working, but the state of the physical button ist not reported to the controller (Fibaro HC2)
Anyone else tried this and have solution?
Re: Switch combined with physical switch
Posted: 08 Nov 2017 15:13
by petergebruers
There are different solutions. I have used a switch connected to int1. You are probably using a different setup Can you please post the sketch? Either here or as a private message? That will reduce the amount of guesswork from both sides...
Re: Switch combined with physical switch
Posted: 08 Nov 2017 18:21
by duese
This is the demo sketch is used.
I can trigger the LED with the button and from the HC2
But if i use the button, the HC2 didn´t recognize it.
Code: Select all
/*
* That is a Simple Sensor Multilevel example
* It measures the value on the potentiometer
* And sends report to the controller if changed
*/
// LED pin number
#define LED_PIN 13
#define switchPin 0
#define Speaker 1
// Last saved LED value
byte currentLEDValue;
int state;
int lastState;
// next macro sets up the Z-Uno channels
// in this example we set up 1 switch binary channel
// you can read more on http://z-uno.z-wave.me/Reference/ZUNO_SWITCH_BINARY/
ZUNO_SETUP_CHANNELS(ZUNO_SWITCH_BINARY(getter, setter));
void setup() {
pinMode(LED_PIN, OUTPUT); // setup pin as output
pinMode(Speaker, OUTPUT); // setup pin as output
}
void loop() {
state = digitalRead(switchPin);
if (state != lastState)
{
if (state == HIGH)
{
if (currentLEDValue == HIGH)
{
currentLEDValue = LOW;
Serial.println("LED AUS");
}
else
{
currentLEDValue = HIGH;
Serial.println("LED EIN");
}
}
lastState = state;
}
digitalWrite(LED_PIN, currentLEDValue);
digitalWrite (Speaker, currentLEDValue);
delay(20);
}
// function, which sets new relay state
// this function runs only once the controller sends new value
void setter (byte value) {
// value is a variable, holding a "new value"
// which came from the controller or other Z-Wave device
if (value > 0) { // if greater then zero
digitalWrite (LED_PIN, HIGH); //turn LED on
//digitalWrite (Speaker, HIGH); //turn LED on
} else { // if equals zero
digitalWrite(LED_PIN, LOW); //turn LED off
//digitalWrite(Speaker, LOW); //turn LED on
}
// let's save our value for the situation, when the controller will ask us about it
currentLEDValue = value;
}
// function, which returns the previously saved relay value
// this function runs only once the controller asks
byte getter (){
return currentLEDValue;
}
Re: Switch combined with physical switch
Posted: 08 Nov 2017 21:11
by petergebruers
Thanks! Just add zunoSendReport like this and it will work:
lastState = state;
zunoSendReport(1);
}
http://z-uno.z-wave.me/Reference/zunoSendReport/
Re: Switch combined with physical switch
Posted: 08 Nov 2017 22:24
by duese
This works great!
Thanks for the quick help
Re: Switch combined with physical switch
Posted: 08 Nov 2017 22:26
by petergebruers
Have fun with your Z-Uno!