I have recently started my 1st Cayenne project using a 8266. With a little help from my friends(thank you again vapor83 ), I have it up and running. My next step is to add a simple limit switch that is normally closed to monitor if my basement is flooding. I have seen many projects that monitor this with an analog device, I am shooting for digital. My 1st question is do I add this sensor from the web page, through code, or both? I would like to get ride of the simulated sensors that are in the code by default, can I/ should i just delete them from the code? I have seen a similar post about adding a button but I could not figure out to it in play. I also noticed the point that the switch will not trigger an event upon change of state, it must wait till the next 10 second update. Not an issue here but I would like to know more for if/when I do something more time sensitive. I work with PLCâs and use rising edge triggers for this, just not sure how to use it here.
Below is the current code I am using
// This example shows how to connect to Cayenne using an ESP8266 and send/receive sample data.
// Make sure you install the ESP8266 Board Package via the Arduino IDE Board Manager and select the correct ESP8266 board before compiling.
#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
// WiFi network info.
char ssid = â";
char wifiPassword[] = "tnâ;
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username = â";
char password[] = "***â;
char clientID = â0*************5â;
unsigned long lastMillis = 0;
void setup() {
Serial.begin(9600);
Cayenne.begin(username, password, clientID, ssid, wifiPassword);
}
void loop() {
Cayenne.loop();
//Publish data every 10 seconds (10000 milliseconds). Change this value to publish at a different interval.
if (millis() - lastMillis > 10000) {
lastMillis = millis();
//Write data to Cayenne here. This example just sends the current uptime in milliseconds.
Cayenne.virtualWrite(0, lastMillis);
//Some examples of other functions you can use to send data.
Cayenne.celsiusWrite(1, 22.0);
Cayenne.luxWrite(2, 700);
Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}
}
//Default function for processing actuator commands from the Cayenne Dashboard.
//You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
CAYENNE_LOG(âCAYENNE_IN_DEFAULT(%u) - %s, %sâ, request.channel, getValue.getId(), getValue.asString());
//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError(âError messageâ);
}