Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Hardware
  3. How to connect QUIP300 to Domoticz

How to connect QUIP300 to Domoticz

Scheduled Pinned Locked Moved Hardware
31 Posts 3 Posters 6.8k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mckenzi
    wrote on last edited by
    #17

    Yellow cable is connected to PIR's relay. And this cable i'm going to conect to digital input of arduino.
    Second cable from PIR's relay will be connnected to arduino's GND pin. ( not shown on this photo).
    There is no voltage on PIR's relay ( works as simple switch).
    Is my understanding correct ?

    1 Reply Last reply
    0
    • gohanG Offline
      gohanG Offline
      gohan
      Mod
      wrote on last edited by
      #18

      If it is just a relay ok, I thought you were using the output of the pir sensor, but always check before connecting to the Arduino

      1 Reply Last reply
      0
      • M Offline
        M Offline
        mckenzi
        wrote on last edited by
        #19

        So how to connect 4 PIRs to one node to be able to see in Domoticz which was acivated ?

        1 Reply Last reply
        0
        • gohanG Offline
          gohanG Offline
          gohan
          Mod
          wrote on last edited by
          #20

          Connect each one on a different digital pin and create a different child id for each pir sensor and present all of them, it is just replicating 4 times the code of the motion sensor sketch.

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mckenzi
            wrote on last edited by
            #21

            Last question: one pin of each PIR's relay must be connected to common Arduino GND pin, right ?

            1 Reply Last reply
            0
            • gohanG Offline
              gohanG Offline
              gohan
              Mod
              wrote on last edited by
              #22

              it depends, you could also wire it to the 5V and detect when the digital pin goes high you have movement.

              1 Reply Last reply
              0
              • M Offline
                M Offline
                mckenzi
                wrote on last edited by
                #23

                THank you Gohan. Now everything is more clearer. :-) Will try today to wire everything.

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mckenzi
                  wrote on last edited by
                  #24

                  Hi GOHAN,

                  Finally i've build my serial gateway ( Arduino UNO + nRF24) + node (Arduino Nano + nRF24) but i failed with PIR conection to my NODE. How should i connect PIR's relay to Nano ? ( digital input + GND ) ?
                  Now i know that relay is normally closed ( 0, 1 state, no power on it)
                  I was trying to connect this way and it was working for few second ( i saw in the serial monitor , 1 , 0) but after some time NODE was sending weird data to GW.
                  How connect it corectlly and how to mod the sketch for more sensors? (4 pcs). ```
                  This is the way ?

                  #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                  #define CHILD_ID 1   // Id of the sensor child
                  #define DIGITAL_INPUT_SENSOR 4   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                  #define CHILD_ID 2   // Id of the sensor child```
                  1 Reply Last reply
                  0
                  • gohanG Offline
                    gohanG Offline
                    gohan
                    Mod
                    wrote on last edited by
                    #25

                    IF the pir sensor has a normally closed relay you need to use the 5v output of the arduino to one pin of the relay and the other to the digital input and use the code to send TRIPPED true message when pin goes LOW and TRIPPED false when pin is high

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mckenzi
                      wrote on last edited by
                      #26

                      Hi Gohan,

                      This is the way i should follow ?:

                      	// Read digital motion value
                      	
                        if(digitalRead(DIGITAL_INPUT_SENSOR) == HIGH){
                          tripped = true;
                        } else {
                          tripped = false;
                        }
                      

                      Not so easy to set :-)

                      1 Reply Last reply
                      0
                      • gohanG Offline
                        gohanG Offline
                        gohan
                        Mod
                        wrote on last edited by
                        #27

                        actually the opposite, then you need to send the tripped value. Pls check the logic with the relay on the sensor

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          mckenzi
                          wrote on last edited by
                          #28

                          If my understanding is correct it works as follows:
                          (HIGH : when relay is closed, connected to digital pin & 5V VCC)
                          1- HIGH->TRUE-> msg.set 1
                          2- LOW->FALSE->msg.set 0

                          It works but it's very unstable. Sometimes working sometimes not.
                          Is it necessary to add some resistors to this circuit?

                          1 Reply Last reply
                          0
                          • gohanG Offline
                            gohanG Offline
                            gohan
                            Mod
                            wrote on last edited by
                            #29

                            In this case you need to debug where problem is, if it is the relay not closing, the arduino not getting the pin change or message send failed. Also pls post all the code you are using.

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              mckenzi
                              wrote on last edited by
                              #30

                              Relay is working correctly, checked with multimeter. Now i'm study about debugging.
                              Below is the code i'm using (4 PIRs).
                              Problem with sleep mode?

                              
                              // Enable debug prints
                              // #define MY_DEBUG
                              
                              // Enable and select radio type attached
                              #define MY_RADIO_NRF24
                              //#define MY_RADIO_RFM69
                              
                              #include <MySensors.h>
                              #define MY_NODE_ID AUTO
                              unsigned long SLEEP_TIME = 5000 ; // 120000 Sleep time between reports (in milliseconds)
                              #define DIGITAL_INPUT_SENSOR1 2   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                              #define DIGITAL_INPUT_SENSOR2 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                              #define DIGITAL_INPUT_SENSOR3 4   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                              #define DIGITAL_INPUT_SENSOR4 5   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                              
                              #define CHILD_ID_PIR1 21   // Id of the sensor child
                              #define CHILD_ID_PIR2 22   // Id of the sensor child
                              #define CHILD_ID_PIR3 23   // Id of the sensor child
                              #define CHILD_ID_PIR4 24   // Id of the sensor child
                              
                              // Enable repeater functionality for this node
                              #define MY_REPEATER_FEATURE
                              
                              // Initialize motion message
                              MyMessage msg1(CHILD_ID_PIR1, V_TRIPPED);
                              MyMessage msg2(CHILD_ID_PIR2, V_TRIPPED);
                              MyMessage msg3(CHILD_ID_PIR3, V_TRIPPED);
                              MyMessage msg4(CHILD_ID_PIR4, V_TRIPPED);
                              
                              void setup()
                              {
                                pinMode(DIGITAL_INPUT_SENSOR1, INPUT);      // sets the motion sensor digital pin as input
                                pinMode(DIGITAL_INPUT_SENSOR2, INPUT);      // sets the motion sensor digital pin as input
                                pinMode(DIGITAL_INPUT_SENSOR3, INPUT);      // sets the motion sensor digital pin as input
                                pinMode(DIGITAL_INPUT_SENSOR4, INPUT);      // sets the motion sensor digital pin as input
                               }
                              
                              void presentation()
                              {
                                // Send the sketch version information to the gateway and Controller
                                sendSketchInfo("PIR Sensor", "0.1");
                              
                                // Register all sensors to gw (they will be created as child devices)
                                present(CHILD_ID_PIR1, S_MOTION);
                                present(CHILD_ID_PIR2, S_MOTION);
                                present(CHILD_ID_PIR3, S_MOTION);
                                present(CHILD_ID_PIR4, S_MOTION);
                              }
                              
                              void loop()
                              {
                              // Read digital motion value (PIR1)
                                bool tripped1 = digitalRead(DIGITAL_INPUT_SENSOR1) == HIGH;
                                if(digitalRead(DIGITAL_INPUT_SENSOR1) == HIGH)
                                  tripped1 = true;
                                 else 
                                  tripped1 = false;
                              // Read digital motion value (PIR2)
                                bool tripped2 = digitalRead(DIGITAL_INPUT_SENSOR2) == HIGH;
                                if(digitalRead(DIGITAL_INPUT_SENSOR2) == HIGH)
                                  tripped2 = true;
                                 else 
                                  tripped2 = false;
                              // Read digital motion value (PIR3)
                                 bool tripped3 = digitalRead(DIGITAL_INPUT_SENSOR3) == HIGH;    
                                 if(digitalRead(DIGITAL_INPUT_SENSOR3) == HIGH)
                                  tripped3 = true;
                                 else 
                                  tripped3 = false;
                              // Read digital motion value (PIR4)
                                bool tripped4 = digitalRead(DIGITAL_INPUT_SENSOR4) == HIGH;
                                if(digitalRead(DIGITAL_INPUT_SENSOR4) == HIGH)
                                  tripped4 = true;
                                 else 
                                  tripped4 = false;
                                
                              
                                
                                Serial.println(tripped1);
                                send(msg1.set(tripped1?"1":"0"));  // Send tripped value to gw
                                
                                Serial.println(tripped2);
                                send(msg2.set(tripped2?"1":"0"));  // Send tripped value to gw
                              
                                Serial.println(tripped3);
                                send(msg3.set(tripped3?"1":"0"));  // Send tripped value to gw
                                
                                Serial.println(tripped4);
                                send(msg4.set(tripped4?"1":"0"));  // Send tripped value to gw
                                
                              // Sleep until interrupt comes in on motion sensor. Send update every two minute.
                                sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR1), CHANGE, SLEEP_TIME);
                                  sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR2), CHANGE, SLEEP_TIME);
                                    sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR3), CHANGE, SLEEP_TIME);
                                      sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR4), CHANGE, SLEEP_TIME);
                              
                              
                              }
                              
                              1 Reply Last reply
                              0
                              • gohanG Offline
                                gohanG Offline
                                gohan
                                Mod
                                wrote on last edited by
                                #31

                                You can use only 2 interrupts on pin 2 and 3, calling 4 sleep functions is useless

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                15

                                Online

                                11.7k

                                Users

                                11.2k

                                Topics

                                113.1k

                                Posts


                                Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • MySensors
                                • OpenHardware.io
                                • Categories
                                • Recent
                                • Tags
                                • Popular