Create Vogelkooi.ino

This commit is contained in:
Frank 2021-12-30 13:27:53 +01:00
commit 84e8bb5571

102
Vogelkooi.ino Executable file
View File

@ -0,0 +1,102 @@
#include <SPI.h>
#include <MySensor.h>
#define PIN_RELAY1 4 // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
#define PIN_RELAY2 5 // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
#define CHILD_ID_RELAY1 10 // Total number of attached relays
#define CHILD_ID_RELAY2 11 // Total number of attached relays
#define RELAY_ON 0 // GPIO value to write to turn on attached relay
#define RELAY_OFF 1 // GPIO value to write to turn off attached relay
MySensor gw;
boolean metric = true;
unsigned long currentTime;
unsigned long SEND_FREQUENCY = 300000;
unsigned long lastSend;
MyMessage msg_dallas(0,V_TEMP);
MyMessage msgRelay1(CHILD_ID_RELAY1, V_LIGHT);
MyMessage msgRelay2(CHILD_ID_RELAY2, V_LIGHT);
//boolean timeReceived = false;
boolean val_init = false;
//Setup routine
void setup()
{
// Initialize library and add callback for incoming messages
gw.begin(incomingMessage, AUTO, true);
//gw.begin(incomingMessage);
// Send the Sketch Version Information to the Gateway
gw.sendSketchInfo("Vogelkooi", "1.0");
gw.present(CHILD_ID_RELAY1, S_LIGHT);
gw.present(CHILD_ID_RELAY2, S_LIGHT);
pinMode(PIN_RELAY1, OUTPUT);
digitalWrite(PIN_RELAY1, RELAY_ON);
pinMode(PIN_RELAY2, OUTPUT);
digitalWrite(PIN_RELAY2, RELAY_ON);
metric = gw.getConfig().isMetric;
lastSend = 0;
}
//Main loop
void loop()
{
gw.process();
currentTime = millis();
if(!val_init)
{
gw.wait(1000);
gw.request(CHILD_ID_RELAY1, V_LIGHT);
gw.wait(1000);
gw.request(CHILD_ID_RELAY2, V_LIGHT);
gw.wait(1000);
val_init = true;
}
}
// Check incomming messages
void incomingMessage(const MyMessage &message)
{
//Message of type V_LIGHT ?
if (message.type==V_LIGHT)
{
//Relay 1
if (message.sensor==CHILD_ID_RELAY1)
{
if(message.getBool()==1)
{
digitalWrite(PIN_RELAY1, RELAY_OFF);
}
else
{
digitalWrite(PIN_RELAY1, RELAY_ON);
}
Serial.println("Domoticz --> Relay 1");
}
//Relay 2
if (message.sensor==CHILD_ID_RELAY2)
{
if(message.getBool()==1)
{
digitalWrite(PIN_RELAY2, RELAY_OFF);
}
else
{
digitalWrite(PIN_RELAY2, RELAY_ON);
}
Serial.println("Domoticz --> Relay 2");
}
}
}