@hek said in  Door, Window and Push-button Sensor:
 Door, Window and Push-button Sensor:
pinMode(i + FIRST_PIN, INPUT_PULLUP);
Big Thanks!
I have changed all array parts in setup in the same manner like above and it works 
@hek said in  Door, Window and Push-button Sensor:
 Door, Window and Push-button Sensor:
pinMode(i + FIRST_PIN, INPUT_PULLUP);
Big Thanks!
I have changed all array parts in setup in the same manner like above and it works 
@rodaman
Hi,
Here is a sketch for multi buttons (no relays, no repeated parts of code for each buttons) just enter number of buttons and first digital pin where buttons are attached.
Thanks to @hek for help...
/**
   The MySensors Arduino library handles the wireless radio link and protocol
   between your home built sensors/actuators and HA controller of choice.
   The sensors forms a self healing radio network with optional repeaters. Each
   repeater and gateway builds a routing tables in EEPROM which keeps track of the
   network topology allowing messages to be routed to nodes.
   Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
   Copyright (C) 2013-2015 Sensnology AB
   Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
   Documentation: http://www.mysensors.org
   Support Forum: http://forum.mysensors.org
   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License
   version 2 as published by the Free Software Foundation.
 *******************************
   DESCRIPTION
   Simple binary switch example updated  for multi switches
   Connect buttons or door/window reed switches between
   digitial I/O choosen pin  (FIRST_PIN below) and GND.
   http://www.mysensors.org/build/binary
*/
// Enable debug prints to serial monitor
//#define MY_DEBUG
// Enable and select radio type attached
//#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
#define MY_GATEWAY_SERIAL
//#include <SPI.h>
#include <MySensors.h>
#include <Bounce2.h>
#define FIRST_PIN  2  // Arduino Digital I/O pin for button/reed switch
#define noButtons 6
Bounce debouncer[noButtons] = Bounce();
int oldValue[noButtons];
int value;
MyMessage msg[noButtons];
void setup() {
  for (int i = 0; i < noButtons; i++) {
    oldValue[i] = -1;
    
    msg[i].sensor = i;                                   // initialize messages
    msg[i].type = V_TRIPPED; //
    pinMode(i + FIRST_PIN, INPUT_PULLUP);
    digitalWrite(i + FIRST_PIN, HIGH);
  
    debouncer[i] = Bounce();                        // initialize debouncer
    debouncer[i].attach(i + FIRST_PIN);
    debouncer[i].interval(3);
  }
}
void presentation() {
  sendSketchInfo("Doors", "1.0");
  for (int i = 0; i < noButtons; i++)
    present(i, S_DOOR);                               // present sensor to gateway
}
//  Check if digital input has changed and send in new value
void loop()
{
  for (int i = 0; i < noButtons; i++) {
    debouncer[i].update();
    value = debouncer[i].read();
    if (value != oldValue[i]) {
    // Send in the new value
      send(msg[i].set(value == HIGH ? 1 : 0));
      oldValue[i] = value;
    }
 }
}