#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"); } } }