From 84e8bb55711e92955977ce5315eff66f24105b18 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 30 Dec 2021 13:27:53 +0100 Subject: [PATCH] Create Vogelkooi.ino --- Vogelkooi.ino | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100755 Vogelkooi.ino diff --git a/Vogelkooi.ino b/Vogelkooi.ino new file mode 100755 index 0000000..ac7ec03 --- /dev/null +++ b/Vogelkooi.ino @@ -0,0 +1,102 @@ +#include +#include + +#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"); + } + } +} +