thank you very much boots33 and mfalkvidd finaly wor also learn a lot on this example, its time now to try with relays i will add 2 relays that i can triger with switch or controler
my working code for switch:
/**
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 2 switches
Connect button or door/window reed switch between
digitial I/O pin 3 (BUTTON_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
#include <SPI.h>
#include <MySensors.h>
#include <Bounce2.h>
#define CHILD_ID_ST1 3
#define CHILD_ID_ST2 4
#define ST1_PIN 3 // Arduino Digital I/O pin for button/reed switch
#define ST2_PIN 4
Bounce debouncer1 = Bounce();
Bounce debouncer2 = Bounce();
int oldValue = -1;
int oldValue1 = -1;
// Change to V_LIGHT if you use S_LIGHT in presentation below
MyMessage msgst1(CHILD_ID_ST1, V_TRIPPED);
MyMessage msgst2(CHILD_ID_ST2, V_TRIPPED);
void setup()
{
// Setup the button1
pinMode(ST1_PIN, INPUT);
debouncer1.attach(ST1_PIN);
debouncer1.interval(5);
digitalWrite(ST1_PIN, HIGH);
// Setup the button2
pinMode(ST2_PIN, INPUT);
debouncer2.attach(ST2_PIN);
debouncer2.interval(5);
digitalWrite(ST2_PIN, HIGH);
}
void presentation() {
// Register binary input sensor to gw (they will be created as child devices)
// You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage.
// If S_LIGHT is used, remember to update variable type you send in. See "msg" above.
present(CHILD_ID_ST1, S_DOOR);
present(CHILD_ID_ST2, S_DOOR);
}
// Check if digital input has changed and send in new value
void loop()
{
debouncer1.update();
// Get the update value
int value = debouncer1.read();
if (value != oldValue) {
// Send in the new value
send(msgst1.set(value == HIGH ? 1 : 0));
oldValue = value;
}
debouncer2.update();
// Get the update value
int value1 = debouncer2.read();
if (value1 != oldValue1) {
// Send in the new value
send(msgst2.set(value1 == HIGH ? 1 : 0));
oldValue1 = value1;
}
}