Binary switch code written for 1.5.4
-
Hi,
I found the following sketch somewhere in the forum. It is written for MySensors 1.5.4, I tried to convert it for 2.1 but ended up with code that wont compile.What needs to be changed to make it compile?
#include <MySensor.h> #include <SPI.h> #include <Bounce2.h> #define NUMBER_OF_SWITCHES 6 MySensor gw; Bounce debouncer[NUMBER_OF_SWITCHES]; int oldValue[NUMBER_OF_SWITCHES]; byte switchPin[NUMBER_OF_SWITCHES] = {3,4,5,6,7,8}; //<<<<<<<<<<< set your switch pins here MyMessage msg(0,V_STATUS); void setup() { gw.begin(); for (int i = 0; i < NUMBER_OF_SWITCHES; i++) { pinMode(switchPin[i],INPUT_PULLUP); debouncer[i] = Bounce(); debouncer[i].attach(switchPin[i]); debouncer[i].interval(5); } for (int i = 0; i < NUMBER_OF_SWITCHES; i++) { gw.present(i, S_BINARY); delay(250); } } // void loop() { for (int i = 0; i < NUMBER_OF_SWITCHES; i++) { debouncer[i].update(); int value = debouncer[i].read(); if (value != oldValue[i]) { gw.send(msg.setSensor(i).set(value == HIGH? true : false), false); } oldValue[i] = value; } }
this is the original sketch without changes.
greetings
-
@ihtgtwtd https://forum.mysensors.org/post/42715 has instructions on how to convert from 1.x to 2.x.
-
thanks @mfalkvidd
I already read that post. I tried again and now it worked.Thanks again
-
@ihtgtwtd great!
Would you mind posting the converted sketch, in case someone else comes looking for it later?
-
No, of course not. Here you go, have fun everyone
#define MY_DEBUG #define MY_RADIO_NRF24 #include <MySensors.h> #include <SPI.h> #include <Bounce2.h> #define SKETCH_NAME "Binary Sensor" #define SKETCH_MAJOR_VER "1" #define SKETCH_MINOR_VER "0" #define first_CHILD_ID 0 #define second_CHILD_ID 1 #define third_CHILD_ID 2 #define fourth_CHILD_ID 3 #define fifth_CHILD_ID 4 #define sixth_CHILD_ID 5 #define NUMBER_OF_SWITCHES 6 Bounce debouncer[NUMBER_OF_SWITCHES]; int oldValue[NUMBER_OF_SWITCHES]; byte switchPin[NUMBER_OF_SWITCHES] = {3,4,5,6,7,8}; //<<<<<<<<<<< set your switch pins here MyMessage msg(0,V_STATUS); void setup() { for (int i = 0; i < NUMBER_OF_SWITCHES; i++) { pinMode(switchPin[i],INPUT_PULLUP); debouncer[i] = Bounce(); debouncer[i].attach(switchPin[i]); debouncer[i].interval(5); } for (int i = 0; i < NUMBER_OF_SWITCHES; i++) { present(i, S_BINARY); delay(250); } } // void loop() { for (int i = 0; i < NUMBER_OF_SWITCHES; i++) { debouncer[i].update(); int value = debouncer[i].read(); if (value != oldValue[i]) { send(msg.setSensor(i).set(value == HIGH? true : false), false); } oldValue[i] = value; } }