I'am running a gateway on an ESP8266.
I take the last version of the ESP8266 gateway. It's OK.
Thank you
Chdid
I'am running a gateway on an ESP8266.
I take the last version of the ESP8266 gateway. It's OK.
Thank you
Chdid
Hello,
I use this code for detect water leak.
/**
* 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
*
* Interrupt driven binary switch example with dual interrupts
* Author: Patrick 'Anticimex' Fallberg
* Connect one button or door/window reed switch between
* digitial I/O pin 3 (BUTTON_PIN below) and GND and the other
* one in similar fashion on digital I/O pin 2.
* This example is designed to fit Arduino Nano/Pro Mini
*
*/
#include <MySensor.h>
#include <SPI.h>
#define SKETCH_NAME "Debordement Eau"
#define SKETCH_MAJOR_VER "1"
#define SKETCH_MINOR_VER "0"
#define PRIMARY_CHILD_ID 3
#define SECONDARY_CHILD_ID 4
#define PRIMARY_BUTTON_PIN 2 // Arduino Digital I/O pin for button/reed switch
#define SECONDARY_BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch
#if (PRIMARY_BUTTON_PIN < 2 || PRIMARY_BUTTON_PIN > 3)
#error PRIMARY_BUTTON_PIN must be either 2 or 3 for interrupts to work
#endif
#if (SECONDARY_BUTTON_PIN < 2 || SECONDARY_BUTTON_PIN > 3)
#error SECONDARY_BUTTON_PIN must be either 2 or 3 for interrupts to work
#endif
#if (PRIMARY_BUTTON_PIN == SECONDARY_BUTTON_PIN)
#error PRIMARY_BUTTON_PIN and BUTTON_PIN2 cannot be the same
#endif
#if (PRIMARY_CHILD_ID == SECONDARY_CHILD_ID)
#error PRIMARY_CHILD_ID and SECONDARY_CHILD_ID cannot be the same
#endif
MySensor sensor_node;
// Change to V_LIGHT if you use S_LIGHT in presentation below
MyMessage msg(PRIMARY_CHILD_ID, V_TRIPPED);
MyMessage msg2(SECONDARY_CHILD_ID, V_TRIPPED);
int oldValue=-1;
int oldValue2=-1;
void setup()
{
sensor_node.begin();
// Setup the buttons
pinMode(PRIMARY_BUTTON_PIN, INPUT );
pinMode(SECONDARY_BUTTON_PIN, INPUT);
// Activate internal pull-ups
digitalWrite(PRIMARY_BUTTON_PIN, HIGH);
digitalWrite(SECONDARY_BUTTON_PIN, HIGH);
// Send the sketch version information to the gateway and Controller
sensor_node.sendSketchInfo(SKETCH_NAME, SKETCH_MAJOR_VER"."SKETCH_MINOR_VER);
// Register binary input sensor to sensor_node (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.
sensor_node.present(PRIMARY_CHILD_ID, S_WATER_LEAK);
sensor_node.present(SECONDARY_CHILD_ID, S_WATER_LEAK);
}
// Loop will iterate on changes on the BUTTON_PINs
void loop()
{
// Alway process incoming messages whenever possible
sensor_node.process();
int value;
// Short delay to allow buttons to properly settle
//sensor_node.wait(5);
value = digitalRead(PRIMARY_BUTTON_PIN);
if (value != oldValue) {
// Value has changed from last transmission, send the updated value
sensor_node.send(msg.set(value==HIGH ? 1 : 0));
oldValue = value;
}
value = digitalRead(SECONDARY_BUTTON_PIN);
if (value != oldValue2) {
// Value has changed from last transmission, send the updated value
sensor_node.send(msg2.set(value==HIGH ? 1 : 0));
oldValue2 = value;
}
// Sleep until something happens with the sensor
sensor_node.sleep(PRIMARY_BUTTON_PIN-2, CHANGE, SECONDARY_BUTTON_PIN-2, CHANGE, 0);
}
But the value received with sensor_node.send(msg.set(value==HIGH ? 1 : 0)); are not 0 or 1 but 1073741824 or 1073741825.
What is wrong ?
Thank you.
Chdid